1//Original:/proj/frio/dv/testcases/core/c_ccflag_dr_imm3/c_ccflag_dr_imm3.dsp 2// Spec Reference: ccflag dr-imm3 3# mach: bfin 4 5.include "testutils.inc" 6 start 7 8 9imm32 r0, 0x00000001; 10imm32 r1, 0x00000002; 11imm32 r2, 0x00000003; 12imm32 r3, 0x00000004; 13 14imm32 r4, 0x00770088; 15imm32 r5, 0x009900aa; 16imm32 r6, 0x00bb00cc; 17imm32 r7, 0x00000000; 18 19ASTAT = R7; 20R4 = ASTAT; 21 22// positive dreg EQUAL to positive imm3 23CC = R0 == 1; 24R5 = ASTAT; 25CC = R0 < 1; 26R6 = ASTAT; 27CHECKREG r4, 0x00000000; 28CHECKREG r5, 0x00001025; 29CHECKREG r6, 0x00001005; 30CC = R0 <= 1; 31R5 = ASTAT; 32CC = R0 < 1; 33R6 = ASTAT; 34CC = R0 <= 1; 35R7 = ASTAT; 36CHECKREG r5, 0x00001025; 37CHECKREG r6, 0x00001005; 38CHECKREG r7, 0x00001025; 39 40// positive dreg GREATER than to positive imm3 41CC = R1 == 1; 42R5 = ASTAT; 43CC = R1 < 1; 44R6 = ASTAT; 45CC = R1 <= 1; 46R7 = ASTAT; 47CHECKREG r5, 0x00001004; // carry 48CHECKREG r6, 0x00001004; 49CHECKREG r7, 0x00001004; 50 51// positive dreg LESS than to positive imm3 52CC = R0 == 2; 53R5 = ASTAT; 54CC = R0 < 2; 55R6 = ASTAT; 56CC = R0 <= 2; 57R7 = ASTAT; 58CHECKREG r5, 0x00000002; 59CHECKREG r6, 0x00000022; 60CHECKREG r7, 0x00000022; 61 62// positive dreg GREATER than to neg imm3 63CC = R2 == -4; 64R5 = ASTAT; 65CC = R2 < -4; 66R6 = ASTAT; 67CC = R2 <= -4; 68R7 = ASTAT; 69CHECKREG r5, 0x00000000; 70CHECKREG r6, 0x00000000; 71CHECKREG r7, 0x00000000; 72 73imm32 r0, -1; 74imm32 r1, -2; 75imm32 r2, -3; 76imm32 r3, -4; 77// negative dreg and positive imm3 78R7 = 0; 79ASTAT = R7; 80R4 = ASTAT; 81 82CC = R3 == 1; 83R5 = ASTAT; 84CC = R3 < 1; 85R6 = ASTAT; 86CC = R3 <= 1; 87R7 = ASTAT; 88CHECKREG r4, 0x00000000; 89CHECKREG r5, 0x00001006; 90CHECKREG r6, 0x00001026; 91CHECKREG r7, 0x00001026; 92 93// negative dreg LESS than neg imm3 94CC = R2 == -1; 95R4 = ASTAT; 96CC = R2 < -1; 97R5 = ASTAT; 98CC = R2 <= -1; 99R6 = ASTAT; 100CHECKREG r4, 0x00000002; 101CHECKREG r5, 0x00000022; 102CHECKREG r6, 0x00000022; 103 104// negative dreg GREATER neg imm3 105CC = R0 == -4; 106R4 = ASTAT; 107CC = R0 < -4; 108R5 = ASTAT; 109CC = R0 <= -4; 110R6 = ASTAT; 111CHECKREG r4, 0x00001004; 112CHECKREG r5, 0x00001004; 113CHECKREG r6, 0x00001004; 114 115 116imm32 r0, 0x00000000; 117imm32 r1, 0x00000000; 118imm32 r2, 0x00000000; 119imm32 r3, 0x00000000; 120 121imm32 r4, 0x00000001; 122imm32 r5, 0x00000002; 123imm32 r6, 0x00000003; 124imm32 r7, 0x00000004; 125 126ASTAT = R0; 127R3 = ASTAT; 128 129// positive dreg EQUAL to positive imm3 130CC = R4 == 1; 131R1 = ASTAT; 132CC = R4 < 1; 133R2 = ASTAT; 134CHECKREG r0, 0x00000000; 135CHECKREG r1, 0x00001025; 136CHECKREG r2, 0x00001005; 137CC = R4 <= 1; 138R1 = ASTAT; 139CC = R4 < 1; 140R2 = ASTAT; 141CC = R4 <= 1; 142R3 = ASTAT; 143CHECKREG r1, 0x00001025; 144CHECKREG r2, 0x00001005; 145CHECKREG r3, 0x00001025; 146 147// positive dreg GREATER than to positive imm3 148CC = R5 == 1; 149R1 = ASTAT; 150CC = R5 < 1; 151R2 = ASTAT; 152CC = R5 <= 1; 153R3 = ASTAT; 154CHECKREG r1, 0x00001004; // carry 155CHECKREG r2, 0x00001004; 156CHECKREG r3, 0x00001004; 157 158// positive dreg LESS than to positive imm3 159CC = R6 == 2; 160R1 = ASTAT; 161CC = R6 < 2; 162R2 = ASTAT; 163CC = R6 <= 2; 164R3 = ASTAT; 165CHECKREG r1, 0x00001004; 166CHECKREG r2, 0x00001004; 167CHECKREG r3, 0x00001004; 168 169// positive dreg GREATER than to neg imm3 170CC = R6 == -4; 171R1 = ASTAT; 172CC = R6 < -4; 173R2 = ASTAT; 174CC = R6 <= -4; 175R3 = ASTAT; 176CHECKREG r1, 0x00000000; 177CHECKREG r2, 0x00000000; 178CHECKREG r3, 0x00000000; 179 180imm32 r4, -1; 181imm32 r5, -2; 182imm32 r6, -3; 183imm32 r7, -4; 184// negative dreg and positive imm3 185R3 = 0; 186ASTAT = R3; 187R0 = ASTAT; 188 189CC = R7 == 1; 190R1 = ASTAT; 191CC = R7 < 1; 192R2 = ASTAT; 193CC = R7 <= 1; 194R3 = ASTAT; 195CHECKREG r0, 0x00000000; 196CHECKREG r1, 0x00001006; 197CHECKREG r2, 0x00001026; 198CHECKREG r3, 0x00001026; 199 200// negative dreg LESS than neg imm3 201CC = R6 == -1; 202R0 = ASTAT; 203CC = R6 < -1; 204R1 = ASTAT; 205CC = R6 <= -1; 206R2 = ASTAT; 207CHECKREG r0, 0x00000002; 208CHECKREG r1, 0x00000022; 209CHECKREG r2, 0x00000022; 210 211// negative dreg GREATER neg imm3 212CC = R4 == -4; 213R0 = ASTAT; 214CC = R4 < -4; 215R1 = ASTAT; 216CC = R4 <= -4; 217R2 = ASTAT; 218CHECKREG r0, 0x00001004; 219CHECKREG r1, 0x00001004; 220CHECKREG r2, 0x00001004; 221 222 223 224pass; 225