annotate gen/complex.h @ 217:0806379a5eca trunk

[svn r233] Added: -oq command line option for writing fully qualified object names. Added: started support for x86 80bit floating point. Changed: aggregates passed by value now use the llvm 'byval' parameter attribute, also lays ground work for using other attributes. Changed: eliminated a lot more std::vectorS, these showed up pretty much at the top when profiling! Changed: performed other misc. cleanups. Changed: halt expression now call the new llvm trap intrinsic instead of an assert(0). Changed: dstress suite now passes -O0 by default, this only eliminates unreferenced globals, which speeds up linking quite a bit.
author lindquist
date Thu, 05 Jun 2008 06:38:36 +0200
parents 7816aafeea3c
children a95056b3c996
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
104
4d1e9eb001e0 [svn r108] Now basic suppport for complex types. =,+,-,*,/ are supported.
lindquist
parents:
diff changeset
1 #ifndef LLVMDC_GEN_COMPLEX_H
4d1e9eb001e0 [svn r108] Now basic suppport for complex types. =,+,-,*,/ are supported.
lindquist
parents:
diff changeset
2 #define LLVMDC_GEN_COMPLEX_H
4d1e9eb001e0 [svn r108] Now basic suppport for complex types. =,+,-,*,/ are supported.
lindquist
parents:
diff changeset
3
4d1e9eb001e0 [svn r108] Now basic suppport for complex types. =,+,-,*,/ are supported.
lindquist
parents:
diff changeset
4 const llvm::StructType* DtoComplexType(Type* t);
217
0806379a5eca [svn r233] Added: -oq command line option for writing fully qualified object names.
lindquist
parents: 213
diff changeset
5 const LLType* DtoComplexBaseType(Type* t);
104
4d1e9eb001e0 [svn r108] Now basic suppport for complex types. =,+,-,*,/ are supported.
lindquist
parents:
diff changeset
6
213
7816aafeea3c [svn r229] Updated the object.d implementation to the latest Tango.
lindquist
parents: 164
diff changeset
7 LLConstant* DtoConstComplex(Type* t, LLConstant* re, LLConstant* im);
7816aafeea3c [svn r229] Updated the object.d implementation to the latest Tango.
lindquist
parents: 164
diff changeset
8 LLConstant* DtoConstComplex(Type* t, long double re, long double im);
104
4d1e9eb001e0 [svn r108] Now basic suppport for complex types. =,+,-,*,/ are supported.
lindquist
parents:
diff changeset
9
213
7816aafeea3c [svn r229] Updated the object.d implementation to the latest Tango.
lindquist
parents: 164
diff changeset
10 LLConstant* DtoComplexShuffleMask(unsigned a, unsigned b);
104
4d1e9eb001e0 [svn r108] Now basic suppport for complex types. =,+,-,*,/ are supported.
lindquist
parents:
diff changeset
11
213
7816aafeea3c [svn r229] Updated the object.d implementation to the latest Tango.
lindquist
parents: 164
diff changeset
12 LLValue* DtoRealPart(DValue* val);
7816aafeea3c [svn r229] Updated the object.d implementation to the latest Tango.
lindquist
parents: 164
diff changeset
13 LLValue* DtoImagPart(DValue* val);
104
4d1e9eb001e0 [svn r108] Now basic suppport for complex types. =,+,-,*,/ are supported.
lindquist
parents:
diff changeset
14 DValue* DtoComplex(Type* to, DValue* val);
4d1e9eb001e0 [svn r108] Now basic suppport for complex types. =,+,-,*,/ are supported.
lindquist
parents:
diff changeset
15
213
7816aafeea3c [svn r229] Updated the object.d implementation to the latest Tango.
lindquist
parents: 164
diff changeset
16 void DtoComplexAssign(LLValue* l, LLValue* r);
7816aafeea3c [svn r229] Updated the object.d implementation to the latest Tango.
lindquist
parents: 164
diff changeset
17 void DtoComplexSet(LLValue* c, LLValue* re, LLValue* im);
104
4d1e9eb001e0 [svn r108] Now basic suppport for complex types. =,+,-,*,/ are supported.
lindquist
parents:
diff changeset
18
213
7816aafeea3c [svn r229] Updated the object.d implementation to the latest Tango.
lindquist
parents: 164
diff changeset
19 void DtoGetComplexParts(DValue* c, LLValue*& re, LLValue*& im);
107
3efbcc81ba45 [svn r111] Fixed most problems with complex number support and added typeinfo for them.
lindquist
parents: 104
diff changeset
20
104
4d1e9eb001e0 [svn r108] Now basic suppport for complex types. =,+,-,*,/ are supported.
lindquist
parents:
diff changeset
21 DValue* DtoComplexAdd(Type* type, DValue* lhs, DValue* rhs);
4d1e9eb001e0 [svn r108] Now basic suppport for complex types. =,+,-,*,/ are supported.
lindquist
parents:
diff changeset
22 DValue* DtoComplexSub(Type* type, DValue* lhs, DValue* rhs);
4d1e9eb001e0 [svn r108] Now basic suppport for complex types. =,+,-,*,/ are supported.
lindquist
parents:
diff changeset
23 DValue* DtoComplexMul(Type* type, DValue* lhs, DValue* rhs);
4d1e9eb001e0 [svn r108] Now basic suppport for complex types. =,+,-,*,/ are supported.
lindquist
parents:
diff changeset
24 DValue* DtoComplexDiv(Type* type, DValue* lhs, DValue* rhs);
164
a64becf2a702 [svn r180] Fixed complex negation, and tango.math.Math now compiles.
lindquist
parents: 107
diff changeset
25 DValue* DtoComplexNeg(Type* type, DValue* val);
104
4d1e9eb001e0 [svn r108] Now basic suppport for complex types. =,+,-,*,/ are supported.
lindquist
parents:
diff changeset
26
213
7816aafeea3c [svn r229] Updated the object.d implementation to the latest Tango.
lindquist
parents: 164
diff changeset
27 LLValue* DtoComplexEquals(TOK op, DValue* lhs, DValue* rhs);
104
4d1e9eb001e0 [svn r108] Now basic suppport for complex types. =,+,-,*,/ are supported.
lindquist
parents:
diff changeset
28
4d1e9eb001e0 [svn r108] Now basic suppport for complex types. =,+,-,*,/ are supported.
lindquist
parents:
diff changeset
29 #endif // LLVMDC_GEN_COMPLEX_H