Ver Fonte

Added Float64 support.

woollybah há 9 anos atrás
pai
commit
fc77d725e0
3 ficheiros alterados com 8 adições e 4 exclusões
  1. 6 4
      blitz.mod/blitz.bmx
  2. 1 0
      blitz.mod/blitz_array.c
  3. 1 0
      blitz.mod/blitz_types.h

+ 6 - 4
blitz.mod/blitz.bmx

@@ -71,10 +71,6 @@ ModuleInfo "CC_OPTS: -DGC_THREADS -DATOMIC_UNCOLLECTABLE"
 ModuleInfo "CC_OPTS: -DBMX_DEBUG"
 ?
 
-?x64
-ModuleInfo "CC_OPTS: -msse3"
-?
-
 Import "blitz_app.c"
 Import "blitz_types.c"
 Import "blitz_cclib.c"
@@ -564,6 +560,12 @@ about: Only available on x64.
 keyword: "Float128"
 End Rem
 
+Rem
+bbdoc: 64 bit floating point intrinsic Type
+about: Only available on x64.
+keyword: "Float64"
+End Rem
+
 Rem
 bbdoc: 128 bit double intrinsic Type
 about: Only available on x64.

+ 1 - 0
blitz.mod/blitz_array.c

@@ -93,6 +93,7 @@ static BBArray *allocateArray( const char *type,int dims,int *lens, unsigned sho
 	case '(':size=sizeof(void*);break;
 	case 'z':size=sizeof(BBSIZET);break;
 	#ifdef __x86_64__
+	case 'h':size=sizeof(BBFLOAT64);break;
 	case 'j':size=sizeof(BBINT128);break;
 	case 'k':size=sizeof(BBFLOAT128);break;
 	case 'm':size=sizeof(BBDOUBLE128);break;

+ 1 - 0
blitz.mod/blitz_types.h

@@ -43,6 +43,7 @@ typedef BBInterfaceOffsets * BBINTERFACEOFFSETS;
 
 #ifdef __x86_64__
 #include <immintrin.h>
+typedef __m64			BBFLOAT64;
 typedef __m128i			BBINT128;
 typedef __m128			BBFLOAT128;
 typedef __m128d			BBDOUBLE128;