|
@@ -1899,12 +1899,14 @@ unit cgx86;
|
|
|
|
|
|
{ allocate stackframe space }
|
|
{ allocate stackframe space }
|
|
if (localsize<>0) or
|
|
if (localsize<>0) or
|
|
- ((target_info.system in [system_i386_darwin,system_x86_64_win64]) and
|
|
|
|
|
|
+ ((target_info.system in [system_i386_darwin,
|
|
|
|
+ system_x86_64_win64,system_x86_64_linux,system_x86_64_freebsd]) and
|
|
(stackmisalignment <> 0) and
|
|
(stackmisalignment <> 0) and
|
|
((pi_do_call in current_procinfo.flags) or
|
|
((pi_do_call in current_procinfo.flags) or
|
|
(po_assembler in current_procinfo.procdef.procoptions))) then
|
|
(po_assembler in current_procinfo.procdef.procoptions))) then
|
|
begin
|
|
begin
|
|
- if (target_info.system in [system_i386_darwin,system_x86_64_win64]) then
|
|
|
|
|
|
+ if (target_info.system in [system_i386_darwin,
|
|
|
|
+ system_x86_64_win64,system_x86_64_linux,system_x86_64_freebsd]) then
|
|
localsize := align(localsize+stackmisalignment,16)-stackmisalignment;
|
|
localsize := align(localsize+stackmisalignment,16)-stackmisalignment;
|
|
cg.g_stackpointer_alloc(list,localsize);
|
|
cg.g_stackpointer_alloc(list,localsize);
|
|
if current_procinfo.framepointer=NR_STACK_POINTER_REG then
|
|
if current_procinfo.framepointer=NR_STACK_POINTER_REG then
|