elif 'mfcr' in insn_name or 'mfocrf' in insn_name:
res['0'] = 'd:RT' # RT: Rdest1_EXTRA3
res['1'] = 's:CR' # CR: Rsrc1_EXTRA3
+ elif regs == ['', '', '', 'RT', 'BI', '']:
+ res['0'] = 'd:RT' # RT: Rdest1_EXTRA3
+ res['1'] = 's:BI' # BI: Rsrc1_EXTRA3
elif insn_name == 'setb':
res['0'] = 'd:RT' # RT: Rdest1_EXTRA3
res['1'] = 's:BFA' # BFA: Rsrc1_EXTRA3
elif regs == ['', 'RB', '', 'FRT', '', 'CR1']:
res['0'] = 'd:FRT;d:CR1' # FRT,CR1: Rdest1_EXTRA3
res['1'] = 's:RB' # RB: Rsrc1_EXTRA3
+ elif regs == ['', 'RB', '', 'FRT', '', '']:
+ res['0'] = 'd:FRT' # FRT: Rdest1_EXTRA3
+ res['1'] = 's:RB' # RB: Rsrc1_EXTRA3
elif regs == ['', 'FRB', '', 'RT', '', 'CR0']:
res['0'] = 'd:RT;d:CR0' # RT,CR0: Rdest1_EXTRA3
res['1'] = 's:FRB' # FRB: Rsrc1_EXTRA3
res['0'] = 'd:RT' # RT: Rdest1_EXTRA3
res['1'] = 's:RA' # RS: Rsrc1_EXTRA3
else:
- res['0'] = 'TODO'
- print("regs TODO", insn_name, regs)
+ raise NotImplementedError(insn_name)
elif value == 'RM-1P-2S1D':
res['Etype'] = 'EXTRA3' # RM EXTRA3 type
res['0'] = 'd:FRT;d:CR1' # FRT,CR1: Rdest1_EXTRA3
res['1'] = 's:FRA' # FRA: Rsrc1_EXTRA3
res['2'] = 's:RB' # RB: Rsrc1_EXTRA3
+ elif regs == ['RS', 'RB', '', 'RA', '', '']:
+ res['0'] = 'd:RA' # RA: Rdest1_EXTRA3
+ res['1'] = 's:RS' # RS: Rsrc1_EXTRA3
+ res['2'] = 's:RB' # RB: Rsrc1_EXTRA3
elif name == '2R-1W' or insn_name == 'cmpb': # cmpb
if insn_name in ['bpermd', 'cmpb']:
res['0'] = 'd:RA' # RA: Rdest1_EXTRA3
res['1'] = 's:RA' # RA: Rsrc1_EXTRA2
res['2'] = 's:RB' # RT: Rsrc2_EXTRA2
else:
- res['0'] = 'TODO'
+ raise NotImplementedError(insn_name)
elif value == 'RM-2P-2S1D':
res['Etype'] = 'EXTRA2' # RM EXTRA2 type
res['1'] = 's:RS' # RS: Rsrc1_EXTRA2
res['2'] = 's:CR' # CR: Rsrc2_EXTRA2
else:
- res['0'] = 'TODO'
+ raise NotImplementedError(insn_name)
elif value == 'RM-1P-3S1D':
res['Etype'] = 'EXTRA2' # RM EXTRA2 type