comparison gen/irstate.h @ 232:092468448d25 trunk

[svn r248] Fixed: labels in inline asm block now work for the normal case. Fixed: inline asm blocks are now emitted as a single asm entity.
author lindquist
date Sun, 08 Jun 2008 06:15:51 +0200
parents 7816aafeea3c
children 76ee1bbe487e
comparison
equal deleted inserted replaced
231:61aa721a6b7f 232:092468448d25
61 Expression* e1; 61 Expression* e1;
62 Expression* e2; 62 Expression* e2;
63 DValue* v; 63 DValue* v;
64 IRExp(); 64 IRExp();
65 IRExp(Expression* l, Expression* r, DValue* val); 65 IRExp(Expression* l, Expression* r, DValue* val);
66 };
67
68 struct IRAsmStmt
69 {
70 std::string code;
71 std::string out_c;
72 std::string in_c;
73 std::string clobbers;
74 std::vector<LLValue*> out;
75 std::vector<LLValue*> in;
66 }; 76 };
67 77
68 // represents the module 78 // represents the module
69 struct IRState 79 struct IRState
70 { 80 {
138 // static ctors/dtors/unittests 148 // static ctors/dtors/unittests
139 typedef std::vector<FuncDeclaration*> FuncDeclVector; 149 typedef std::vector<FuncDeclaration*> FuncDeclVector;
140 FuncDeclVector ctors; 150 FuncDeclVector ctors;
141 FuncDeclVector dtors; 151 FuncDeclVector dtors;
142 FuncDeclVector unitTests; 152 FuncDeclVector unitTests;
153
154 // for inline asm
155 std::vector<IRAsmStmt*> ASMs;
156 bool inASM;
143 }; 157 };
144 158
145 #endif // LLVMDC_GEN_IRSTATE_H 159 #endif // LLVMDC_GEN_IRSTATE_H