Mercurial > projects > ldc
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"); |