Home | History | Annotate | Line # | Download | only in fr550
      1 # frv testcase for cmqsubhus $FRi,$FRj,$FRj,$CCi,$cond
      2 # mach: all
      3 
      4 	.include "../testutils.inc"
      5 
      6 	start
      7 
      8 	.global cmqsubhus
      9 cmqsubhus:
     10 	set_spr_immed	0x1b1b,cccr
     11 
     12 	set_fr_iimmed	0x0000,0x0000,fr10
     13 	set_fr_iimmed	0xdead,0xbeef,fr11
     14 	set_fr_iimmed	0x0000,0x0000,fr12
     15 	set_fr_iimmed	0x0000,0x0000,fr13
     16 	cmqsubhus	fr10,fr12,fr14,cc0,1
     17 	test_fr_limmed	0x0000,0x0000,fr14
     18 	test_fr_limmed	0xdead,0xbeef,fr15
     19 	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
     20 	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
     21 	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
     22 	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
     23 
     24 	set_fr_iimmed	0x1234,0x5678,fr10
     25 	set_fr_iimmed	0x7ffe,0x7ffe,fr11
     26 	set_fr_iimmed	0x1111,0x1111,fr12
     27 	set_fr_iimmed	0x0002,0x0001,fr13
     28 	cmqsubhus	fr10,fr12,fr14,cc0,1
     29 	test_fr_limmed	0x0123,0x4567,fr14
     30 	test_fr_limmed	0x7ffc,0x7ffd,fr15
     31 	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
     32 	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
     33 	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
     34 	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
     35 
     36 	set_spr_immed	0,msr0
     37 	set_fr_iimmed	0x0001,0x0001,fr10
     38 	set_fr_iimmed	0x0001,0x0001,fr11
     39 	set_fr_iimmed	0x0001,0x0002,fr12
     40 	set_fr_iimmed	0x0002,0x0001,fr13
     41 	cmqsubhus	fr10,fr12,fr14,cc4,1
     42 	test_fr_limmed	0x0000,0x0000,fr14
     43 	test_fr_limmed	0x0000,0x0000,fr15
     44 	test_spr_bits	0x3c,2,0x6,msr0		; msr0.sie is set
     45 	test_spr_bits	2,1,1,msr0		; msr0.ovf set
     46 	test_spr_bits	1,0,1,msr0		; msr0.aovf set
     47 	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt set
     48 
     49 	set_spr_immed	0,msr0
     50 	set_fr_iimmed	0x0001,0x0001,fr10
     51 	set_fr_iimmed	0x0002,0x0002,fr11
     52 	set_fr_iimmed	0x0000,0x0001,fr12
     53 	set_fr_iimmed	0x0002,0x0003,fr13
     54 	cmqsubhus.p	fr10,fr10,fr14,cc4,1
     55 	cmqsubhus	fr10,fr12,fr16,cc4,1
     56 	test_fr_limmed	0x0000,0x0000,fr14
     57 	test_fr_limmed	0x0000,0x0000,fr15
     58 	test_fr_limmed	0x0001,0x0000,fr16
     59 	test_fr_limmed	0x0000,0x0000,fr17
     60 	test_spr_bits	0x3c,2,0x1,msr0		; msr0.sie is set
     61 	test_spr_bits	2,1,1,msr0		; msr0.ovf set
     62 	test_spr_bits	1,0,1,msr0		; msr0.aovf set
     63 	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt set
     64 
     65 	set_spr_immed	0,msr0
     66 	set_fr_iimmed	0x0000,0x0000,fr10
     67 	set_fr_iimmed	0xdead,0xbeef,fr11
     68 	set_fr_iimmed	0x0000,0x0000,fr12
     69 	set_fr_iimmed	0x0000,0x0000,fr13
     70 	cmqsubhus	fr10,fr12,fr14,cc1,0
     71 	test_fr_limmed	0x0000,0x0000,fr14
     72 	test_fr_limmed	0xdead,0xbeef,fr15
     73 	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
     74 	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
     75 	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
     76 	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
     77 
     78 	set_fr_iimmed	0x1234,0x5678,fr10
     79 	set_fr_iimmed	0x7ffe,0x7ffe,fr11
     80 	set_fr_iimmed	0x1111,0x1111,fr12
     81 	set_fr_iimmed	0x0002,0x0001,fr13
     82 	cmqsubhus	fr10,fr12,fr14,cc1,0
     83 	test_fr_limmed	0x0123,0x4567,fr14
     84 	test_fr_limmed	0x7ffc,0x7ffd,fr15
     85 	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
     86 	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
     87 	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
     88 	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
     89 
     90 	set_spr_immed	0,msr0
     91 	set_fr_iimmed	0x0001,0x0001,fr10
     92 	set_fr_iimmed	0x0001,0x0001,fr11
     93 	set_fr_iimmed	0x0001,0x0002,fr12
     94 	set_fr_iimmed	0x0002,0x0001,fr13
     95 	cmqsubhus	fr10,fr12,fr14,cc5,0
     96 	test_fr_limmed	0x0000,0x0000,fr14
     97 	test_fr_limmed	0x0000,0x0000,fr15
     98 	test_spr_bits	0x3c,2,0x6,msr0		; msr0.sie is set
     99 	test_spr_bits	2,1,1,msr0		; msr0.ovf set
    100 	test_spr_bits	1,0,1,msr0		; msr0.aovf set
    101 	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt set
    102 
    103 	set_spr_immed	0,msr0
    104 	set_fr_iimmed	0x0001,0x0001,fr10
    105 	set_fr_iimmed	0x0002,0x0002,fr11
    106 	set_fr_iimmed	0x0000,0x0001,fr12
    107 	set_fr_iimmed	0x0002,0x0003,fr13
    108 	cmqsubhus.p	fr10,fr10,fr14,cc5,0
    109 	cmqsubhus	fr10,fr12,fr16,cc5,0
    110 	test_fr_limmed	0x0000,0x0000,fr14
    111 	test_fr_limmed	0x0000,0x0000,fr15
    112 	test_fr_limmed	0x0001,0x0000,fr16
    113 	test_fr_limmed	0x0000,0x0000,fr17
    114 	test_spr_bits	0x3c,2,0x1,msr0		; msr0.sie is set
    115 	test_spr_bits	2,1,1,msr0		; msr0.ovf set
    116 	test_spr_bits	1,0,1,msr0		; msr0.aovf set
    117 	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt set
    118 
    119 	set_fr_iimmed	0x1111,0x1111,fr14
    120 	set_fr_iimmed	0x2222,0x2222,fr15
    121 	set_spr_immed	0,msr0
    122 	set_fr_iimmed	0x0000,0x0000,fr10
    123 	set_fr_iimmed	0xdead,0xbeef,fr11
    124 	set_fr_iimmed	0x0000,0x0000,fr12
    125 	set_fr_iimmed	0x0000,0x0000,fr13
    126 	cmqsubhus	fr10,fr12,fr14,cc0,0
    127 	test_fr_limmed	0x1111,0x1111,fr14
    128 	test_fr_limmed	0x2222,0x2222,fr15
    129 	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
    130 	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
    131 	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
    132 	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
    133 
    134 	set_fr_iimmed	0x1234,0x5678,fr10
    135 	set_fr_iimmed	0x7ffe,0x7ffe,fr11
    136 	set_fr_iimmed	0x1111,0x1111,fr12
    137 	set_fr_iimmed	0x0002,0x0001,fr13
    138 	cmqsubhus	fr10,fr12,fr14,cc0,0
    139 	test_fr_limmed	0x1111,0x1111,fr14
    140 	test_fr_limmed	0x2222,0x2222,fr15
    141 	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
    142 	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
    143 	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
    144 	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
    145 
    146 	set_spr_immed	0,msr0
    147 	set_fr_iimmed	0x0001,0x0001,fr10
    148 	set_fr_iimmed	0x0001,0x0001,fr11
    149 	set_fr_iimmed	0x0001,0x0002,fr12
    150 	set_fr_iimmed	0x0002,0x0001,fr13
    151 	cmqsubhus	fr10,fr12,fr14,cc4,0
    152 	test_fr_limmed	0x1111,0x1111,fr14
    153 	test_fr_limmed	0x2222,0x2222,fr15
    154 	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
    155 	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
    156 	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
    157 	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
    158 
    159 	set_fr_iimmed	0x3333,0x3333,fr16
    160 	set_fr_iimmed	0x4444,0x4444,fr17
    161 	set_spr_immed	0,msr0
    162 	set_fr_iimmed	0x0001,0x0001,fr10
    163 	set_fr_iimmed	0x0002,0x0002,fr11
    164 	set_fr_iimmed	0x0000,0x0001,fr12
    165 	set_fr_iimmed	0x0002,0x0003,fr13
    166 	cmqsubhus.p	fr10,fr10,fr14,cc4,0
    167 	cmqsubhus	fr10,fr12,fr16,cc4,0
    168 	test_fr_limmed	0x1111,0x1111,fr14
    169 	test_fr_limmed	0x2222,0x2222,fr15
    170 	test_fr_limmed	0x3333,0x3333,fr16
    171 	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
    172 	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
    173 	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
    174 	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
    175 	test_fr_limmed	0x4444,0x4444,fr17
    176 
    177 	set_fr_iimmed	0x1111,0x1111,fr14
    178 	set_fr_iimmed	0x2222,0x2222,fr15
    179 	set_spr_immed	0,msr0
    180 	set_fr_iimmed	0x0000,0x0000,fr10
    181 	set_fr_iimmed	0xdead,0xbeef,fr11
    182 	set_fr_iimmed	0x0000,0x0000,fr12
    183 	set_fr_iimmed	0x0000,0x0000,fr13
    184 	cmqsubhus	fr10,fr12,fr14,cc1,1
    185 	test_fr_limmed	0x1111,0x1111,fr14
    186 	test_fr_limmed	0x2222,0x2222,fr15
    187 	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
    188 	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
    189 	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
    190 	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
    191 
    192 	set_fr_iimmed	0x1234,0x5678,fr10
    193 	set_fr_iimmed	0x7ffe,0x7ffe,fr11
    194 	set_fr_iimmed	0x1111,0x1111,fr12
    195 	set_fr_iimmed	0x0002,0x0001,fr13
    196 	cmqsubhus	fr10,fr12,fr14,cc1,1
    197 	test_fr_limmed	0x1111,0x1111,fr14
    198 	test_fr_limmed	0x2222,0x2222,fr15
    199 	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
    200 	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
    201 	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
    202 	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
    203 
    204 	set_spr_immed	0,msr0
    205 	set_fr_iimmed	0x0001,0x0001,fr10
    206 	set_fr_iimmed	0x0001,0x0001,fr11
    207 	set_fr_iimmed	0x0001,0x0002,fr12
    208 	set_fr_iimmed	0x0002,0x0001,fr13
    209 	cmqsubhus	fr10,fr12,fr14,cc5,1
    210 	test_fr_limmed	0x1111,0x1111,fr14
    211 	test_fr_limmed	0x2222,0x2222,fr15
    212 	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
    213 	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
    214 	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
    215 	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
    216 
    217 	set_fr_iimmed	0x3333,0x3333,fr16
    218 	set_fr_iimmed	0x4444,0x4444,fr17
    219 	set_spr_immed	0,msr0
    220 	set_fr_iimmed	0x0001,0x0001,fr10
    221 	set_fr_iimmed	0x0002,0x0002,fr11
    222 	set_fr_iimmed	0x0000,0x0001,fr12
    223 	set_fr_iimmed	0x0002,0x0003,fr13
    224 	cmqsubhus.p	fr10,fr10,fr14,cc5,1
    225 	cmqsubhus	fr10,fr12,fr16,cc5,1
    226 	test_fr_limmed	0x1111,0x1111,fr14
    227 	test_fr_limmed	0x2222,0x2222,fr15
    228 	test_fr_limmed	0x3333,0x3333,fr16
    229 	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
    230 	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
    231 	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
    232 	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
    233 	test_fr_limmed	0x4444,0x4444,fr17
    234 
    235 	set_fr_iimmed	0x1111,0x1111,fr14
    236 	set_fr_iimmed	0x2222,0x2222,fr15
    237 	set_spr_immed	0,msr0
    238 	set_fr_iimmed	0x0000,0x0000,fr10
    239 	set_fr_iimmed	0xdead,0xbeef,fr11
    240 	set_fr_iimmed	0x0000,0x0000,fr12
    241 	set_fr_iimmed	0x0000,0x0000,fr13
    242 	cmqsubhus	fr10,fr12,fr14,cc2,1
    243 	test_fr_limmed	0x1111,0x1111,fr14
    244 	test_fr_limmed	0x2222,0x2222,fr15
    245 	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
    246 	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
    247 	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
    248 	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
    249 
    250 	set_fr_iimmed	0x1234,0x5678,fr10
    251 	set_fr_iimmed	0x7ffe,0x7ffe,fr11
    252 	set_fr_iimmed	0x1111,0x1111,fr12
    253 	set_fr_iimmed	0x0002,0x0001,fr13
    254 	cmqsubhus	fr10,fr12,fr14,cc2,0
    255 	test_fr_limmed	0x1111,0x1111,fr14
    256 	test_fr_limmed	0x2222,0x2222,fr15
    257 	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
    258 	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
    259 	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
    260 	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
    261 
    262 	set_spr_immed	0,msr0
    263 	set_fr_iimmed	0x0001,0x0001,fr10
    264 	set_fr_iimmed	0x0001,0x0001,fr11
    265 	set_fr_iimmed	0x0001,0x0002,fr12
    266 	set_fr_iimmed	0x0002,0x0001,fr13
    267 	cmqsubhus	fr10,fr12,fr14,cc6,1
    268 	test_fr_limmed	0x1111,0x1111,fr14
    269 	test_fr_limmed	0x2222,0x2222,fr15
    270 	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
    271 	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
    272 	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
    273 	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
    274 
    275 	set_fr_iimmed	0x3333,0x3333,fr16
    276 	set_fr_iimmed	0x4444,0x4444,fr17
    277 	set_spr_immed	0,msr0
    278 	set_fr_iimmed	0x0001,0x0001,fr10
    279 	set_fr_iimmed	0x0002,0x0002,fr11
    280 	set_fr_iimmed	0x0000,0x0001,fr12
    281 	set_fr_iimmed	0x0002,0x0003,fr13
    282 	cmqsubhus.p	fr10,fr10,fr14,cc6,0
    283 	cmqsubhus	fr10,fr12,fr16,cc6,1
    284 	test_fr_limmed	0x1111,0x1111,fr14
    285 	test_fr_limmed	0x2222,0x2222,fr15
    286 	test_fr_limmed	0x3333,0x3333,fr16
    287 	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
    288 	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
    289 	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
    290 	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
    291 	test_fr_limmed	0x4444,0x4444,fr17
    292 ;
    293 	set_fr_iimmed	0x1111,0x1111,fr14
    294 	set_fr_iimmed	0x2222,0x2222,fr15
    295 	set_spr_immed	0,msr0
    296 	set_fr_iimmed	0x0000,0x0000,fr10
    297 	set_fr_iimmed	0xdead,0xbeef,fr11
    298 	set_fr_iimmed	0x0000,0x0000,fr12
    299 	set_fr_iimmed	0x0000,0x0000,fr13
    300 	cmqsubhus	fr10,fr12,fr14,cc3,1
    301 	test_fr_limmed	0x1111,0x1111,fr14
    302 	test_fr_limmed	0x2222,0x2222,fr15
    303 	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
    304 	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
    305 	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
    306 	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
    307 
    308 	set_fr_iimmed	0x1234,0x5678,fr10
    309 	set_fr_iimmed	0x7ffe,0x7ffe,fr11
    310 	set_fr_iimmed	0x1111,0x1111,fr12
    311 	set_fr_iimmed	0x0002,0x0001,fr13
    312 	cmqsubhus	fr10,fr12,fr14,cc3,0
    313 	test_fr_limmed	0x1111,0x1111,fr14
    314 	test_fr_limmed	0x2222,0x2222,fr15
    315 	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
    316 	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
    317 	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
    318 	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
    319 
    320 	set_spr_immed	0,msr0
    321 	set_fr_iimmed	0x0001,0x0001,fr10
    322 	set_fr_iimmed	0x0001,0x0001,fr11
    323 	set_fr_iimmed	0x0001,0x0002,fr12
    324 	set_fr_iimmed	0x0002,0x0001,fr13
    325 	cmqsubhus	fr10,fr12,fr14,cc7,1
    326 	test_fr_limmed	0x1111,0x1111,fr14
    327 	test_fr_limmed	0x2222,0x2222,fr15
    328 	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
    329 	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
    330 	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
    331 	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
    332 
    333 	set_fr_iimmed	0x3333,0x3333,fr16
    334 	set_fr_iimmed	0x4444,0x4444,fr17
    335 	set_spr_immed	0,msr0
    336 	set_fr_iimmed	0x0001,0x0001,fr10
    337 	set_fr_iimmed	0x0002,0x0002,fr11
    338 	set_fr_iimmed	0x0000,0x0001,fr12
    339 	set_fr_iimmed	0x0002,0x0003,fr13
    340 	cmqsubhus.p	fr10,fr10,fr14,cc7,0
    341 	cmqsubhus	fr10,fr12,fr16,cc7,1
    342 	test_fr_limmed	0x1111,0x1111,fr14
    343 	test_fr_limmed	0x2222,0x2222,fr15
    344 	test_fr_limmed	0x3333,0x3333,fr16
    345 	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
    346 	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
    347 	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
    348 	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
    349 	test_fr_limmed	0x4444,0x4444,fr17
    350 
    351 	pass
    352