aboutsummaryrefslogtreecommitdiff
path: root/libgcc
diff options
context:
space:
mode:
Diffstat (limited to 'libgcc')
-rw-r--r--libgcc/config/msp430/slli.S15
-rw-r--r--libgcc/config/msp430/srai.S15
-rw-r--r--libgcc/config/msp430/srli.S16
3 files changed, 46 insertions, 0 deletions
diff --git a/libgcc/config/msp430/slli.S b/libgcc/config/msp430/slli.S
index c31e2d5..b22622e 100644
--- a/libgcc/config/msp430/slli.S
+++ b/libgcc/config/msp430/slli.S
@@ -65,6 +65,21 @@ __mspabi_slli:
RET
#endif
+#ifdef __MSP430X__
+ .section .text.__gnu_mspabi_sllp
+1: ADDA #-1,R13
+ ADDA R12,R12
+ .global __gnu_mspabi_sllp
+__gnu_mspabi_sllp:
+ CMP #0,R13
+ JNZ 1b
+#ifdef __MSP430X_LARGE__
+ RETA
+#else
+ RET
+#endif /* __MSP430X_LARGE__ */
+#endif /* __MSP430X__ */
+
/* Logical Left Shift - R12:R13 -> R12:R13. */
.section .text.__mspabi_slll_n
diff --git a/libgcc/config/msp430/srai.S b/libgcc/config/msp430/srai.S
index d4a47fa..0100a36 100644
--- a/libgcc/config/msp430/srai.S
+++ b/libgcc/config/msp430/srai.S
@@ -64,6 +64,21 @@ __mspabi_srai:
RET
#endif
+#ifdef __MSP430X__
+ .section .text.__gnu_mspabi_srap
+1: ADDA #-1,R13
+ RRAX.A R12,R12
+ .global __gnu_mspabi_srap
+__gnu_mspabi_srap:
+ CMP #0,R13
+ JNZ 1b
+#ifdef __MSP430X_LARGE__
+ RETA
+#else
+ RET
+#endif /* __MSP430X_LARGE__ */
+#endif /* __MSP430X__ */
+
/* Arithmetic Right Shift - R12:R13 -> R12:R13. */
.section .text.__mspabi_sral_n
diff --git a/libgcc/config/msp430/srli.S b/libgcc/config/msp430/srli.S
index 838c4bc..50db47c 100644
--- a/libgcc/config/msp430/srli.S
+++ b/libgcc/config/msp430/srli.S
@@ -66,6 +66,22 @@ __mspabi_srli:
RET
#endif
+#ifdef __MSP430X__
+ .section .text.__gnu_mspabi_srlp
+1: ADDA #-1,R13
+ CLRC
+ RRCX.A R12,R12
+ .global __gnu_mspabi_srlp
+__gnu_mspabi_srlp:
+ CMP #0,R13
+ JNZ 1b
+#ifdef __MSP430X_LARGE__
+ RETA
+#else
+ RET
+#endif /* __MSP430X_LARGE__ */
+#endif /* __MSP430X__ */
+
/* Logical Right Shift - R12:R13 -> R12:R13. */
.section .text.__mspabi_srll_n