44 lines
1.3 KiB
ArmAsm
44 lines
1.3 KiB
ArmAsm
# check ASTAT ac/av flags are handled correctly when doing Acc = -Acc
|
|
# mach: bfin
|
|
#include "test.h"
|
|
.include "testutils.inc"
|
|
|
|
start
|
|
|
|
dmm32 ASTAT, (0x5020ca80 | _VS | _AV1S | _AC1 | _AC0 | _AQ | _CC | _AC0_COPY | _AN);
|
|
dmm32 A1.w, 0x549e07b3;
|
|
dmm32 A1.x, 0x0000002a;
|
|
A1 = -A1;
|
|
checkreg A1.w, 0xab61f84d;
|
|
checkreg A1.x, 0xffffffd5;
|
|
checkreg ASTAT, (0x5020ca80 | _VS | _AV1S | _AC0 | _AQ | _CC | _AC0_COPY | _AN);
|
|
|
|
dmm32 ASTAT, (0x48908a10 | _VS | _V | _AV1S | _AV0S | _CC | _V_COPY | _AN);
|
|
dmm32 A0.w, 0x3c57e100;
|
|
dmm32 A0.x, 0xfffffff2;
|
|
dmm32 A1.w, 0xfb63b8a0;
|
|
dmm32 A1.x, 0xffffffff;
|
|
A1 = -A0;
|
|
checkreg A1.w, 0xc3a81f00;
|
|
checkreg A1.x, 0x0000000d;
|
|
checkreg ASTAT, (0x48908a10 | _VS | _V | _AV1S | _AV0S | _CC | _V_COPY);
|
|
|
|
dmm32 ASTAT, (0x10900880 | _V | _AC0 | _CC | _AC0_COPY);
|
|
dmm32 A0.w, 0x4ca147ce;
|
|
dmm32 A0.x, 0xffffff9d;
|
|
dmm32 A1.w, 0x0e2534b9;
|
|
dmm32 A1.x, 0xffffff85;
|
|
A0 = -A1;
|
|
checkreg A0.w, 0xf1dacb47;
|
|
checkreg A0.x, 0x0000007a;
|
|
checkreg ASTAT, (0x10900880 | _V | _CC);
|
|
|
|
dmm32 ASTAT, (0x34904e90 | _VS | _V | _AV1S | _AC1 | _AC0 | _V_COPY | _AC0_COPY | _AN);
|
|
dmm32 A0.w, 0x7826f07d;
|
|
dmm32 A0.x, 0xffffffc2;
|
|
A0 = -A0;
|
|
checkreg A0.w, 0x87d90f83;
|
|
checkreg A0.x, 0x0000003d;
|
|
checkreg ASTAT, (0x34904e90 | _VS | _V | _AV1S | _AC1 | _V_COPY);
|
|
|
|
pass
|