Browse Source

Merged revisions 8186-8187,8189 via svnmerge from
http://svn.freepascal.org/svn/fpc/trunk

........
r8186 | yury | 2007-07-29 15:01:22 +0300 (Вс, 29 июл 2007) | 1 line

* Fixed threadvar access in syscall helpers on arm-linux. Bug #9290.
........
r8189 | yury | 2007-07-29 18:21:44 +0300 (Вс, 29 июл 2007) | 1 line

* Final fix for threadvar access in syscall helpers on arm-linux. It fixes bugs #9191 and #9290.
........

git-svn-id: branches/fixes_2_2@8190 -

yury 18 years ago
parent
commit
5a888262c5
1 changed files with 14 additions and 2 deletions
  1. 14 2
      rtl/linux/arm/syscall.inc

+ 14 - 2
rtl/linux/arm/syscall.inc

@@ -44,6 +44,8 @@ asm
   mvn  r0,#0
   mvn  r0,#0
   b    .LDone
   b    .LDone
 .LThread:
 .LThread:
+  ldr  r0,[r0]
+  mov  lr,pc
   mov  pc,r2
   mov  pc,r2
   str  r4,[r0]
   str  r4,[r0]
   mvn  r0,#0
   mvn  r0,#0
@@ -79,6 +81,8 @@ asm
   mvn  r0,#0
   mvn  r0,#0
   b    .LDone
   b    .LDone
 .LThread:
 .LThread:
+  ldr  r0,[r0]
+  mov  lr,pc
   mov  pc,r2
   mov  pc,r2
   str  r4,[r0]
   str  r4,[r0]
   mvn  r0,#0
   mvn  r0,#0
@@ -114,6 +118,8 @@ asm
   mvn  r0,#0
   mvn  r0,#0
   b    .LDone
   b    .LDone
 .LThread:
 .LThread:
+  ldr  r0,[r0]
+  mov  lr,pc
   mov  pc,r2
   mov  pc,r2
   str  r4,[r0]
   str  r4,[r0]
   mvn  r0,#0
   mvn  r0,#0
@@ -149,6 +155,8 @@ asm
   mvn  r0,#0
   mvn  r0,#0
   b    .LDone
   b    .LDone
 .LThread:
 .LThread:
+  ldr  r0,[r0]
+  mov  lr,pc
   mov  pc,r2
   mov  pc,r2
   str  r4,[r0]
   str  r4,[r0]
   mvn  r0,#0
   mvn  r0,#0
@@ -185,6 +193,8 @@ asm
   mvn  r0,#0
   mvn  r0,#0
   b    .LDone
   b    .LDone
 .LThread:
 .LThread:
+  ldr  r0,[r0]
+  mov  lr,pc
   mov  pc,r2
   mov  pc,r2
   str  r4,[r0]
   str  r4,[r0]
   mvn  r0,#0
   mvn  r0,#0
@@ -223,6 +233,8 @@ asm
   mvn  r0,#0
   mvn  r0,#0
   b    .LDone
   b    .LDone
 .LThread:
 .LThread:
+  ldr  r0,[r0]
+  mov  lr,pc
   mov  pc,r2
   mov  pc,r2
   str  r4,[r0]
   str  r4,[r0]
   mvn  r0,#0
   mvn  r0,#0
@@ -264,6 +276,8 @@ asm
   mvn  r0,#0
   mvn  r0,#0
   b    .LDone
   b    .LDone
 .LThread:
 .LThread:
+  ldr  r0,[r0]
+  mov  lr,pc
   mov  pc,r2
   mov  pc,r2
   str  r4,[r0]
   str  r4,[r0]
   mvn  r0,#0
   mvn  r0,#0
@@ -277,5 +291,3 @@ asm
   ldr r5,_r5
   ldr r5,_r5
   ldr r6,_r6
   ldr r6,_r6
 end ['r4','r5','r6'];
 end ['r4','r5','r6'];
-
-