assert(!mode_is_float(smaller_mode));
assert(smaller_bits == 8 || smaller_bits == 16);
- if (signed_mode &&
- smaller_bits == 16 &&
- &ia32_gp_regs[REG_EAX] == get_out_reg(node, 0) &&
- &ia32_gp_regs[REG_EAX] == arch_get_irn_register(get_irn_n(node, n_ia32_unary_op))) {
+ const arch_register_t *eax = &ia32_gp_regs[REG_EAX];
+ if (signed_mode &&
+ smaller_bits == 16 &&
+ eax == get_out_reg(node, 0) &&
+ eax == arch_get_irn_register(get_irn_n(node, n_ia32_unary_op))) {
/* argument and result are both in EAX and signedness is ok: use the
* smaller cwtl opcode */
ia32_emitf(node, "\tcwtl\n");