comparison dmd/mtype.h @ 938:a904cc9bc064

Convert struct arg to integer when passing inreg to make sure LLVM doesn't ignore the attribute!
author Christian Kamm <kamm incasoftware de>
date Wed, 04 Feb 2009 18:39:33 +0100
parents 7985bb036db4
children 9167d492cbc2
comparison
equal deleted inserted replaced
931:b6647328d11e 938:a904cc9bc064
21 #include "arraytypes.h" 21 #include "arraytypes.h"
22 #include "expression.h" 22 #include "expression.h"
23 23
24 // llvm 24 // llvm
25 #include "../ir/irtype.h" 25 #include "../ir/irtype.h"
26 namespace llvm { class Type; }
26 27
27 struct Scope; 28 struct Scope;
28 struct Identifier; 29 struct Identifier;
29 struct Expression; 30 struct Expression;
30 struct StructDeclaration; 31 struct StructDeclaration;
436 437
437 // LDC 438 // LDC
438 bool retInPtr; 439 bool retInPtr;
439 bool usesThis; 440 bool usesThis;
440 bool usesNest; 441 bool usesNest;
441 bool structInregArg; 442 // when the last arg is a struct and passed in EAX, this holds its real type
443 const llvm::Type* structInregArg;
442 unsigned retAttrs; 444 unsigned retAttrs;
443 unsigned thisAttrs; // also used for nest 445 unsigned thisAttrs; // also used for nest
444 // parameter index in the llvm function that contains the first not-implicit arg 446 // parameter index in the llvm function that contains the first not-implicit arg
445 size_t firstRealArg; 447 size_t firstRealArg;
446 448