Mercurial > projects > ldc
annotate gen/complex.h @ 715:30b42a283c8e
Removed TypeOpaque from DMD.
Changed runtime functions taking opaque[] to void[].
Implemented proper type painting, to avoid "resizing" array casts in runtime calls that previously took opaque[].
Implemented dynamic arrays as first class types, this implements proper ABI for these types on x86.
Added dwarf region end after call to assert function, fixes some problems with llvm not allowing this to be missing.
Reverted change to WithStatement from rev [704] it breaks MiniD, mini/with2.d needs to be fixed some other way...
Fixed tango bug 1339 in runtime, problem with _adReverseChar on invalid UTF-8.
Disabled .bc generation in the compiler runtime part, genobj.d triggers some llvm bug when using debug info. the .o seems to work fine.
author | Tomas Lindquist Olsen <tomas.l.olsen@gmail.com> |
---|---|
date | Wed, 22 Oct 2008 14:55:33 +0200 |
parents | eef8ac26c66c |
children |
rev | line source |
---|---|
664
eef8ac26c66c
Some missed LLVMDC -> LDC.
Christian Kamm <kamm incasoftware de>
parents:
617
diff
changeset
|
1 #ifndef LDC_GEN_COMPLEX_H |
eef8ac26c66c
Some missed LLVMDC -> LDC.
Christian Kamm <kamm incasoftware de>
parents:
617
diff
changeset
|
2 #define LDC_GEN_COMPLEX_H |
104
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, long double re, long double im); |
104
4d1e9eb001e0
[svn r108] Now basic suppport for complex types. =,+,-,*,/ are supported.
lindquist
parents:
diff
changeset
|
8 |
213
7816aafeea3c
[svn r229] Updated the object.d implementation to the latest Tango.
lindquist
parents:
164
diff
changeset
|
9 LLConstant* DtoComplexShuffleMask(unsigned a, unsigned b); |
104
4d1e9eb001e0
[svn r108] Now basic suppport for complex types. =,+,-,*,/ are supported.
lindquist
parents:
diff
changeset
|
10 |
213
7816aafeea3c
[svn r229] Updated the object.d implementation to the latest Tango.
lindquist
parents:
164
diff
changeset
|
11 LLValue* DtoRealPart(DValue* val); |
7816aafeea3c
[svn r229] Updated the object.d implementation to the latest Tango.
lindquist
parents:
164
diff
changeset
|
12 LLValue* DtoImagPart(DValue* val); |
399
0e6b4d65d3f8
Give error messages for invalid casts.
Christian Kamm <kamm incasoftware de>
parents:
244
diff
changeset
|
13 DValue* DtoComplex(Loc& loc, Type* to, DValue* val); |
104
4d1e9eb001e0
[svn r108] Now basic suppport for complex types. =,+,-,*,/ are supported.
lindquist
parents:
diff
changeset
|
14 |
213
7816aafeea3c
[svn r229] Updated the object.d implementation to the latest Tango.
lindquist
parents:
164
diff
changeset
|
15 void DtoComplexSet(LLValue* c, LLValue* re, LLValue* im); |
104
4d1e9eb001e0
[svn r108] Now basic suppport for complex types. =,+,-,*,/ are supported.
lindquist
parents:
diff
changeset
|
16 |
617
634fbbdec390
Simplify complex number handling. Fixes bug with complex substraction.
Christian Kamm <kamm incasoftware de>
parents:
585
diff
changeset
|
17 void DtoGetComplexParts(Loc& loc, Type* to, 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
|
18 |
399
0e6b4d65d3f8
Give error messages for invalid casts.
Christian Kamm <kamm incasoftware de>
parents:
244
diff
changeset
|
19 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
|
20 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
|
21 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
|
22 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
|
23 DValue* DtoComplexNeg(Loc& loc, Type* type, DValue* val); |
104
4d1e9eb001e0
[svn r108] Now basic suppport for complex types. =,+,-,*,/ are supported.
lindquist
parents:
diff
changeset
|
24 |
399
0e6b4d65d3f8
Give error messages for invalid casts.
Christian Kamm <kamm incasoftware de>
parents:
244
diff
changeset
|
25 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
|
26 |
399
0e6b4d65d3f8
Give error messages for invalid casts.
Christian Kamm <kamm incasoftware de>
parents:
244
diff
changeset
|
27 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
|
28 |
664
eef8ac26c66c
Some missed LLVMDC -> LDC.
Christian Kamm <kamm incasoftware de>
parents:
617
diff
changeset
|
29 #endif // LDC_GEN_COMPLEX_H |