Hi All,
I have found a significant BUG in the simulator.

When you use HW multiplyer MAC command, and result exceeds 0xFFFFFFFF
(e.g. it needs to use __SUMEXT to fit) the __SUMEXT register does not
updates.

Here is the program:

int x;
int main()
{
 asm volatile ("mov #0xFFFF,&__MPY\n"\
        "mov #0xFFFF,&__OP2\n"\
        "mov #0xFFFF,&__MAC\n"\
        "mov #0xFFFF,&__OP2\n"\
        "mov &__SUMEXT,&x\n" : :); //At this point Result=0x1 FFFC 0002, so
x should be 0x01, but it is 0 !
                                                 //so does __SUMEXT
}

The IAR C-SPY simulates this program with the correct result.

Thenks,
Oleg.


Reply via email to