Add latest version of vcbuild directory.

Used only for the Win64 build.
This commit is contained in:
kai
2013-06-21 17:37:40 +02:00
parent aa143b560c
commit 272a25cbe7
2 changed files with 33 additions and 23 deletions

View File

@@ -39,27 +39,27 @@ ld_read ENDP
; long long ld_readll(longdouble* ld);
; rcx: ld
ld_readll PROC
fld tbyte ptr [rcx]
push rax
fistp qword ptr [rsp]
pop rax
ret
ld_readll ENDP
;ld_readll PROC
; fld tbyte ptr [rcx]
; push rax
; fistp qword ptr [rsp]
; pop rax
; ret
;ld_readll ENDP
; unsigned long long ld_readull(longdouble* ld);
; rcx: ld
ld_readull PROC
fld tbyte ptr [rcx]
push rax
lea rax,twoPow63
fld tbyte ptr [rax]
fsubp ST(1),ST(0) ; move it into signed range
fistp qword ptr [rsp]
pop rax
btc rax,63
ret
ld_readull ENDP
;ld_readull PROC
; fld tbyte ptr [rcx]
; push rax
; lea rax,twoPow63
; fld tbyte ptr [rax]
; fsubp ST(1),ST(0) ; move it into signed range
; fistp qword ptr [rsp]
; pop rax
; btc rax,63
; ret
;ld_readull ENDP
; void ld_set(longdouble* ld, double d);
; rcx: ld
@@ -79,8 +79,8 @@ ld_set ENDP
ld_setll PROC
push rdx
fild qword ptr [rsp]
fstp tbyte ptr [rcx]
pop rax
fstp tbyte ptr [rcx]
pop rax
ret
ld_setll ENDP
@@ -94,8 +94,8 @@ ld_setull PROC
lea rax,twoPow63
fld tbyte ptr [rax]
faddp ST(1),ST(0)
fstp tbyte ptr [rcx]
pop rax
fstp tbyte ptr [rcx]
pop rax
ret
ld_setull ENDP
@@ -109,7 +109,7 @@ ld_expl PROC
fscale ; ST(0) = ST(0) * (2**ST(1))
fstp ST(1)
fstp tbyte ptr [rcx]
pop rax
pop rax
ret
ld_expl ENDP

View File

@@ -13,9 +13,18 @@
#pragma warning(disable:4189) // local variable is initialized but not referenced
#pragma warning(disable:4102) // unreferenced label
#pragma warning(disable:4800) // forcing value to bool 'true' or 'false' (performance warning)
#pragma warning(disable:4804) // '+=' : unsafe use of type 'bool' in operation
#pragma warning(disable:4390) // ';' : empty controlled statement found; is this the intent?
#pragma warning(disable:4702) // unreachable code
#pragma warning(disable:4703) // potentially uninitialized local pointer variable 'm' used
#pragma warning(disable:4063) // case '0' is not a valid value for switch of enum
#pragma warning(disable:4305) // 'initializing' : truncation from 'double' to 'float'
#pragma warning(disable:4309) // 'initializing' : truncation of constant value
#pragma warning(disable:4310) // cast truncates constant value
#pragma warning(disable:4806) // '^' : unsafe operation: no value of type 'bool' promoted to type 'int' can equal the given constant
#pragma warning(disable:4060) // switch statement contains no 'case' or 'default' labels
#pragma warning(disable:4099) // type name first seen using 'struct' now seen using 'class'
#pragma warning(disable:4725) // instruction may be inaccurate on some Pentiums
#ifdef _WIN64
#pragma warning(disable:4366) // The result of the unary '&' operator may be unaligned
@@ -28,3 +37,4 @@
#define MARS 1
#define UNITTEST 1
#define _M_I86 1
#define DM_TARGET_CPU_X86 1