git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@4421
4a8a32a2-be11-0410-ad9d-
d568d2c75423
-2006-10-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+2006-10-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+ * src/mcs51/peeph.def: peephole 238.x added check for notvolatile
* support/regression/ports/mcs51/support.c: removed race
condition on TI in _putchar allowing to use serial port mode 0
* support/regression/ports/mcs51/support.c: removed race
condition on TI in _putchar allowing to use serial port mode 0
mov %7,%15
mov %8,%16
; Peephole 238.a removed 4 redundant moves
mov %7,%15
mov %8,%16
; Peephole 238.a removed 4 redundant moves
-} if operandsNotSame8 %1 %2 %3 %4 %5 %6 %7 %8
+} if operandsNotSame8(%1 %2 %3 %4 %5 %6 %7 %8), notVolatile(%1 %2 %3 %4 %9 %10 %11 %12)
// applies to device/lib/log10f.c
replace {
// applies to device/lib/log10f.c
replace {
mov %3,%7
mov %4,%8
; Peephole 238.b removed 3 redundant moves
mov %3,%7
mov %4,%8
; Peephole 238.b removed 3 redundant moves
-} if operandsNotSame7 %1 %2 %3 %4 %5 %6 %7
+} if operandsNotSame7(%1 %2 %3 %4 %5 %6 %7), notVolatile(%1 %2 %3 %5 %6 %7)
// applies to f.e. device/lib/time.c
replace {
// applies to f.e. device/lib/time.c
replace {
mov %3,%7
mov %4,%8
; Peephole 238.c removed 2 redundant moves
mov %3,%7
mov %4,%8
; Peephole 238.c removed 2 redundant moves
-} if operandsNotSame4 %1 %2 %3 %4
+} if operandsNotSame4(%1 %2 %3 %4), notVolatile(%1 %2 %5 %6)
// applies to f.e. support/regression/tests/bug-524209.c
replace {
// applies to f.e. support/regression/tests/bug-524209.c
replace {
mov %2,%5
mov %3,%6
; Peephole 238.d removed 3 redundant moves
mov %2,%5
mov %3,%6
; Peephole 238.d removed 3 redundant moves
-} if operandsNotSame6 %1 %2 %3 %4 %5 %6
+} if operandsNotSame6(%1 %2 %3 %4 %5 %6), notVolatile(%1 %2 %3 %4 %5 %6)
// applies to f.e. ser_ir.asm
replace {
// applies to f.e. ser_ir.asm
replace {