diff import/llvmdc/intrinsics.di @ 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
line wrap: on
line diff
--- a/import/llvmdc/intrinsics.di	Fri Aug 01 01:12:33 2008 +0200
+++ b/import/llvmdc/intrinsics.di	Fri Aug 01 17:59:58 2008 +0200
@@ -106,7 +106,7 @@
     float llvm_sqrt_f32(float val);
 pragma(intrinsic, "llvm.sqrt.f64")
     double llvm_sqrt_f64(double val);
-version(LLVM_X86_FP80)
+version(X86)
 {
 pragma(intrinsic, "llvm.sqrt.f80")
     real llvm_sqrt_f80(real val);
@@ -119,7 +119,7 @@
     float llvm_sin_f32(float val);
 pragma(intrinsic, "llvm.sin.f64")
     double llvm_sin_f64(double val);
-version(LLVM_X86_FP80)
+version(X86)
 {
 pragma(intrinsic, "llvm.sin.f80")
     real llvm_sin_f80(real val);
@@ -132,7 +132,7 @@
     float llvm_cos_f32(float val);
 pragma(intrinsic, "llvm.cos.f64")
     double llvm_cos_f64(double val);
-version(LLVM_X86_FP80)
+version(X86)
 {
 pragma(intrinsic, "llvm.cos.f80")
     real llvm_cos_f80(real val);
@@ -146,7 +146,7 @@
 
 pragma(intrinsic, "llvm.powi.f64")
     double llvm_powi_f64(double val, int power);
-version(LLVM_X86_FP80)
+version(X86)
 {
 pragma(intrinsic, "llvm.powi.f80")
     real llvm_powi_f80(real val, int power);
@@ -160,7 +160,7 @@
 
 pragma(intrinsic, "llvm.pow.f64")
     double llvm_pow_f64(double val, double power);
-version(LLVM_X86_FP80)
+version(X86)
 {
 pragma(intrinsic, "llvm.pow.f80")
     real llvm_pow_f80(real val, real power);