Browse Source

* 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 -

Jonas Maebe 9 years ago
parent
commit
b4e857e9c4
1 changed files with 21 additions and 18 deletions
  1. 21 18
      tests/webtbs/tw29010a.pp

+ 21 - 18
tests/webtbs/tw29010a.pp

@@ -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