Skip to content

Commit bb42bfa

Browse files
committed
RISC-V: Remove insn aliases
Signed-Off-By: Patrick O'Neill <patrick@rivosinc.com>
1 parent 4277300 commit bb42bfa

3 files changed

Lines changed: 18 additions & 275 deletions

File tree

dev_tools/parsers/parse_binutils_riscv.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -339,6 +339,17 @@ def parse_binutils():
339339
split_lines, quotechar='"', quoting=csv.QUOTE_ALL, skipinitialspace=True
340340
)
341341
]
342+
tags = [
343+
row[-1]
344+
for row in csv.reader(
345+
split_lines, quotechar='"', quoting=csv.QUOTE_ALL, skipinitialspace=True
346+
)
347+
]
348+
349+
# Mark alias insns
350+
for i, tag in enumerate(tags):
351+
if "INSN_ALIAS" in tag:
352+
formats[i] = formats[i] + "_alias"
342353

343354
# Generate unmasked variants for all masked vector insns
344355
unmasked_insns: List[str] = []
@@ -394,10 +405,12 @@ def print_filter_stats(
394405

395406
unimp_insns = {insn.name for insn in missing_pattern_insns}
396407
unimp_format = {insn.format[0] for insn in missing_pattern_insns}
408+
unimp_alias_format = {insn.format[0] for insn in missing_pattern_insns if any(["_alias" in fmt for fmt in insn.format]) }
397409

398410
print()
399411
print("Formats missing pattern:", len(unimp_format))
400412
print("Insns missing pattern:", len(unimp_insns))
413+
print("Alias insns missing pattern:", len(unimp_alias_format))
401414

402415
unimp_format_counter = Counter(
403416
[insn.format for insn in missing_pattern_insns if insn.name not in imp_insns]
@@ -460,7 +473,7 @@ def main():
460473
if insn.ext in VECTOR_EXTS:
461474
insn_name = f"{insn.name}_{'V1' if ('Vm' in fmt) else 'V0'}".upper()
462475
else:
463-
insn_name = f"{insn.name}_{fmt}"
476+
insn_name = f"{insn.name}_V0".upper()
464477

465478
# TODO Memory operands
466479
insn_names.append(insn_name)
@@ -475,6 +488,10 @@ def main():
475488
}
476489
)
477490

491+
insn_names = sorted(insn_names)
492+
493+
assert len(insn_names) == len(set(insn_names)), "Duplicate insn name detected!"
494+
478495
with open("gen/instruction.yaml", "w", encoding='UTF-8') as stream:
479496
yaml.dump(instruction_list, stream, sort_keys=True)
480497

0 commit comments

Comments
 (0)