annotate gen/complex.h @ 468:45a67b6f1310

Removed the 'needsstorage' thing from Dsymbol. Arguments are not always given storage when applicable. This is not longer treat specially in this regard. Code for accessing nested variables and contexts rewritten. Probably more. Fairly well tested.
author Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
date Mon, 04 Aug 2008 02:59:34 +0200
parents 0e6b4d65d3f8
children fbb1a366cfbc
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);
399
0e6b4d65d3f8 Give error messages for invalid casts.
Christian Kamm <kamm incasoftware de>
parents: 244
diff changeset
14 DValue* DtoComplex(Loc& loc, Type* to, DValue* val);
104
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
399
0e6b4d65d3f8 Give error messages for invalid casts.
Christian Kamm <kamm incasoftware de>
parents: 244
diff changeset
21 DValue* DtoComplexAdd(Loc& loc, Type* type, DValue* lhs, DValue* rhs);
0e6b4d65d3f8 Give error messages for invalid casts.
Christian Kamm <kamm incasoftware de>
parents: 244
diff changeset
22 DValue* DtoComplexSub(Loc& loc, Type* type, DValue* lhs, DValue* rhs);
0e6b4d65d3f8 Give error messages for invalid casts.
Christian Kamm <kamm incasoftware de>
parents: 244
diff changeset
23 DValue* DtoComplexMul(Loc& loc, Type* type, DValue* lhs, DValue* rhs);
0e6b4d65d3f8 Give error messages for invalid casts.
Christian Kamm <kamm incasoftware de>
parents: 244
diff changeset
24 DValue* DtoComplexDiv(Loc& loc, Type* type, DValue* lhs, DValue* rhs);
0e6b4d65d3f8 Give error messages for invalid casts.
Christian Kamm <kamm incasoftware de>
parents: 244
diff changeset
25 DValue* DtoComplexNeg(Loc& loc, Type* type, DValue* val);
104
4d1e9eb001e0 [svn r108] Now basic suppport for complex types. =,+,-,*,/ are supported.
lindquist
parents:
diff changeset
26
399
0e6b4d65d3f8 Give error messages for invalid casts.
Christian Kamm <kamm incasoftware de>
parents: 244
diff changeset
27 LLValue* DtoComplexEquals(Loc& loc, TOK op, DValue* lhs, DValue* rhs);
104
4d1e9eb001e0 [svn r108] Now basic suppport for complex types. =,+,-,*,/ are supported.
lindquist
parents:
diff changeset
28
399
0e6b4d65d3f8 Give error messages for invalid casts.
Christian Kamm <kamm incasoftware de>
parents: 244
diff changeset
29 DValue* DtoCastComplex(Loc& loc, DValue* val, Type* to);
244
a95056b3c996 [svn r261] Fixed debug info for integer and floating local variables, can now be inspected in GDB.
lindquist
parents: 217
diff changeset
30
104
4d1e9eb001e0 [svn r108] Now basic suppport for complex types. =,+,-,*,/ are supported.
lindquist
parents:
diff changeset
31 #endif // LLVMDC_GEN_COMPLEX_H