123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224 |
- //Original:/proj/frio/dv/testcases/core/c_ccflag_dr_imm3/c_ccflag_dr_imm3.dsp
- // Spec Reference: ccflag dr-imm3
- # mach: bfin
- .include "testutils.inc"
- start
- imm32 r0, 0x00000001;
- imm32 r1, 0x00000002;
- imm32 r2, 0x00000003;
- imm32 r3, 0x00000004;
- imm32 r4, 0x00770088;
- imm32 r5, 0x009900aa;
- imm32 r6, 0x00bb00cc;
- imm32 r7, 0x00000000;
- ASTAT = R7;
- R4 = ASTAT;
- // positive dreg EQUAL to positive imm3
- CC = R0 == 1;
- R5 = ASTAT;
- CC = R0 < 1;
- R6 = ASTAT;
- CHECKREG r4, 0x00000000;
- CHECKREG r5, 0x00001025;
- CHECKREG r6, 0x00001005;
- CC = R0 <= 1;
- R5 = ASTAT;
- CC = R0 < 1;
- R6 = ASTAT;
- CC = R0 <= 1;
- R7 = ASTAT;
- CHECKREG r5, 0x00001025;
- CHECKREG r6, 0x00001005;
- CHECKREG r7, 0x00001025;
- // positive dreg GREATER than to positive imm3
- CC = R1 == 1;
- R5 = ASTAT;
- CC = R1 < 1;
- R6 = ASTAT;
- CC = R1 <= 1;
- R7 = ASTAT;
- CHECKREG r5, 0x00001004; // carry
- CHECKREG r6, 0x00001004;
- CHECKREG r7, 0x00001004;
- // positive dreg LESS than to positive imm3
- CC = R0 == 2;
- R5 = ASTAT;
- CC = R0 < 2;
- R6 = ASTAT;
- CC = R0 <= 2;
- R7 = ASTAT;
- CHECKREG r5, 0x00000002;
- CHECKREG r6, 0x00000022;
- CHECKREG r7, 0x00000022;
- // positive dreg GREATER than to neg imm3
- CC = R2 == -4;
- R5 = ASTAT;
- CC = R2 < -4;
- R6 = ASTAT;
- CC = R2 <= -4;
- R7 = ASTAT;
- CHECKREG r5, 0x00000000;
- CHECKREG r6, 0x00000000;
- CHECKREG r7, 0x00000000;
- imm32 r0, -1;
- imm32 r1, -2;
- imm32 r2, -3;
- imm32 r3, -4;
- // negative dreg and positive imm3
- R7 = 0;
- ASTAT = R7;
- R4 = ASTAT;
- CC = R3 == 1;
- R5 = ASTAT;
- CC = R3 < 1;
- R6 = ASTAT;
- CC = R3 <= 1;
- R7 = ASTAT;
- CHECKREG r4, 0x00000000;
- CHECKREG r5, 0x00001006;
- CHECKREG r6, 0x00001026;
- CHECKREG r7, 0x00001026;
- // negative dreg LESS than neg imm3
- CC = R2 == -1;
- R4 = ASTAT;
- CC = R2 < -1;
- R5 = ASTAT;
- CC = R2 <= -1;
- R6 = ASTAT;
- CHECKREG r4, 0x00000002;
- CHECKREG r5, 0x00000022;
- CHECKREG r6, 0x00000022;
- // negative dreg GREATER neg imm3
- CC = R0 == -4;
- R4 = ASTAT;
- CC = R0 < -4;
- R5 = ASTAT;
- CC = R0 <= -4;
- R6 = ASTAT;
- CHECKREG r4, 0x00001004;
- CHECKREG r5, 0x00001004;
- CHECKREG r6, 0x00001004;
- imm32 r0, 0x00000000;
- imm32 r1, 0x00000000;
- imm32 r2, 0x00000000;
- imm32 r3, 0x00000000;
- imm32 r4, 0x00000001;
- imm32 r5, 0x00000002;
- imm32 r6, 0x00000003;
- imm32 r7, 0x00000004;
- ASTAT = R0;
- R3 = ASTAT;
- // positive dreg EQUAL to positive imm3
- CC = R4 == 1;
- R1 = ASTAT;
- CC = R4 < 1;
- R2 = ASTAT;
- CHECKREG r0, 0x00000000;
- CHECKREG r1, 0x00001025;
- CHECKREG r2, 0x00001005;
- CC = R4 <= 1;
- R1 = ASTAT;
- CC = R4 < 1;
- R2 = ASTAT;
- CC = R4 <= 1;
- R3 = ASTAT;
- CHECKREG r1, 0x00001025;
- CHECKREG r2, 0x00001005;
- CHECKREG r3, 0x00001025;
- // positive dreg GREATER than to positive imm3
- CC = R5 == 1;
- R1 = ASTAT;
- CC = R5 < 1;
- R2 = ASTAT;
- CC = R5 <= 1;
- R3 = ASTAT;
- CHECKREG r1, 0x00001004; // carry
- CHECKREG r2, 0x00001004;
- CHECKREG r3, 0x00001004;
- // positive dreg LESS than to positive imm3
- CC = R6 == 2;
- R1 = ASTAT;
- CC = R6 < 2;
- R2 = ASTAT;
- CC = R6 <= 2;
- R3 = ASTAT;
- CHECKREG r1, 0x00001004;
- CHECKREG r2, 0x00001004;
- CHECKREG r3, 0x00001004;
- // positive dreg GREATER than to neg imm3
- CC = R6 == -4;
- R1 = ASTAT;
- CC = R6 < -4;
- R2 = ASTAT;
- CC = R6 <= -4;
- R3 = ASTAT;
- CHECKREG r1, 0x00000000;
- CHECKREG r2, 0x00000000;
- CHECKREG r3, 0x00000000;
- imm32 r4, -1;
- imm32 r5, -2;
- imm32 r6, -3;
- imm32 r7, -4;
- // negative dreg and positive imm3
- R3 = 0;
- ASTAT = R3;
- R0 = ASTAT;
- CC = R7 == 1;
- R1 = ASTAT;
- CC = R7 < 1;
- R2 = ASTAT;
- CC = R7 <= 1;
- R3 = ASTAT;
- CHECKREG r0, 0x00000000;
- CHECKREG r1, 0x00001006;
- CHECKREG r2, 0x00001026;
- CHECKREG r3, 0x00001026;
- // negative dreg LESS than neg imm3
- CC = R6 == -1;
- R0 = ASTAT;
- CC = R6 < -1;
- R1 = ASTAT;
- CC = R6 <= -1;
- R2 = ASTAT;
- CHECKREG r0, 0x00000002;
- CHECKREG r1, 0x00000022;
- CHECKREG r2, 0x00000022;
- // negative dreg GREATER neg imm3
- CC = R4 == -4;
- R0 = ASTAT;
- CC = R4 < -4;
- R1 = ASTAT;
- CC = R4 <= -4;
- R2 = ASTAT;
- CHECKREG r0, 0x00001004;
- CHECKREG r1, 0x00001004;
- CHECKREG r2, 0x00001004;
- pass;
|