From a706c3900f716e0cb8907cfa3ed906f57552e935 Mon Sep 17 00:00:00 2001 From: pierre Date: Tue, 26 Sep 2017 21:02:45 +0000 Subject: [PATCH] Fix loading of argc field (longint type) of TEntryInformation.OS record git-svn-id: trunk@37329 - --- rtl/linux/x86_64/si_c.inc | 3 ++- rtl/linux/x86_64/si_g.inc | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/rtl/linux/x86_64/si_c.inc b/rtl/linux/x86_64/si_c.inc index 25c9541c26..f6a60de44c 100644 --- a/rtl/linux/x86_64/si_c.inc +++ b/rtl/linux/x86_64/si_c.inc @@ -128,7 +128,8 @@ procedure _FPC_libc_start; assembler; nostackframe; public name '_start'; {$ifdef FPC_HAS_INDIRECT_ENTRY_INFORMATION} movq SysInitEntryInformation@GOTPCREL(%rip),%rcx - movl %rsi,TEntryInformation.OS.argc(%rcx) + { argc is longint in EntryInformation, thus use %edi register } + movl %esi,TEntryInformation.OS.argc(%rcx) movq %rsp,TEntryInformation.OS.argv(%rcx) movq %rsp,(%rax) leaq 8(,%rsi,8),%rax diff --git a/rtl/linux/x86_64/si_g.inc b/rtl/linux/x86_64/si_g.inc index 5002526582..483bfbdc2a 100644 --- a/rtl/linux/x86_64/si_g.inc +++ b/rtl/linux/x86_64/si_g.inc @@ -93,7 +93,8 @@ procedure ini_dummy; {$ifdef FPC_HAS_INDIRECT_ENTRY_INFORMATION} movq SysInitEntryInformation@GOTPCREL(%rip),%rcx - movl %rsi,TEntryInformation.OS.argc(%rcx) + { argc is longint in EntryInformation, thus use %edi register } + movl %esi,TEntryInformation.OS.argc(%rcx) movq %rsp,TEntryInformation.OS.argv(%rcx) movq %rsp,(%rax) leaq 8(,%rsi,8),%rax