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