diff options
Diffstat (limited to 'gcc/config/avr/libgcc.S')
| -rw-r--r-- | gcc/config/avr/libgcc.S | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/gcc/config/avr/libgcc.S b/gcc/config/avr/libgcc.S index 97811d5..cd2ab78 100644 --- a/gcc/config/avr/libgcc.S +++ b/gcc/config/avr/libgcc.S @@ -691,9 +691,11 @@ _cleanup: #endif /* defined (L_cleanup) */ #ifdef L_tablejump - .global __tablejump__ - .func __tablejump__ -__tablejump__: + .global __tablejump2__ + .func __tablejump2__ +__tablejump2__: + lsl r30 + rol r31 #if defined (__AVR_ENHANCED__) lpm __tmp_reg__, Z+ lpm r31, Z @@ -702,7 +704,7 @@ __tablejump__: #else lpm push r0 - adiw r30, 1 + inc r30 ; table is word aligned, no carry to high byte lpm push r0 ret |
