aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/avr/libgcc.S
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config/avr/libgcc.S')
-rw-r--r--gcc/config/avr/libgcc.S10
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