mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-11-22 12:19:28 +01:00
* skip for darwin because it always requires/expects a 16 byte aligned stack
* mark ebx as modified in the assembler blocks git-svn-id: trunk@32688 -
This commit is contained in:
parent
5f14029e74
commit
b4e857e9c4
@ -1,4 +1,7 @@
|
|||||||
{ %cpu=i386 }
|
{ %cpu=i386 }
|
||||||
|
{ %skiptarget=darwin}
|
||||||
|
|
||||||
|
{ darwin is skipped because the stack must always be 16 byte aligned before a call }
|
||||||
program tw29010a;
|
program tw29010a;
|
||||||
|
|
||||||
{$ifdef fpc}
|
{$ifdef fpc}
|
||||||
@ -71,7 +74,7 @@ begin
|
|||||||
mov [ebx + TEspStruct.esp_final], esp
|
mov [ebx + TEspStruct.esp_final], esp
|
||||||
mov esp, [ebx + TEspStruct.esp_initial]
|
mov esp, [ebx + TEspStruct.esp_initial]
|
||||||
call check_dword
|
call check_dword
|
||||||
end;
|
end ['ebx'];
|
||||||
|
|
||||||
Writeln('testing push/pop word [global_proc]');
|
Writeln('testing push/pop word [global_proc]');
|
||||||
asm
|
asm
|
||||||
@ -83,7 +86,7 @@ begin
|
|||||||
mov [ebx + TEspStruct.esp_final], esp
|
mov [ebx + TEspStruct.esp_final], esp
|
||||||
mov esp, [ebx + TEspStruct.esp_initial]
|
mov esp, [ebx + TEspStruct.esp_initial]
|
||||||
call check_word
|
call check_word
|
||||||
end;
|
end ['ebx'];
|
||||||
|
|
||||||
Writeln('testing push/pop word ptr global_proc');
|
Writeln('testing push/pop word ptr global_proc');
|
||||||
asm
|
asm
|
||||||
@ -95,7 +98,7 @@ begin
|
|||||||
mov [ebx + TEspStruct.esp_final], esp
|
mov [ebx + TEspStruct.esp_final], esp
|
||||||
mov esp, [ebx + TEspStruct.esp_initial]
|
mov esp, [ebx + TEspStruct.esp_initial]
|
||||||
call check_word
|
call check_word
|
||||||
end;
|
end ['ebx'];
|
||||||
|
|
||||||
Writeln('testing push/pop word ptr [global_proc]');
|
Writeln('testing push/pop word ptr [global_proc]');
|
||||||
asm
|
asm
|
||||||
@ -107,7 +110,7 @@ begin
|
|||||||
mov [ebx + TEspStruct.esp_final], esp
|
mov [ebx + TEspStruct.esp_final], esp
|
||||||
mov esp, [ebx + TEspStruct.esp_initial]
|
mov esp, [ebx + TEspStruct.esp_initial]
|
||||||
call check_word
|
call check_word
|
||||||
end;
|
end ['ebx'];
|
||||||
|
|
||||||
Writeln('testing push/pop global_word');
|
Writeln('testing push/pop global_word');
|
||||||
asm
|
asm
|
||||||
@ -119,7 +122,7 @@ begin
|
|||||||
mov [ebx + TEspStruct.esp_final], esp
|
mov [ebx + TEspStruct.esp_final], esp
|
||||||
mov esp, [ebx + TEspStruct.esp_initial]
|
mov esp, [ebx + TEspStruct.esp_initial]
|
||||||
call check_word
|
call check_word
|
||||||
end;
|
end ['ebx'];
|
||||||
|
|
||||||
Writeln('testing push/pop global_longint');
|
Writeln('testing push/pop global_longint');
|
||||||
asm
|
asm
|
||||||
@ -131,7 +134,7 @@ begin
|
|||||||
mov [ebx + TEspStruct.esp_final], esp
|
mov [ebx + TEspStruct.esp_final], esp
|
||||||
mov esp, [ebx + TEspStruct.esp_initial]
|
mov esp, [ebx + TEspStruct.esp_initial]
|
||||||
call check_dword
|
call check_dword
|
||||||
end;
|
end ['ebx'];
|
||||||
|
|
||||||
Writeln('testing push/pop word [global_longint]');
|
Writeln('testing push/pop word [global_longint]');
|
||||||
asm
|
asm
|
||||||
@ -143,7 +146,7 @@ begin
|
|||||||
mov [ebx + TEspStruct.esp_final], esp
|
mov [ebx + TEspStruct.esp_final], esp
|
||||||
mov esp, [ebx + TEspStruct.esp_initial]
|
mov esp, [ebx + TEspStruct.esp_initial]
|
||||||
call check_word
|
call check_word
|
||||||
end;
|
end ['ebx'];
|
||||||
|
|
||||||
Writeln('testing push/pop word ptr global_longint');
|
Writeln('testing push/pop word ptr global_longint');
|
||||||
asm
|
asm
|
||||||
@ -155,7 +158,7 @@ begin
|
|||||||
mov [ebx + TEspStruct.esp_final], esp
|
mov [ebx + TEspStruct.esp_final], esp
|
||||||
mov esp, [ebx + TEspStruct.esp_initial]
|
mov esp, [ebx + TEspStruct.esp_initial]
|
||||||
call check_word
|
call check_word
|
||||||
end;
|
end ['ebx'];
|
||||||
|
|
||||||
Writeln('testing push/pop word ptr [global_longint]');
|
Writeln('testing push/pop word ptr [global_longint]');
|
||||||
asm
|
asm
|
||||||
@ -167,7 +170,7 @@ begin
|
|||||||
mov [ebx + TEspStruct.esp_final], esp
|
mov [ebx + TEspStruct.esp_final], esp
|
||||||
mov esp, [ebx + TEspStruct.esp_initial]
|
mov esp, [ebx + TEspStruct.esp_initial]
|
||||||
call check_word
|
call check_word
|
||||||
end;
|
end ['ebx'];
|
||||||
{$endif FPC_PIC}
|
{$endif FPC_PIC}
|
||||||
|
|
||||||
Writeln('testing push/pop local_proc');
|
Writeln('testing push/pop local_proc');
|
||||||
@ -180,7 +183,7 @@ begin
|
|||||||
mov [ebx + TEspStruct.esp_final], esp
|
mov [ebx + TEspStruct.esp_final], esp
|
||||||
mov esp, [ebx + TEspStruct.esp_initial]
|
mov esp, [ebx + TEspStruct.esp_initial]
|
||||||
call check_dword
|
call check_dword
|
||||||
end;
|
end ['ebx'];
|
||||||
|
|
||||||
Writeln('testing push/pop word [local_proc]');
|
Writeln('testing push/pop word [local_proc]');
|
||||||
asm
|
asm
|
||||||
@ -192,7 +195,7 @@ begin
|
|||||||
mov [ebx + TEspStruct.esp_final], esp
|
mov [ebx + TEspStruct.esp_final], esp
|
||||||
mov esp, [ebx + TEspStruct.esp_initial]
|
mov esp, [ebx + TEspStruct.esp_initial]
|
||||||
call check_word
|
call check_word
|
||||||
end;
|
end ['ebx'];
|
||||||
|
|
||||||
Writeln('testing push/pop word ptr local_proc');
|
Writeln('testing push/pop word ptr local_proc');
|
||||||
asm
|
asm
|
||||||
@ -204,7 +207,7 @@ begin
|
|||||||
mov [ebx + TEspStruct.esp_final], esp
|
mov [ebx + TEspStruct.esp_final], esp
|
||||||
mov esp, [ebx + TEspStruct.esp_initial]
|
mov esp, [ebx + TEspStruct.esp_initial]
|
||||||
call check_word
|
call check_word
|
||||||
end;
|
end ['ebx'];
|
||||||
|
|
||||||
Writeln('testing push/pop word ptr [local_proc]');
|
Writeln('testing push/pop word ptr [local_proc]');
|
||||||
asm
|
asm
|
||||||
@ -216,7 +219,7 @@ begin
|
|||||||
mov [ebx + TEspStruct.esp_final], esp
|
mov [ebx + TEspStruct.esp_final], esp
|
||||||
mov esp, [ebx + TEspStruct.esp_initial]
|
mov esp, [ebx + TEspStruct.esp_initial]
|
||||||
call check_word
|
call check_word
|
||||||
end;
|
end ['ebx'];
|
||||||
|
|
||||||
Writeln('testing push/pop local_word');
|
Writeln('testing push/pop local_word');
|
||||||
asm
|
asm
|
||||||
@ -228,7 +231,7 @@ begin
|
|||||||
mov [ebx + TEspStruct.esp_final], esp
|
mov [ebx + TEspStruct.esp_final], esp
|
||||||
mov esp, [ebx + TEspStruct.esp_initial]
|
mov esp, [ebx + TEspStruct.esp_initial]
|
||||||
call check_word
|
call check_word
|
||||||
end;
|
end ['ebx'];
|
||||||
|
|
||||||
Writeln('testing push/pop local_longint');
|
Writeln('testing push/pop local_longint');
|
||||||
asm
|
asm
|
||||||
@ -240,7 +243,7 @@ begin
|
|||||||
mov [ebx + TEspStruct.esp_final], esp
|
mov [ebx + TEspStruct.esp_final], esp
|
||||||
mov esp, [ebx + TEspStruct.esp_initial]
|
mov esp, [ebx + TEspStruct.esp_initial]
|
||||||
call check_dword
|
call check_dword
|
||||||
end;
|
end ['ebx'];
|
||||||
|
|
||||||
Writeln('testing push/pop word [local_longint]');
|
Writeln('testing push/pop word [local_longint]');
|
||||||
asm
|
asm
|
||||||
@ -252,7 +255,7 @@ begin
|
|||||||
mov [ebx + TEspStruct.esp_final], esp
|
mov [ebx + TEspStruct.esp_final], esp
|
||||||
mov esp, [ebx + TEspStruct.esp_initial]
|
mov esp, [ebx + TEspStruct.esp_initial]
|
||||||
call check_word
|
call check_word
|
||||||
end;
|
end ['ebx'];
|
||||||
|
|
||||||
Writeln('testing push/pop word ptr local_longint');
|
Writeln('testing push/pop word ptr local_longint');
|
||||||
asm
|
asm
|
||||||
@ -264,7 +267,7 @@ begin
|
|||||||
mov [ebx + TEspStruct.esp_final], esp
|
mov [ebx + TEspStruct.esp_final], esp
|
||||||
mov esp, [ebx + TEspStruct.esp_initial]
|
mov esp, [ebx + TEspStruct.esp_initial]
|
||||||
call check_word
|
call check_word
|
||||||
end;
|
end ['ebx'];
|
||||||
|
|
||||||
Writeln('testing push/pop word ptr [local_longint]');
|
Writeln('testing push/pop word ptr [local_longint]');
|
||||||
asm
|
asm
|
||||||
@ -276,7 +279,7 @@ begin
|
|||||||
mov [ebx + TEspStruct.esp_final], esp
|
mov [ebx + TEspStruct.esp_final], esp
|
||||||
mov esp, [ebx + TEspStruct.esp_initial]
|
mov esp, [ebx + TEspStruct.esp_initial]
|
||||||
call check_word
|
call check_word
|
||||||
end;
|
end ['ebx'];
|
||||||
end;
|
end;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user