with offset
* src/mcs51/peeph.def (186.x): updated and reenabled to fix bugs
1489016, 1434401 and 1490124
+ * src/ds390/peeph.def (186.x, 227.x): updated and reenabled to fix bugs
+ 1489016, 1434401 and 1490124
2006-05-17 Borut Razem <borut.razem AT siol.net>
mov %1,a
}
-replace {
+// char indexed access to: long code table[] = {4,3,2,1};
+replace restart {
add a,#%1
mov dpl,a
clr a
mov %4,a
inc dptr
clr a
+ movc a,@a+dptr
} by {
; Peephole 186.a optimized movc sequence
+ mov b,a
mov dptr,#%1
- mov b,acc
movc a,@a+dptr
mov %2,a
- mov acc,b
inc dptr
+ mov a,b
movc a,@a+dptr
mov %3,a
- mov acc,b
inc dptr
+ mov a,b
movc a,@a+dptr
mov %4,a
- mov acc,b
inc dptr
+ mov a,b
+ movc a,@a+dptr
}
-replace {
+// char indexed access to: void* code table[] = {4,3,2,1};
+replace restart {
add a,#%1
mov dpl,a
clr a
mov %3,a
inc dptr
clr a
+ movc a,@a+dptr
} by {
; Peephole 186.b optimized movc sequence
+ mov b,a
mov dptr,#%1
- mov b,acc
movc a,@a+dptr
mov %2,a
- mov acc,b
inc dptr
+ mov a,b
movc a,@a+dptr
mov %3,a
- mov acc,b
inc dptr
+ mov a,b
+ movc a,@a+dptr
}
-replace {
+// char indexed access to: int code table[] = {4,3,2,1};
+replace restart {
add a,#%1
mov dpl,a
clr a
mov %2,a
inc dptr
clr a
+ movc a,@a+dptr
} by {
; Peephole 186.c optimized movc sequence
+ mov %2,a
mov dptr,#%1
- mov b,acc
movc a,@a+dptr
- mov %2,a
- mov acc,b
+ xch a,%2
inc dptr
+ movc a,@a+dptr
}
-// disabled due to bug #1434401
-//// char indexed access to: char code table[] = {4,3,2,1};
-//replace {
-// add a,#%1
-// mov dpl,a
-// clr a
-// addc a,#(%1 >> 8)
-// mov dph,a
-// clr a
-// movc a,@a+dptr
-//} by {
-// ; Peephole 186.d optimized movc sequence
-// mov dptr,#%1
-// movc a,@a+dptr
-//}
+// char indexed access to: char code table[] = {4,3,2,1};
+replace {
+ add a,#%1
+ mov dpl,a
+ clr a
+ addc a,#(%1 >> 8)
+ mov dph,a
+ clr a
+ movc a,@a+dptr
+} by {
+ ; Peephole 186.d optimized movc sequence
+ mov dptr,#%1
+ movc a,@a+dptr
+}
replace {
mov r%1,%2
}
-// disabled due to bug #1434401
-//replace {
-// add a,#%2
-// mov dpl,a
-// clr a
-// addc a,#(%2 >> 8)
-// mov dph,a
-// clr a
-// addc a,#(%2 >> 16)
-// mov dpx,a
-// clr a
-// movc a,@a+dptr
-//} by {
-// ; Peephole 227.a movc optimize
-// mov dptr,#%2
-// movc a,@a+dptr
-//}
+// char indexed access to: long code table[] = {4,3,2,1};
+replace restart {
+ add a,#%1
+ mov dpl,a
+ clr a
+ addc a,#(%1 >> 8)
+ mov dph,a
+ clr a
+ addc a,#(%1 >> 16)
+ mov dpx,a
+ clr a
+ movc a,@a+dptr
+ inc dptr
+ mov %2,a
+ clr a
+ movc a,@a+dptr
+ inc dptr
+ mov %3,a
+ clr a
+ movc a,@a+dptr
+ inc dptr
+ mov %4,a
+ clr a
+ movc a,@a+dptr
+} by {
+ ; Peephole 227.a movc optimize
+ mov b,a
+ mov dptr,#%1
+ movc a,@a+dptr
+ inc dptr
+ mov %2,a
+ mov a,b
+ movc a,@a+dptr
+ inc dptr
+ mov %3,a
+ mov a,b
+ movc a,@a+dptr
+ inc dptr
+ mov %4,a
+ mov a,b
+ movc a,@a+dptr
+}
+
+// char indexed access to: void* code table[] = {4,3,2,1};
+replace restart {
+ add a,#%1
+ mov dpl,a
+ clr a
+ addc a,#(%1 >> 8)
+ mov dph,a
+ clr a
+ addc a,#(%1 >> 16)
+ mov dpx,a
+ clr a
+ movc a,@a+dptr
+ inc dptr
+ mov %2,a
+ clr a
+ movc a,@a+dptr
+ inc dptr
+ mov %3,a
+ clr a
+ movc a,@a+dptr
+} by {
+ ; Peephole 227.b movc optimize
+ mov b,a
+ mov dptr,#%1
+ movc a,@a+dptr
+ inc dptr
+ mov %2,a
+ mov a,b
+ movc a,@a+dptr
+ inc dptr
+ mov %3,a
+ mov a,b
+ movc a,@a+dptr
+}
+
+// char indexed access to: int code table[] = {4,3,2,1};
+replace restart {
+ add a,#%1
+ mov dpl,a
+ clr a
+ addc a,#(%1 >> 8)
+ mov dph,a
+ clr a
+ addc a,#(%1 >> 16)
+ mov dpx,a
+ clr a
+ movc a,@a+dptr
+ inc dptr
+ mov %2,a
+ clr a
+ movc a,@a+dptr
+} by {
+ ; Peephole 227.c movc optimize
+ mov %2,a
+ mov dptr,#%1
+ movc a,@a+dptr
+ inc dptr
+ xch a,%2
+ movc a,@a+dptr
+}
+
+// char indexed access to: char code table[] = {4,3,2,1};
+replace {
+ add a,#%1
+ mov dpl,a
+ clr a
+ addc a,#(%1 >> 8)
+ mov dph,a
+ clr a
+ addc a,#(%1 >> 16)
+ mov dpx,a
+ clr a
+ movc a,@a+dptr
+} by {
+ ; Peephole 227.d movc optimize
+ mov dptr,#%1
+ movc a,@a+dptr
+}
replace {
mov r%1,%2