1# frv testcase for csracc $GRi,$GRj,$GRk,$CCi,$cond 2# mach: all 3 4 .include "testutils.inc" 5 6 start 7 8 .global csracc 9csracc: 10 set_spr_immed 0x1b1b,cccr 11 12 set_gr_limmed 0xdead,0xbee0,gr7 ; Shift by 0 13 set_gr_limmed 0x8000,0x0000,gr8 14 set_icc 0x05,0 ; Set mask opposite of expected 15 csracc gr8,gr7,gr8,cc0,1 16 test_icc 1 0 0 0 icc0 17 test_gr_limmed 0x8000,0x0000,gr8 18 19 set_gr_limmed 0xdead,0xbee1,gr7 ; Shift by 1 20 set_gr_limmed 0x8000,0x0000,gr8 21 set_icc 0x07,0 ; Set mask opposite of expected 22 csracc gr8,gr7,gr8,cc0,1 23 test_icc 1 0 1 0 icc0 24 test_gr_limmed 0xc000,0x0000,gr8 25 26 set_gr_limmed 0xdead,0xbeff,gr7 ; Shift by 31 27 set_gr_limmed 0x8000,0x0000,gr8 28 set_icc 0x07,0 ; Set mask opposite of expected 29 csracc gr8,gr7,gr8,cc4,1 30 test_icc 1 0 1 0 icc0 31 test_gr_immed -1,gr8 32 33 set_gr_limmed 0xdead,0xbeff,gr7 ; clear register 34 set_gr_limmed 0x4000,0x0000,gr8 35 set_icc 0x0a,0 ; Set mask opposite of expected 36 csracc gr8,gr7,gr8,cc4,1 37 test_icc 0 1 1 1 icc0 38 test_gr_immed 0x00000000,gr8 39 40 set_gr_limmed 0xdead,0xbee0,gr7 ; Shift by 0 41 set_gr_limmed 0x8000,0x0000,gr8 42 set_icc 0x05,0 ; Set mask opposite of expected 43 csracc gr8,gr7,gr8,cc0,0 44 test_icc 0 1 0 1 icc0 45 test_gr_limmed 0x8000,0x0000,gr8 46 47 set_gr_limmed 0xdead,0xbee1,gr7 ; Shift by 1 48 set_gr_limmed 0x8000,0x0000,gr8 49 set_icc 0x0f,0 ; Set mask opposite of expected 50 csracc gr8,gr7,gr8,cc0,0 51 test_icc 1 1 1 1 icc0 52 test_gr_limmed 0x8000,0x0000,gr8 53 54 set_gr_limmed 0xdead,0xbeff,gr7 ; Shift by 31 55 set_gr_limmed 0x8000,0x0000,gr8 56 set_icc 0x0f,0 ; Set mask opposite of expected 57 csracc gr8,gr7,gr8,cc4,0 58 test_icc 1 1 1 1 icc0 59 test_gr_limmed 0x8000,0x0000,gr8 60 61 set_gr_limmed 0xdead,0xbeff,gr7 ; clear register 62 set_gr_limmed 0x4000,0x0000,gr8 63 set_icc 0x0a,0 ; Set mask opposite of expected 64 csracc gr8,gr7,gr8,cc4,0 65 test_icc 1 0 1 0 icc0 66 test_gr_limmed 0x4000,0x0000,gr8 67 68 set_gr_limmed 0xdead,0xbee0,gr7 ; Shift by 0 69 set_gr_limmed 0x8000,0x0000,gr8 70 set_icc 0x05,1 ; Set mask opposite of expected 71 csracc gr8,gr7,gr8,cc1,0 72 test_icc 1 0 0 0 icc1 73 test_gr_limmed 0x8000,0x0000,gr8 74 75 set_gr_limmed 0xdead,0xbee1,gr7 ; Shift by 1 76 set_gr_limmed 0x8000,0x0000,gr8 77 set_icc 0x07,1 ; Set mask opposite of expected 78 csracc gr8,gr7,gr8,cc1,0 79 test_icc 1 0 1 0 icc1 80 test_gr_limmed 0xc000,0x0000,gr8 81 82 set_gr_limmed 0xdead,0xbeff,gr7 ; Shift by 31 83 set_gr_limmed 0x8000,0x0000,gr8 84 set_icc 0x07,1 ; Set mask opposite of expected 85 csracc gr8,gr7,gr8,cc5,0 86 test_icc 1 0 1 0 icc1 87 test_gr_immed -1,gr8 88 89 set_gr_limmed 0xdead,0xbeff,gr7 ; clear register 90 set_gr_limmed 0x4000,0x0000,gr8 91 set_icc 0x0a,1 ; Set mask opposite of expected 92 csracc gr8,gr7,gr8,cc5,0 93 test_icc 0 1 1 1 icc1 94 test_gr_immed 0x00000000,gr8 95 96 set_gr_limmed 0xdead,0xbee0,gr7 ; Shift by 0 97 set_gr_limmed 0x8000,0x0000,gr8 98 set_icc 0x05,1 ; Set mask opposite of expected 99 csracc gr8,gr7,gr8,cc1,1 100 test_icc 0 1 0 1 icc1 101 test_gr_limmed 0x8000,0x0000,gr8 102 103 set_gr_limmed 0xdead,0xbee1,gr7 ; Shift by 1 104 set_gr_limmed 0x8000,0x0000,gr8 105 set_icc 0x0f,1 ; Set mask opposite of expected 106 csracc gr8,gr7,gr8,cc1,1 107 test_icc 1 1 1 1 icc1 108 test_gr_limmed 0x8000,0x0000,gr8 109 110 set_gr_limmed 0xdead,0xbeff,gr7 ; Shift by 31 111 set_gr_limmed 0x8000,0x0000,gr8 112 set_icc 0x0f,1 ; Set mask opposite of expected 113 csracc gr8,gr7,gr8,cc5,1 114 test_icc 1 1 1 1 icc1 115 test_gr_limmed 0x8000,0x0000,gr8 116 117 set_gr_limmed 0xdead,0xbeff,gr7 ; clear register 118 set_gr_limmed 0x4000,0x0000,gr8 119 set_icc 0x0a,1 ; Set mask opposite of expected 120 csracc gr8,gr7,gr8,cc5,1 121 test_icc 1 0 1 0 icc1 122 test_gr_limmed 0x4000,0x0000,gr8 123 124 set_gr_limmed 0xdead,0xbee0,gr7 ; Shift by 0 125 set_gr_limmed 0x8000,0x0000,gr8 126 set_icc 0x05,2 ; Set mask opposite of expected 127 csracc gr8,gr7,gr8,cc2,0 128 test_icc 0 1 0 1 icc2 129 test_gr_limmed 0x8000,0x0000,gr8 130 131 set_gr_limmed 0xdead,0xbee1,gr7 ; Shift by 1 132 set_gr_limmed 0x8000,0x0000,gr8 133 set_icc 0x0f,2 ; Set mask opposite of expected 134 csracc gr8,gr7,gr8,cc2,0 135 test_icc 1 1 1 1 icc2 136 test_gr_limmed 0x8000,0x0000,gr8 137 138 set_gr_limmed 0xdead,0xbeff,gr7 ; Shift by 31 139 set_gr_limmed 0x8000,0x0000,gr8 140 set_icc 0x0f,2 ; Set mask opposite of expected 141 csracc gr8,gr7,gr8,cc6,1 142 test_icc 1 1 1 1 icc2 143 test_gr_limmed 0x8000,0x0000,gr8 144 145 set_gr_limmed 0xdead,0xbeff,gr7 ; clear register 146 set_gr_limmed 0x4000,0x0000,gr8 147 set_icc 0x0a,2 ; Set mask opposite of expected 148 csracc gr8,gr7,gr8,cc6,1 149 test_icc 1 0 1 0 icc2 150 test_gr_limmed 0x4000,0x0000,gr8 151 152 set_gr_limmed 0xdead,0xbee0,gr7 ; Shift by 0 153 set_gr_limmed 0x8000,0x0000,gr8 154 set_icc 0x05,3 ; Set mask opposite of expected 155 csracc gr8,gr7,gr8,cc3,0 156 test_icc 0 1 0 1 icc3 157 test_gr_limmed 0x8000,0x0000,gr8 158 159 set_gr_limmed 0xdead,0xbee1,gr7 ; Shift by 1 160 set_gr_limmed 0x8000,0x0000,gr8 161 set_icc 0x0f,3 ; Set mask opposite of expected 162 csracc gr8,gr7,gr8,cc3,0 163 test_icc 1 1 1 1 icc3 164 test_gr_limmed 0x8000,0x0000,gr8 165 166 set_gr_limmed 0xdead,0xbeff,gr7 ; Shift by 31 167 set_gr_limmed 0x8000,0x0000,gr8 168 set_icc 0x0f,3 ; Set mask opposite of expected 169 csracc gr8,gr7,gr8,cc7,1 170 test_icc 1 1 1 1 icc3 171 test_gr_limmed 0x8000,0x0000,gr8 172 173 set_gr_limmed 0xdead,0xbeff,gr7 ; clear register 174 set_gr_limmed 0x4000,0x0000,gr8 175 set_icc 0x0a,3 ; Set mask opposite of expected 176 csracc gr8,gr7,gr8,cc7,1 177 test_icc 1 0 1 0 icc3 178 test_gr_limmed 0x4000,0x0000,gr8 179 180 pass 181