From 81b2ea3c98f8c82ec2f5e7a59735da8c967c9531 Mon Sep 17 00:00:00 2001 From: Ry Date: Tue, 7 Feb 2023 22:13:28 -0800 Subject: [PATCH] rv2fox: Understand `beq` and `beqz` --- gcc/rv2fox | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gcc/rv2fox b/gcc/rv2fox index 0ce9872..456c3fe 100755 --- a/gcc/rv2fox +++ b/gcc/rv2fox @@ -158,7 +158,7 @@ class Converter: self.xregidx = { r: i for i, r in enumerate(self.xregs) } self.tmp = 'rfp' # temporary register - self.branches = ['bge', 'bgeu', 'bgt', 'bgtu', 'blt', 'bltu', 'ble', 'bleu', 'bne', 'bneu'] + self.branches = ['bge', 'bgeu', 'bgt', 'bgtu', 'blt', 'bltu', 'ble', 'bleu', 'bne', 'bneu', 'beq'] self.label_gen = iter(range(1000000)) @@ -242,6 +242,7 @@ class Converter: def convert_condition(op): if op in ['blt', 'bltu']: return 'iflt', False if op in ['bne', 'bnez']: return 'ifnz', False + if op in ['beq', 'beqz']: return 'ifz', False if op in ['ble', 'bleu']: return 'ifgt', True if op in ['bge', 'bgeu']: return 'ifgteq', False if op in ['bgt', 'bgtu']: return 'ifgt', False