def do_outregs_nia(self, asmop, ins_name, info, outs,
carry_en, rc_en, ffirst_hit):
ffirst_hit, vli = ffirst_hit
- if not ffirst_hit or vli:
- # write out any regs for this instruction
- for name, output in outs.items():
- yield from self.check_write(info, name, output, carry_en)
+ # write out any regs for this instruction
+ for name, output in outs.items():
+ yield from self.check_write(info, name, output, carry_en)
# restore the CR value on non-VLI failfirst (from sv.cmp and others
# which write directly to CR in the pseudocode (gah, what a mess)
- if ffirst_hit and not vli:
- self.cr.value = self.cr_backup
+ #if ffirst_hit and not vli:
+ # self.cr.value = self.cr_backup
if ffirst_hit:
self.svp64_reset_loop()
expected_vl = 0
for i in range(4):
result = expected[i] - gprs[8]
+ expected[i] = result
if result <= 0:
break
# only write out if successful
- expected[i] = result
expected_vl += 1
for i, v in enumerate(res):
self.assertEqual(v, expected[i])
expected = deepcopy(vec)
for i in range(4):
result = expected[i] - gprs[8]
+ expected[i] = result
if result == 0:
break
- # only write out if successful
- expected[i] = result
for i, v in enumerate(res):
self.assertEqual(v, expected[i])
expected = deepcopy(vec)
for i in range(4):
result = expected[i] - gprs[8]
+ expected[i] = result
if result == 0:
break
- # only write out if successful
- expected[i] = result
for i, v in enumerate(res):
self.assertEqual(v, expected[i])
gprs = [0] * 64
vec = [1, 2, 3]
- crs_expected = [8, 0, 0] # LT EQ GT
+ crs_expected = [8, 2, 0] # LT EQ GT
res = []
# store GPRs
gprs = [0] * 64
vec = [1, 2, 3]
- crs_expected = [8, 2, 0] # LT EQ GT
+ crs_expected = [8, 2, 4] # LT EQ GT
res = []
# store GPRs