[Vm-dev] [commit][2788] minor faster-blt for Pi fixes

commits at squeakvm.org commits at squeakvm.org
Tue Oct 8 01:37:45 UTC 2013


Revision: 2788
Author:   rowledge
Date:     2013-10-07 18:37:43 -0700 (Mon, 07 Oct 2013)
Log Message:
-----------
minor faster-blt for Pi fixes

Modified Paths:
--------------
    trunk/platforms/Cross/plugins/BitBltPlugin/BitBltArmSimdAsm.hdr
    trunk/platforms/Cross/plugins/BitBltPlugin/BitBltDispatch.c

Modified: trunk/platforms/Cross/plugins/BitBltPlugin/BitBltArmSimdAsm.hdr
===================================================================
--- trunk/platforms/Cross/plugins/BitBltPlugin/BitBltArmSimdAsm.hdr	2013-09-25 21:15:45 UTC (rev 2787)
+++ trunk/platforms/Cross/plugins/BitBltPlugin/BitBltArmSimdAsm.hdr	2013-10-08 01:37:43 UTC (rev 2788)
@@ -22,11 +22,6 @@
 ; SOFTWARE.
 ;
 
-; NOTE- older versions of ASASM had a bug which required a workaround in 
-; the macros SEL, UADD8, USUB8 & USUB16. This work-around is NOT present
-; in this version. You must make sure to use an asasm dated post 2013-08-01
-; or version 6495
-
       [ :LNOT: :DEF: DebugData
         GBLL    DebugData
       ]
@@ -162,23 +157,23 @@
  ; Assume asasm, which is lacking a number of key opcodes
 
         MACRO
-$label  SEL$cond $Rd, $Rn, $Rm
-$label  DCI     :CC_ENCODING:"$cond" :OR: &06800FB0 :OR: (:RCONST:$Rn :SHL: 16) :OR: (:RCONST:$Rd :SHL: 12) :OR: (:RCONST:$Rm :SHL: 0)
+$label  SEL     $Rd, $Rn, $Rm
+$label  DCI     &E6800FB0 :OR: (:RCONST:$Rn :SHL: 16) :OR: (:RCONST:$Rd :SHL: 12) :OR: (:RCONST:$Rm :SHL: 0)
         MEND
 
         MACRO
-$label  UADD8$cond $Rd, $Rn, $Rm
-$label  DCI     :CC_ENCODING:"$cond" :OR: &06500F90 :OR: (:RCONST:$Rn :SHL: 16) :OR: (:RCONST:$Rd :SHL: 12) :OR: (:RCONST:$Rm :SHL: 0)
+$label  UADD8   $Rd, $Rn, $Rm
+$label  DCI     &E6500F90 :OR: (:RCONST:$Rn :SHL: 16) :OR: (:RCONST:$Rd :SHL: 12) :OR: (:RCONST:$Rm :SHL: 0)
         MEND
 
         MACRO
-$label  USUB8$cond $Rd, $Rn, $Rm
-$label  DCI     :CC_ENCODING:"$cond" :OR: &06500FF0 :OR: (:RCONST:$Rn :SHL: 16) :OR: (:RCONST:$Rd :SHL: 12) :OR: (:RCONST:$Rm :SHL: 0)
+$label  USUB8   $Rd, $Rn, $Rm
+$label  DCI     &E6500FF0 :OR: (:RCONST:$Rn :SHL: 16) :OR: (:RCONST:$Rd :SHL: 12) :OR: (:RCONST:$Rm :SHL: 0)
         MEND
 
         MACRO
-$label  USUB16$cond $Rd, $Rn, $Rm
-$label  DCI     :CC_ENCODING:"$cond" :OR: &06500F70 :OR: (:RCONST:$Rn :SHL: 16) :OR: (:RCONST:$Rd :SHL: 12) :OR: (:RCONST:$Rm :SHL: 0)
+$label  USUB16  $Rd, $Rn, $Rm
+$label  DCI     &E6500F70 :OR: (:RCONST:$Rn :SHL: 16) :OR: (:RCONST:$Rd :SHL: 12) :OR: (:RCONST:$Rm :SHL: 0)
         MEND
 
         MACRO

Modified: trunk/platforms/Cross/plugins/BitBltPlugin/BitBltDispatch.c
===================================================================
--- trunk/platforms/Cross/plugins/BitBltPlugin/BitBltDispatch.c	2013-09-25 21:15:45 UTC (rev 2787)
+++ trunk/platforms/Cross/plugins/BitBltPlugin/BitBltDispatch.c	2013-10-08 01:37:43 UTC (rev 2788)
@@ -37,7 +37,7 @@
 #include "BitBltInternal.h"
 
 /** Define this to enable profiling */
-#define PROFILING
+//#define PROFILING
 
 #ifdef PROFILING
 #include <stdio.h>
@@ -418,12 +418,13 @@
 		storedCombinationRule = op->combinationRule;
 		storedFlags = flags;
 		storedFunc = lookupFastPath(op->combinationRule, flags);
-		if (storedFunc == NULL)
+		if (storedFunc == NULL) {
 			/* Unsupported case 8 */
 #ifdef PROFILING
 			profile_unrecorded_cases[8]++;
 #endif
 			storedFunc = copyBitsFallback;
+		}
 	}
 #ifdef PROFILING
 	uint32_t before = gettime();



More information about the Vm-dev mailing list