X-Git-Url: https://oss.titaniummirror.com/gitweb/?a=blobdiff_plain;f=src%2Fstdlib%2Fdiv.S;fp=src%2Fstdlib%2Fdiv.S;h=c286b82ae1c0203999282499c31c207559c0af16;hb=6f720ff00773571c2fa2d35e67bff68547617639;hp=2331bf6925be71584a776a2dc75295d889b9a96a;hpb=807b2dd5b7365eb87b482197af3b4a3f520c14f7;p=msp430-libc.git diff --git a/src/stdlib/div.S b/src/stdlib/div.S index 2331bf6..c286b82 100644 --- a/src/stdlib/div.S +++ b/src/stdlib/div.S @@ -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