https://git.reactos.org/?p=reactos.git;a=commitdiff;h=2ae1675208bb05e43c91b5762a10d1292298f420

commit 2ae1675208bb05e43c91b5762a10d1292298f420
Author:     Victor Perevertkin <vic...@perevertkin.ru>
AuthorDate: Sun Jul 15 18:49:49 2018 +0300
Commit:     Hermès BÉLUSCA - MAÏTO <hermes.belusca-ma...@reactos.org>
CommitDate: Sun Jul 15 23:25:23 2018 +0200

    [ASM] Fixed ".double" macro in asm.inc.
    GAS uses ".double" symbol for declaring floating-point constants and
    ".quad" symbol for declaring 64-bit numbers.
    This is not compatible with our macro for MASM and introduces bugs.
    Now 64-bit constants are supposed to be declared using ".quad" macro.
---
 boot/freeldr/freeldr/arch/amd64/entry.S | 4 ++--
 sdk/include/asm/asm.inc                 | 6 +++++-
 sdk/lib/crt/except/amd64/cpp.s          | 6 +++---
 3 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/boot/freeldr/freeldr/arch/amd64/entry.S 
b/boot/freeldr/freeldr/arch/amd64/entry.S
index a5b7fd6770..075778f884 100644
--- a/boot/freeldr/freeldr/arch/amd64/entry.S
+++ b/boot/freeldr/freeldr/arch/amd64/entry.S
@@ -25,7 +25,7 @@ RealEntryPoint:
     jmp qword ptr [ContinueAddress]
 
 ContinueAddress:
-    .double offset FrldrStartup
+    .quad offset FrldrStartup
 
 FrldrStartup:
 
@@ -120,7 +120,7 @@ CallRealMode_return:
 
     /* 64-bit stack pointer */
 stack64:
-    .double STACKADDR
+    .quad STACKADDR
 
 PUBLIC FrldrBootDrive
 FrldrBootDrive:
diff --git a/sdk/include/asm/asm.inc b/sdk/include/asm/asm.inc
index 3b4dfe1458..e94a078445 100644
--- a/sdk/include/asm/asm.inc
+++ b/sdk/include/asm/asm.inc
@@ -136,10 +136,14 @@ ENDM
     dd args
 ENDM
 
-.double MACRO args:VARARG
+.quad MACRO args:VARARG
     dq args
 ENDM
 
+.double MACRO args:VARARG
+    real8 args
+ENDM
+
 .org MACRO value
     ORG value
 ENDM
diff --git a/sdk/lib/crt/except/amd64/cpp.s b/sdk/lib/crt/except/amd64/cpp.s
index a5ead9508b..3be32c9648 100644
--- a/sdk/lib/crt/except/amd64/cpp.s
+++ b/sdk/lib/crt/except/amd64/cpp.s
@@ -8,18 +8,18 @@
 MACRO(START_VTABLE, shortname, cxxname)
 EXTERN shortname&_rtti:PROC
 EXTERN MSVCRT_&shortname&_vector_dtor:PROC
-    .double shortname&_rtti
+    .quad shortname&_rtti
 PUBLIC MSVCRT_&shortname&_vtable
 MSVCRT_&shortname&_vtable:
 PUBLIC &cxxname
 &cxxname:
-    .double MSVCRT_&shortname&_vector_dtor
+    .quad MSVCRT_&shortname&_vector_dtor
 ENDM
 
 MACRO(DEFINE_EXCEPTION_VTABLE, shortname, cxxname)
     START_VTABLE shortname, cxxname
     EXTERN MSVCRT_what_exception:ABS
-    .double MSVCRT_what_exception
+    .quad MSVCRT_what_exception
 ENDM
 
 START_VTABLE type_info, __dummyname_type_info

Reply via email to