ARM: Implement the clz instruction.

This commit is contained in:
Gabe Black
2010-06-02 12:58:08 -05:00
parent 00320a53ab
commit 2c94bf7f30

View File

@@ -174,6 +174,16 @@ let {{
decoder_output += RevOpConstructor.subst(rbitIop)
exec_output += PredOpExecute.subst(rbitIop)
clzCode = '''
Dest = (Op1 == 0) ? 32 : (31 - findMsbSet(Op1));
'''
clzIop = InstObjParams("clz", "ClzInst", "RevOp",
{ "code": clzCode,
"predicate_test": predicateTest }, [])
header_output += RevOpDeclare.subst(clzIop)
decoder_output += RevOpConstructor.subst(clzIop)
exec_output += PredOpExecute.subst(clzIop)
ssatCode = '''
int32_t operand = shift_rm_imm(Op1, shiftAmt, shiftType, 0);
int32_t res;