Mercurial > projects > ldc
diff gen/dvalue.h @ 585:fbb1a366cfbc
Complex number should now follow the D ABI on x86. They're also treated as first class values now. Big change.
author | Tomas Lindquist Olsen <tomas.l.olsen@gmail.com> |
---|---|
date | Tue, 09 Sep 2008 16:49:47 -0700 |
parents | a34078905d01 |
children | 03a5e609eef3 |
line wrap: on
line diff
--- a/gen/dvalue.h Mon Sep 08 20:38:55 2008 +0200 +++ b/gen/dvalue.h Tue Sep 09 16:49:47 2008 -0700 @@ -31,7 +31,6 @@ struct DSliceValue; struct DArrayLenValue; struct DLRValue; -struct DComplexValue; // base class for d-values struct DValue : Object @@ -51,7 +50,6 @@ virtual DSliceValue* isSlice() { return NULL; } virtual DFuncValue* isFunc() { return NULL; } virtual DArrayLenValue* isArrayLen() { return NULL; } - virtual DComplexValue* isComplex() { return NULL; } virtual DLRValue* isLRValue() { return NULL; } protected: @@ -101,14 +99,11 @@ Type* type; VarDeclaration* var; LLValue* val; - LLValue* rval; - bool lval; - DVarValue(Type* t, VarDeclaration* vd, LLValue* llvmValue, bool lvalue); - DVarValue(Type* t, LLValue* lv, LLValue* rv); - DVarValue(Type* t, LLValue* llvmValue, bool lvalue); + DVarValue(Type* t, VarDeclaration* vd, LLValue* llvmValue); + DVarValue(Type* t, LLValue* llvmValue); - virtual bool isLVal() { return val && lval; } + virtual bool isLVal() { return true; } virtual LLValue* getLVal(); virtual LLValue* getRVal(); @@ -119,7 +114,7 @@ // field d-value struct DFieldValue : DVarValue { - DFieldValue(Type* t, LLValue* llvmValue, bool l) : DVarValue(t, llvmValue, l) {} + DFieldValue(Type* t, LLValue* llvmValue) : DVarValue(t, llvmValue) {} virtual DFieldValue* isField() { return this; } }; @@ -173,21 +168,4 @@ virtual DLRValue* isLRValue() { return this; } }; -// complex number immediate d-value (much like slice) -struct DComplexValue : DValue -{ - Type* type; - LLValue* re; - LLValue* im; - - DComplexValue(Type* t, LLValue* r, LLValue* i) { - type = t; - re = r; - im = i; - } - - virtual Type*& getType() { assert(type); return type; } - virtual DComplexValue* isComplex() { return this; } -}; - #endif // LLVMDC_GEN_DVALUE_H