Browse Source

* use si, instead of bp in InterLockedDecrement and InterLockedIncrement

git-svn-id: trunk@27400 -
nickysn 11 years ago
parent
commit
2dd9a36bdc
1 changed files with 4 additions and 8 deletions
  1. 4 8
      rtl/i8086/i8086.inc

+ 4 - 8
rtl/i8086/i8086.inc

@@ -211,27 +211,23 @@ end;
 {TODO: fix, use smallint?}
 {TODO: fix, use smallint?}
 function InterLockedDecrement (var Target: longint) : longint;nostackframe;assembler;
 function InterLockedDecrement (var Target: longint) : longint;nostackframe;assembler;
 asm
 asm
-  push bp
-  mov bp, sp
-  mov bx, ss:[bp + 4 + extra_param_offset]  // Target
+  mov si, sp
+  mov bx, ss:[si + 2 + extra_param_offset]  // Target
   sub word [bx], 1
   sub word [bx], 1
   sbb word [bx+2], 0
   sbb word [bx+2], 0
   mov ax, [bx]
   mov ax, [bx]
   mov dx, [bx+2]
   mov dx, [bx+2]
-  pop bp
 end;
 end;
 
 
 {TODO: fix, use smallint?}
 {TODO: fix, use smallint?}
 function InterLockedIncrement (var Target: longint) : longint;nostackframe;assembler;
 function InterLockedIncrement (var Target: longint) : longint;nostackframe;assembler;
 asm
 asm
-  push bp
-  mov bp, sp
-  mov bx, ss:[bp + 4 + extra_param_offset]  // Target
+  mov si, sp
+  mov bx, ss:[si + 2 + extra_param_offset]  // Target
   add word [bx], 1
   add word [bx], 1
   adc word [bx+2], 0
   adc word [bx+2], 0
   mov ax, [bx]
   mov ax, [bx]
   mov dx, [bx+2]
   mov dx, [bx+2]
-  pop bp
 end;
 end;
 
 
 {TODO: fix, use smallint?}
 {TODO: fix, use smallint?}