comparison dmd/id.c @ 445:cc40db549aea

Changed the handling of variadic intrinsics a bit. Removed the -fp80 option and made real be 80bit floats on X86, this is what the D spec really says it should be and fixes a bunch of issues. Changed the handling of parameter attributes to a bit more generalized approach. Added sext/zext attributes for byte/short/ubyte/ushort parameters, fixes #60 . Parameter attribs now properly set for intrinsic calls if necessary. Made the tango.math.Math patch less intrusive. Fixed/added some mini tests.
author Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
date Fri, 01 Aug 2008 17:59:58 +0200
parents 44f08170f4ef
children a34078905d01
comparison
equal deleted inserted replaced
444:f2b5f86348ef 445:cc40db549aea
169 Identifier *Id::GNU_asm; 169 Identifier *Id::GNU_asm;
170 Identifier *Id::intrinsic; 170 Identifier *Id::intrinsic;
171 Identifier *Id::va_intrinsic; 171 Identifier *Id::va_intrinsic;
172 Identifier *Id::no_typeinfo; 172 Identifier *Id::no_typeinfo;
173 Identifier *Id::no_moduleinfo; 173 Identifier *Id::no_moduleinfo;
174 Identifier *Id::alloca; 174 Identifier *Id::Alloca;
175 Identifier *Id::va_start; 175 Identifier *Id::vastart;
176 Identifier *Id::va_arg; 176 Identifier *Id::vacopy;
177 Identifier *Id::vaend;
178 Identifier *Id::vaarg;
177 Identifier *Id::tohash; 179 Identifier *Id::tohash;
178 Identifier *Id::tostring; 180 Identifier *Id::tostring;
179 Identifier *Id::main; 181 Identifier *Id::main;
180 Identifier *Id::WinMain; 182 Identifier *Id::WinMain;
181 Identifier *Id::DllMain; 183 Identifier *Id::DllMain;
348 GNU_asm = Lexer::idPool("GNU_asm"); 350 GNU_asm = Lexer::idPool("GNU_asm");
349 intrinsic = Lexer::idPool("intrinsic"); 351 intrinsic = Lexer::idPool("intrinsic");
350 va_intrinsic = Lexer::idPool("va_intrinsic"); 352 va_intrinsic = Lexer::idPool("va_intrinsic");
351 no_typeinfo = Lexer::idPool("no_typeinfo"); 353 no_typeinfo = Lexer::idPool("no_typeinfo");
352 no_moduleinfo = Lexer::idPool("no_moduleinfo"); 354 no_moduleinfo = Lexer::idPool("no_moduleinfo");
353 alloca = Lexer::idPool("alloca"); 355 Alloca = Lexer::idPool("alloca");
354 va_start = Lexer::idPool("va_start"); 356 vastart = Lexer::idPool("va_start");
355 va_arg = Lexer::idPool("va_arg"); 357 vacopy = Lexer::idPool("va_copy");
358 vaend = Lexer::idPool("va_end");
359 vaarg = Lexer::idPool("va_arg");
356 tohash = Lexer::idPool("toHash"); 360 tohash = Lexer::idPool("toHash");
357 tostring = Lexer::idPool("toString"); 361 tostring = Lexer::idPool("toString");
358 main = Lexer::idPool("main"); 362 main = Lexer::idPool("main");
359 WinMain = Lexer::idPool("WinMain"); 363 WinMain = Lexer::idPool("WinMain");
360 DllMain = Lexer::idPool("DllMain"); 364 DllMain = Lexer::idPool("DllMain");