+ be_emit_char(env, '%');
+ be_emit_string(env, in_name);
+ be_emit_cstring(env, ", %");
+ be_emit_string(env, arch_register_get_name(out));
+ }
+ break;
+ case ia32_AddrModeS:
+ ia32_emit_am(env, node);
+ be_emit_cstring(env, ", ");
+ if (is_ia32_ImmConst(node) || is_ia32_ImmSymConst(node)) {
+ assert(!produces_result(node) && "Source AM with Const must not produce result");
+ ia32_emit_immediate(env, node);
+ } else if (produces_result(node)) {
+ ia32_emit_dest_register(env, node, 0);
+ } else {
+ ia32_emit_source_register(env, node, 2);
+ }
+ break;
+ case ia32_AddrModeD:
+ right_pos = get_irn_arity(node) == 5 ? 3 : 2;
+ right_op = get_irn_n(node, right_pos);
+ if(is_ia32_Immediate(right_op)) {
+ emit_ia32_Immediate(env, right_op);
+ be_emit_cstring(env, ", ");
+ ia32_emit_am(env, node);
+ break;
+ } else if (is_ia32_ImmConst(node) || is_ia32_ImmSymConst(node)) {
+ ia32_emit_immediate(env, node);
+ be_emit_cstring(env, ", ");
+ ia32_emit_am(env, node);
+ } else {
+ const arch_register_t *in1 = get_in_reg(env, node, right_pos);
+ ir_mode *mode = get_ia32_ls_mode(node);
+ const char *in_name;