|
From: <CW...@us...> - 2012-03-24 23:11:35
|
Revision: 1512
http://graphics32.svn.sourceforge.net/graphics32/?rev=1512&view=rev
Author: CWBudde
Date: 2012-03-24 23:11:29 +0000 (Sat, 24 Mar 2012)
Log Message:
-----------
* fixed x64 native assembler optimization issue
Modified Paths:
--------------
trunk/Source/GR32_Math.pas
Modified: trunk/Source/GR32_Math.pas
===================================================================
--- trunk/Source/GR32_Math.pas 2012-03-24 23:11:02 UTC (rev 1511)
+++ trunk/Source/GR32_Math.pas 2012-03-24 23:11:29 UTC (rev 1512)
@@ -120,9 +120,9 @@
{$ELSE}
asm
{$IFDEF TARGET_x64}
- MOV RAX, RCX
- ADD RAX, $0000FFFF
- SAR RAX, 16
+ MOV EAX, ECX
+ ADD EAX, $0000FFFF
+ SAR EAX, 16
{$ENDIF}
{$IFDEF TARGET_x86}
ADD EAX, $0000FFFF
@@ -138,9 +138,9 @@
{$ELSE}
asm
{$IFDEF TARGET_x64}
- MOV RAX, RCX
- ADD RAX, $00007FFF
- SAR RAX, 16
+ MOV EAX, ECX
+ ADD EAX, $00007FFF
+ SAR EAX, 16
{$ENDIF}
{$IFDEF TARGET_x86}
ADD EAX, $00007FFF
@@ -177,12 +177,12 @@
{$ELSE}
asm
{$IFDEF TARGET_x64}
- MOV RAX, RCX
- MOV RCX, RDX
+ MOV EAX, ECX
+ MOV ECX, EDX
CDQ
- SHLD RDX, RAX, 16
- SHL RAX, 16
- IDIV RCX
+ SHLD EDX, EAX, 16
+ SHL EAX, 16
+ IDIV ECX
{$ENDIF}
{$IFDEF TARGET_x86}
MOV ECX, B
@@ -390,21 +390,24 @@
{$ELSE}
asm
{$IFDEF TARGET_x64}
- SUB RDX, R8
- IMUL RDX
- SHRD RCX, RDX,16
- ADD RCX, R8
- MOV RAX, RCX
+ MOV EAX, ECX
+ SUB EDX, R8D
+ IMUL EDX
+ SHRD EAX, EDX, 16
+ ADD EAX, R8D
{$ENDIF}
{$IFDEF TARGET_x86}
SUB EDX, ECX
IMUL EDX
- SHRD EAX, EDX,16
+ SHRD EAX, EDX, 16
ADD EAX, ECX
{$ENDIF}
{$ENDIF}
end;
+{$DEFINE PUREPASCAL}
+{$UNDEF PUREPASCAL}
+
{ Trigonometry }
procedure SinCos(const Theta: TFloat; out Sin, Cos: TFloat);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|