void pushMathStack(int16_t n)
{
+#if defined(MSP430)
+ asm("decd %[ms]\n"
+ "mov %[n], @%[ms]\n"
+ : /* outputs */
+ : /* inputs */ [n] "r" (n), [ms] "r" (mathStackPtr)
+ : /* clobbers */
+ );
+#else
mathStackPtr--;
*mathStackPtr = n;
+#endif
}
{
int16_t i;
+#if defined(MSP430)
+ asm("mov @%[as], %[out]\n"
+ "incd %[as]\n"
+ : /* outputs */ [out] "=r" (i)
+ : /* inputs */ [as] "r" (addrStackPtr)
+ : /* clobbers */
+ );
+#else
i = *addrStackPtr;
addrStackPtr++;
+#endif
return(i);
}
void pushAddrStack(int16_t n)
{
+#if defined(MSP430)
+ asm("decd %[as]\n"
+ "mov %[n], @%[as]\n"
+ : /* outputs */
+ : /* inputs */ [n] "r" (n), [as] "r" (addrStackPtr)
+ : /* clobbers */
+ );
+#else
addrStackPtr--;
*addrStackPtr = n;
+#endif
}