]> oss.titaniummirror.com Git - msp430-libc.git/blobdiff - src/stdlib/div.S
Imported msp430-libc-20100207
[msp430-libc.git] / src / stdlib / div.S
index 2331bf6925be71584a776a2dc75295d889b9a96a..c286b82ae1c0203999282499c31c207559c0af16 100644 (file)
@@ -1,21 +1,32 @@
+#include    "../core_common.inc"
 /* ldiv() is the same as __divmodsi4() in libgcc */
 
        .section .text
        .global div
 div:
 ;; save clobbers first
-        push    r10
+#if defined(__MSP430X__)
+        XPUSHM  #2, r11
+#else
         push    r11
+        push    r10
+#endif
 ;; mov registers.
         mov     r14, r10       ;; denom
         mov     r15, r12       ;; num
 ;; divide
-        call    #__divmodhi4
-       mov     r14, r15
-       mov     r12, r14
+        XCALL   #__divmodhi4
+        mov     r14, r15
+        mov     r12, r14
 ;; result is in there already...
 ;; restore regs and return.
-        pop     r11
+#if defined(__MSP430X__)
+        XPOPM   #2, r11
+        XRET
+#elif defined(__MSP430_SAVE_PROLOGUE__)
+        br      #__epilogue_restorer + 6 * 2
+#else
         pop     r10
+        pop     r11
         ret
-
+#endif