瀏覽代碼

Merged revisions 8054-8055,8059 via svnmerge from
http://svn.freepascal.org/svn/fpc/trunk

........
r8054 | yury | 2007-07-14 22:46:22 +0300 (Сб, 14 июл 2007) | 1 line

* Fixed default float exceptions mask for arm fpu. It fixes tw3160c.pp on arm-linux.
........
r8055 | yury | 2007-07-14 23:45:05 +0300 (Сб, 14 июл 2007) | 1 line

* Fixed reading of components from stream on arm-linux.
........
r8059 | yury | 2007-07-15 00:52:15 +0300 (Вс, 15 июл 2007) | 1 line

* Don't optimize (eliminate) arm fpu move instruction if it performs float type conversion. It fixes tb0519.pp on arm-linux.
........

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

yury 18 年之前
父節點
當前提交
16042b2e81
共有 2 個文件被更改,包括 3 次插入2 次删除
  1. 1 1
      compiler/arm/aasmcpu.pas
  2. 2 1
      rtl/arm/arm.inc

+ 1 - 1
compiler/arm/aasmcpu.pas

@@ -489,7 +489,7 @@ implementation
       begin
         { allow the register allocator to remove unnecessary moves }
         result:=(((opcode=A_MOV) and (regtype = R_INTREGISTER)) or
-                 ((opcode=A_MVF) and (regtype = R_FPUREGISTER))
+                 ((opcode=A_MVF) and (regtype = R_FPUREGISTER) and (oppostfix in [PF_None,PF_D]))
                 ) and
                 (condition=C_None) and
                 (ops=2) and

+ 2 - 1
rtl/arm/arm.inc

@@ -24,10 +24,11 @@ const
 procedure fpc_cpuinit;
 begin
 {$if not(defined(wince)) and not(defined(gba)) and not(defined(nds)) and not(defined(FPUSOFT)) and not(defined(FPULIBGCC))}
+  { Enable FPU exceptions, but disable INEXACT, UNDERFLOW, DENORMAL }
   asm
     rfs r0
     and r0,r0,#0xffe0ffff
-    orr r0,r0,#0x00020000
+    orr r0,r0,#0x00070000
     wfs r0
   end;
 {$endif}