Просмотр исходного кода

-- Aufzeichnung der Informationen für Zusammenführung von r43503 in ».«:
U .
-- Zusammenführen von r43506 in ».«:
U compiler/x86/cgx86.pas
-- Aufzeichnung der Informationen für Zusammenführung von r43506 in ».«:
G .
-- Zusammenführen von r43508 in ».«:
U compiler/i386/n386cal.pas
-- Aufzeichnung der Informationen für Zusammenführung von r43508 in ».«:
G .

git-svn-id: branches/fixes_3_2@43510 -

florian 5 лет назад
Родитель
Сommit
319b575012
2 измененных файлов с 7 добавлено и 7 удалено
  1. 5 6
      compiler/i386/n386cal.pas
  2. 2 1
      compiler/x86/cgx86.pas

+ 5 - 6
compiler/i386/n386cal.pas

@@ -86,19 +86,18 @@ implementation
         end;
       end;
 
+
     procedure ti386callnode.gen_syscall_para(para: tcallparanode);
       begin
         { lib parameter has no special type but proccalloptions must be a syscall }
         para.left:=cloadnode.create(tcpuprocdef(procdefinition).libsym,tcpuprocdef(procdefinition).libsym.owner);
       end;
 
+
     procedure ti386callnode.extra_interrupt_code;
       begin
-        if not(target_info.system in [system_i386_darwin,system_i386_iphonesim,system_i386_android]) then
-          begin
-            emit_none(A_PUSHF,S_L);
-            emit_reg(A_PUSH,S_L,NR_CS);
-          end;
+        emit_none(A_PUSHF,S_L);
+        emit_reg(A_PUSH,S_L,NR_CS);
       end;
 
 
@@ -168,5 +167,5 @@ implementation
 
 
 begin
-   ccallnode:=ti386callnode;
+  ccallnode:=ti386callnode;
 end.

+ 2 - 1
compiler/x86/cgx86.pas

@@ -3430,7 +3430,8 @@ unit cgx86;
             list.concat(Taicpu.Op_reg(A_PUSH,S_L,NR_ECX));
             list.concat(Taicpu.Op_reg(A_PUSH,S_L,NR_EBX));
             list.concat(Taicpu.Op_reg(A_PUSH,S_L,NR_EAX));
-            inc(stackmisalignment,4*2+6*4);
+            { pushf, push %cs, 4*selector registers, 6*general purpose registers }
+            inc(stackmisalignment,4+4+4*2+6*4);
           end;
 {$endif i386}