comparison tests/mini/vararg6.d @ 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 1bb99290e03a
children a9feaed801d7
comparison
equal deleted inserted replaced
444:f2b5f86348ef 445:cc40db549aea
140 140
141 else if (ti == typeid(float)) 141 else if (ti == typeid(float))
142 printf("%f", *cast(float*)arg); 142 printf("%f", *cast(float*)arg);
143 else if (ti == typeid(double)) 143 else if (ti == typeid(double))
144 printf("%f", *cast(double*)arg); 144 printf("%f", *cast(double*)arg);
145 else if (ti == typeid(real)) // FIXME: 80bit? 145 else if (ti == typeid(real))
146 { 146 printf("%llf", *cast(real*)arg);
147 version(LLVM_X86_FP80)
148 printf("%llf", *cast(real*)arg);
149 else
150 printf("%f", *cast(real*)arg);
151 }
152 147
153 else if (ti == typeid(char)) 148 else if (ti == typeid(char))
154 printf("%.*s", 1, arg); 149 printf("%.*s", 1, arg);
155 else if (ti == typeid(wchar)) 150 else if (ti == typeid(wchar))
156 printf("%.*s", 2, arg); 151 printf("%.*s", 2, arg);