[openfirmware] [commit] r3740 - cpu/arm

repository service svn at openfirmware.info
Fri Sep 5 03:33:54 CEST 2014


Author: quozl
Date: Fri Sep  5 03:33:53 2014
New Revision: 3740
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/3740

Log:
[ARM] fixed signed double comparison
Author: Matthijs van Duin <matthijs at rinnic-vaude.nl>
Date:   Sat Apr 26 06:10:31 2014 +0200

Signed 64-bit comparisons currently check the sign of the difference
of the arguments, which really isn't the same as a comparison of the
arguments.  And a small simplification of d-

Modified:
   cpu/arm/kerncode.fth

Modified: cpu/arm/kerncode.fth
==============================================================================
--- cpu/arm/kerncode.fth	Fri Sep  5 03:31:13 2014	(r3739)
+++ cpu/arm/kerncode.fth	Fri Sep  5 03:33:53 2014	(r3740)
@@ -802,34 +802,37 @@
 
 code d-  ( d1 d2 -- d1-d2 )
    ldmia     sp!,{r0,r1,r2}     \ tos r0       r1 r2
-   subs      r2,r2,r0
-   sbc       r1,r1,tos
-   psh       r2,sp
-   mov       tos,r1
+   subs      r0,r2,r0
+   sbc       tos,r1,tos
+   psh       r0,sp
 c;
 code d<  ( d1 d2 -- f )
    ldmia     sp!,{r0,r1,r2}     \ tos r0       r1 r2
    subs      r2,r2,r0
-   sbcs      tos,r1,tos
-   mov       tos,tos,asr #0
+   sbcs      r1,r1,tos
+   movge     tos,#0
+   mvnlt     tos,#0
 c;
 code d>=  ( d1 d2 -- f )
    ldmia     sp!,{r0,r1,r2}     \ tos r0       r1 r2
    subs      r2,r2,r0
-   sbcs      tos,r1,tos
-   mvn       tos,tos,asr #0
+   sbcs      r1,r1,tos
+   movlt     tos,#0
+   mvnge     tos,#0
 c;
 code d>  ( d1 d2 -- f )
    ldmia     sp!,{r0,r1,r2}     \ tos r0       r1 r2
-   subs      r0,r0,r2
-   sbcs      tos,tos,r1
-   mov       tos,tos,asr #0
+   subs      r2,r2,r0
+   sbcs      r1,r1,tos
+   movle     tos,#0
+   mvngt     tos,#0
 c;
 code d<=  ( d1 d2 -- f )
    ldmia     sp!,{r0,r1,r2}     \ tos r0       r1 r2
-   subs      r0,r0,r2
-   sbcs      tos,tos,r1
-   mvn       tos,tos,asr #0
+   subs      r2,r2,r0
+   sbcs      tos,r1,tos
+   movgt     tos,#0
+   mvnle     tos,#0
 c;
 code du<  ( d1 d2 -- f )
    ldmia     sp!,{r0,r1,r2}     \ tos r0       r1 r2



More information about the openfirmware mailing list