1 .level 1.1 2 .code 3 .align 4 4; More branching instructions than you ever knew what to do with. 5; 6; We could/should test some of the corner cases for register and 7; immediate fields. We should also check the assorted field 8; selectors to make sure they're handled correctly. 9branch_tests: 10 bl branch_tests,%r2 11 bl,n branch_tests,%r2 12 b branch_tests 13 b,n branch_tests 14 gate branch_tests,%r2 15 gate,n branch_tests,%r2 16 blr %r4,%r2 17 blr,n %r4,%r2 18 blr %r4,%r0 19 blr,n %r4,%r0 20 bv %r0(%r2) 21 bv,n %r0(%r2) 22 be 0x1234(%sr1,%r2) 23 be,n 0x1234(%sr1,%r2) 24 ble 0x1234(%sr1,%r2) 25 ble,n 0x1234(%sr1,%r2) 26 27movb_tests: 28 movb %r4,%r26,movb_tests 29 movb,= %r4,%r26,movb_tests 30 movb,< %r4,%r26,movb_tests 31 movb,od %r4,%r26,movb_tests 32 movb,tr %r4,%r26,movb_tests 33 movb,<> %r4,%r26,movb_tests 34 movb,>= %r4,%r26,movb_tests 35 movb,ev %r4,%r26,movb_tests 36movb_nullified_tests: 37 movb,n %r4,%r26,movb_tests 38 movb,=,n %r4,%r26,movb_tests 39 movb,<,n %r4,%r26,movb_tests 40 movb,od,n %r4,%r26,movb_tests 41 movb,tr,n %r4,%r26,movb_tests 42 movb,<>,n %r4,%r26,movb_tests 43 movb,>=,n %r4,%r26,movb_tests 44 movb,ev,n %r4,%r26,movb_tests 45 46movib_tests: 47 movib 5,%r26,movib_tests 48 movib,= 5,%r26,movib_tests 49 movib,< 5,%r26,movib_tests 50 movib,od 5,%r26,movib_tests 51 movib,tr 5,%r26,movib_tests 52 movib,<> 5,%r26,movib_tests 53 movib,>= 5,%r26,movib_tests 54 movib,ev 5,%r26,movib_tests 55movib_nullified_tests: 56 movib,n 5,%r26,movib_tests 57 movib,=,n 5,%r26,movib_tests 58 movib,<,n 5,%r26,movib_tests 59 movib,od,n 5,%r26,movib_tests 60 movib,tr,n 5,%r26,movib_tests 61 movib,<>,n 5,%r26,movib_tests 62 movib,>=,n 5,%r26,movib_tests 63 movib,ev,n 5,%r26,movib_tests 64 65comb_tests: 66 comb %r0,%r4,comb_tests 67 comb,= %r0,%r4,comb_tests 68 comb,< %r0,%r4,comb_tests 69 comb,<= %r0,%r4,comb_tests 70 comb,<< %r0,%r4,comb_tests 71 comb,<<= %r0,%r4,comb_tests 72 comb,sv %r0,%r4,comb_tests 73 comb,od %r0,%r4,comb_tests 74 comb,tr %r0,%r4,comb_tests 75 comb,<> %r0,%r4,comb_tests 76 comb,>= %r0,%r4,comb_tests 77 comb,> %r0,%r4,comb_tests 78 comb,>>= %r0,%r4,comb_tests 79 comb,>> %r0,%r4,comb_tests 80 comb,nsv %r0,%r4,comb_tests 81 comb,ev %r0,%r4,comb_tests 82comb_nullified_tests: 83 comb,n %r0,%r4,comb_tests 84 comb,=,n %r0,%r4,comb_tests 85 comb,<,n %r0,%r4,comb_tests 86 comb,<=,n %r0,%r4,comb_tests 87 comb,<<,n %r0,%r4,comb_tests 88 comb,<<=,n %r0,%r4,comb_tests 89 comb,sv,n %r0,%r4,comb_tests 90 comb,od,n %r0,%r4,comb_tests 91 comb,tr,n %r0,%r4,comb_tests 92 comb,<>,n %r0,%r4,comb_tests 93 comb,>=,n %r0,%r4,comb_tests 94 comb,>,n %r0,%r4,comb_tests 95 comb,>>=,n %r0,%r4,comb_tests 96 comb,>>,n %r0,%r4,comb_tests 97 comb,nsv,n %r0,%r4,comb_tests 98 comb,ev,n %r0,%r4,comb_tests 99 100comib_tests: 101 comib 0,%r4,comib_tests 102 comib,< 0,%r4,comib_tests 103 comib,<= 0,%r4,comib_tests 104 comib,<< 0,%r4,comib_tests 105 comib,<<= 0,%r4,comib_tests 106 comib,sv 0,%r4,comib_tests 107 comib,od 0,%r4,comib_tests 108 comib,tr 0,%r4,comib_tests 109 comib,<> 0,%r4,comib_tests 110 comib,>= 0,%r4,comib_tests 111 comib,> 0,%r4,comib_tests 112 comib,>>= 0,%r4,comib_tests 113 comib,>> 0,%r4,comib_tests 114 comib,nsv 0,%r4,comib_tests 115 comib,ev 0,%r4,comb_tests 116 117comib_nullified_tests: 118 comib,n 0,%r4,comib_tests 119 comib,=,n 0,%r4,comib_tests 120 comib,<,n 0,%r4,comib_tests 121 comib,<=,n 0,%r4,comib_tests 122 comib,<<,n 0,%r4,comib_tests 123 comib,<<=,n 0,%r4,comib_tests 124 comib,sv,n 0,%r4,comib_tests 125 comib,od,n 0,%r4,comib_tests 126 comib,tr,n 0,%r4,comib_tests 127 comib,<>,n 0,%r4,comib_tests 128 comib,>=,n 0,%r4,comib_tests 129 comib,>,n 0,%r4,comib_tests 130 comib,>>=,n 0,%r4,comib_tests 131 comib,>>,n 0,%r4,comib_tests 132 comib,nsv,n 0,%r4,comib_tests 133 comib,ev,n 0,%r4,comib_tests 134 135 136 137addb_tests: 138 addb %r1,%r4,addb_tests 139 addb,= %r1,%r4,addb_tests 140 addb,< %r1,%r4,addb_tests 141 addb,<= %r1,%r4,addb_tests 142 addb,nuv %r1,%r4,addb_tests 143 addb,znv %r1,%r4,addb_tests 144 addb,sv %r1,%r4,addb_tests 145 addb,od %r1,%r4,addb_tests 146 addb,tr %r1,%r4,addb_tests 147 addb,<> %r1,%r4,addb_tests 148 addb,>= %r1,%r4,addb_tests 149 addb,> %r1,%r4,addb_tests 150 addb,uv %r1,%r4,addb_tests 151 addb,vnz %r1,%r4,addb_tests 152 addb,nsv %r1,%r4,addb_tests 153 addb,ev %r1,%r4,addb_tests 154addb_nullified_tests: 155 addb,n %r1,%r4,addb_tests 156 addb,=,n %r1,%r4,addb_tests 157 addb,<,n %r1,%r4,addb_tests 158 addb,<=,n %r1,%r4,addb_tests 159 addb,nuv,n %r1,%r4,addb_tests 160 addb,znv,n %r1,%r4,addb_tests 161 addb,sv,n %r1,%r4,addb_tests 162 addb,od,n %r1,%r4,addb_tests 163 addb,tr,n %r1,%r4,addb_tests 164 addb,<>,n %r1,%r4,addb_tests 165 addb,>=,n %r1,%r4,addb_tests 166 addb,>,n %r1,%r4,addb_tests 167 addb,uv,n %r1,%r4,addb_tests 168 addb,vnz,n %r1,%r4,addb_tests 169 addb,nsv,n %r1,%r4,addb_tests 170 addb,ev,n %r1,%r4,addb_tests 171 172addib_tests: 173 addib -1,%r4,addib_tests 174 addib,= -1,%r4,addib_tests 175 addib,< -1,%r4,addib_tests 176 addib,<= -1,%r4,addib_tests 177 addib,nuv -1,%r4,addib_tests 178 addib,znv -1,%r4,addib_tests 179 addib,sv -1,%r4,addib_tests 180 addib,od -1,%r4,addib_tests 181 addib,tr -1,%r4,addib_tests 182 addib,<> -1,%r4,addib_tests 183 addib,>= -1,%r4,addib_tests 184 addib,> -1,%r4,addib_tests 185 addib,uv -1,%r4,addib_tests 186 addib,vnz -1,%r4,addib_tests 187 addib,nsv -1,%r4,addib_tests 188 addib,ev -1,%r4,comb_tests 189 190addib_nullified_tests: 191 addib,n -1,%r4,addib_tests 192 addib,=,n -1,%r4,addib_tests 193 addib,<,n -1,%r4,addib_tests 194 addib,<=,n -1,%r4,addib_tests 195 addib,nuv,n -1,%r4,addib_tests 196 addib,znv,n -1,%r4,addib_tests 197 addib,sv,n -1,%r4,addib_tests 198 addib,od,n -1,%r4,addib_tests 199 addib,tr,n -1,%r4,addib_tests 200 addib,<>,n -1,%r4,addib_tests 201 addib,>=,n -1,%r4,addib_tests 202 addib,>,n -1,%r4,addib_tests 203 addib,uv,n -1,%r4,addib_tests 204 addib,vnz,n -1,%r4,addib_tests 205 addib,nsv,n -1,%r4,addib_tests 206 addib,ev,n -1,%r4,addib_tests 207 208 209; Needs to check lots of stuff (like corner bit cases) 210bb_tests: 211 bvb,< %r4,bb_tests 212 bvb,>= %r4,bb_tests 213 bvb,<,n %r4,bb_tests 214 bvb,>=,n %r4,bb_tests 215 bb,< %r4,5,bb_tests 216 bb,>= %r4,5,bb_tests 217 bb,<,n %r4,5,bb_tests 218 bb,>=,n %r4,5,bb_tests 219 220