From: Christoph Mallon Date: Sun, 11 Nov 2012 21:41:58 +0000 (+0100) Subject: Implement binary emitters for ia32 bsf and bsr. X-Git-Url: http://nsz.repo.hu/git/?a=commitdiff_plain;ds=inline;h=01e6da8d4848ef084e31aa79d807647b2857934e;p=libfirm Implement binary emitters for ia32 bsf and bsr. --- diff --git a/ir/be/ia32/ia32_emitter.c b/ir/be/ia32/ia32_emitter.c index 41ae1e7c2..01b619ec6 100644 --- a/ir/be/ia32/ia32_emitter.c +++ b/ir/be/ia32/ia32_emitter.c @@ -2496,6 +2496,16 @@ static void bemit_setcc(const ir_node *node) } } +static void bemit_bsf(ir_node const *const node) +{ + bemit_0f_unop_reg(node, 0xBC, n_ia32_Bsf_operand); +} + +static void bemit_bsr(ir_node const *const node) +{ + bemit_0f_unop_reg(node, 0xBD, n_ia32_Bsr_operand); +} + static void bemit_cmovcc(const ir_node *node) { const ia32_attr_t *attr = get_ia32_attr_const(node); @@ -3572,6 +3582,8 @@ static void ia32_register_binary_emitters(void) register_emitter(op_ia32_AndMem, bemit_andmem); register_emitter(op_ia32_AndMem8Bit, bemit_andmem8bit); register_emitter(op_ia32_Breakpoint, bemit_int3); + register_emitter(op_ia32_Bsf, bemit_bsf); + register_emitter(op_ia32_Bsr, bemit_bsr); register_emitter(op_ia32_CMovcc, bemit_cmovcc); register_emitter(op_ia32_Call, bemit_call); register_emitter(op_ia32_Cltd, bemit_cltd);