Revert "support assembling svp64 instructions with custom suffixes, like sv.maxu"
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Mon, 29 Aug 2022 09:45:44 +0000 (10:45 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Mon, 29 Aug 2022 09:45:44 +0000 (10:45 +0100)
This reverts commit 0e80cab3b809d432354ca05464e95dc53db11b64.

"sv.ffmadds." is inserted as a 32-bit operation instead of as a ".long"
"sv.ffmadds" on the other hand is correctly converted to ".long"

src/openpower/sv/trans/svp64.py

index 4ae283e92274841c45747073cd020cffef218bf1..1e15c7995cfaa4d889e606c38e83c94f6f4e3182 100644 (file)
@@ -1257,8 +1257,6 @@ class SVP64Asm:
         rc = '.' if rc_mode else ''
         yield ".long 0x%08x # %s" % (svp64_prefix.insn.value, insn)
         log(v30b_op, v30b_newfields)
-        if not v30b_op.endswith('.'):
-            v30b_op += rc
         # argh, sv.fmadds etc. need to be done manually
         if v30b_op == 'ffmadds':
             opcode = 59 << (32-6)    # bits 0..6 (MSB0)
@@ -1312,12 +1310,9 @@ class SVP64Asm:
                 insn |= 1 << (31-31)     # Rc=1     , bit 31
             log("fcoss", bin(insn))
             yield ".long 0x%x" % insn
-        elif v30b_op in CUSTOM_INSNS:
-            fields = tuple(map(to_number, v30b_newfields))
-            insn_num = CUSTOM_INSNS[v30b_op](fields)
-            fields_str = ', '.join(v30b_newfields)
-            yield f".long 0x{insn_num:X} # {v30b_op} {fields_str}"
         else:
+            if not v30b_op.endswith('.'):
+                v30b_op += rc
             yield "%s %s" % (v30b_op, ", ".join(v30b_newfields))
         log("new v3.0B fields", v30b_op, v30b_newfields)