From b298bf7678727adec79dce41c8aec4f4be6d3c07 Mon Sep 17 00:00:00 2001 From: Dan White Date: Sun, 1 Feb 2015 13:26:06 -0600 Subject: [PATCH] Remove inline ASM for */ word, a*b/c The Ubuntu 14.04 LTS mspgcc properly uses the hardware multiplier according to the compiler flags. --- msp4th/msp4th.c | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/msp4th/msp4th.c b/msp4th/msp4th.c index 5684e88..467e325 100644 --- a/msp4th/msp4th.c +++ b/msp4th/msp4th.c @@ -1305,17 +1305,6 @@ void execVM(int16_t opcode) break; case 54: // */ ( a b c -- (a*b)/c ) \ 32b intermediate -#if defined(MSP430) - // TODO FIXME broken order of operations - asm("dint"); - MPYS = popMathStack(); - OP2 = NOS; - x = (((int32_t)RESHI << 16) | RESLO); - asm("eint"); - x = (x / TOS); - popMathStack(); - TOS = (int16_t)(x & 0xffff); -#else i = popMathStack(); j = TOS; k = NOS; @@ -1323,7 +1312,6 @@ void execVM(int16_t opcode) x = x / i; popMathStack(); TOS = (int16_t)(x & 0xffff); -#endif break; case 55: // key ( -- c ) \ get a key from input .... (wait for it) -- 2.25.1