- lc_esnprintf(ia32_get_arg_env(), cmd_buf, SNPRINTF_BUF_LEN, "xchg %1S, %2S", irn, irn);
- }
- else if (cls1 == &ia32_reg_classes[CLASS_ia32_xmm]) {
- lc_esnprintf(ia32_get_arg_env(), cmd_buf, SNPRINTF_BUF_LEN,
- "pxor %1S, %2S\n\tpxor %2S, %1S\n\tpxor %1S, %2S", irn, irn, irn, irn, irn, irn);
- }
- else if (cls1 == &ia32_reg_classes[CLASS_ia32_vfp]) {
+ be_emit_cstring(env, "\txchg ");
+ ia32_emit_source_register(env, node, 1);
+ be_emit_cstring(env, ", ");
+ ia32_emit_source_register(env, node, 0);
+ be_emit_finish_line_gas(env, node);
+ } else if (cls1 == &ia32_reg_classes[CLASS_ia32_xmm]) {
+ be_emit_cstring(env, "\txorpd ");
+ ia32_emit_source_register(env, node, 1);
+ be_emit_cstring(env, ", ");
+ ia32_emit_source_register(env, node, 0);
+ be_emit_finish_line_gas(env, NULL);
+
+ be_emit_cstring(env, "\txorpd ");
+ ia32_emit_source_register(env, node, 0);
+ be_emit_cstring(env, ", ");
+ ia32_emit_source_register(env, node, 1);
+ be_emit_finish_line_gas(env, NULL);
+
+ be_emit_cstring(env, "\txorpd ");
+ ia32_emit_source_register(env, node, 1);
+ be_emit_cstring(env, ", ");
+ ia32_emit_source_register(env, node, 0);
+ be_emit_finish_line_gas(env, node);
+ } else if (cls1 == &ia32_reg_classes[CLASS_ia32_vfp]) {