Bläddra i källkod

Merged revisions 10458,10487 via svnmerge from
http://svn.freepascal.org/svn/fpc/trunk

........
r10458 | florian | 2008-03-07 23:51:14 +0200 (Пт, 07 мар 2008) | 2 lines

* fix edsp instructions detection
........
r10487 | micha | 2008-03-13 23:36:01 +0200 (Чт, 13 мар 2008) | 1 line

* fix arm edsp test to load from aligned address
........

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

yury 17 år sedan
förälder
incheckning
ecc68908a7
2 ändrade filer med 4 tillägg och 2 borttagningar
  1. 2 1
      rtl/arm/arm.inc
  2. 2 1
      rtl/linux/arm/sighnd.inc

+ 2 - 1
rtl/arm/arm.inc

@@ -589,7 +589,8 @@ begin
   cpu_has_edsp:=true;
   in_edsp_test:=true;
   asm
-    pld [r0]
+    bic r0,sp,#7
+    ldrd r0,[r0]
   end;
   in_edsp_test:=false;
   if cpu_has_edsp then

+ 2 - 1
rtl/linux/arm/sighnd.inc

@@ -33,6 +33,7 @@ begin
           begin
             res:=0;
             cpu_has_edsp:=false;
+            inc(uContext^.uc_mcontext.arm_pc,4);
           end
         else
           res:=216;
@@ -44,7 +45,7 @@ begin
   reenable_signal(sig);
   { give runtime error at the position where the signal was raised }
   if res<>0 then
-    HandleErrorAddrFrame(res,pointer(uContext^.uc_mcontext.arm_ip),pointer(uContext^.uc_mcontext.arm_fp));
+    HandleErrorAddrFrame(res,pointer(uContext^.uc_mcontext.arm_pc),pointer(uContext^.uc_mcontext.arm_fp));
 end;