- if (! op2)
- op2 = arch_register_get_name(get_in_reg(irn, 1));
-
- snprintf(cmd_buf, SNPRINTF_BUF_LEN, "test %%%s,%s%s ", op1, IA32_IS_IMMOP ? " " : " %", op2);
- lc_esnprintf(ia32_get_arg_env(), cmnt_buf, SNPRINTF_BUF_LEN, "/* %+F */", irn);
-
- IA32_DO_EMIT(irn);
- finish_CondJmp(F, irn, get_ia32_res_mode(irn));
-
-#undef IA32_IS_IMMOP
-}
-
-/**
- * Emits code for conditional test and jump with two variables.
- */
-static void emit_ia32_TestJmp(const ir_node *irn, ia32_emit_env_t *env) {
- TestJmp_emitter(irn, env);
-}
-
-static void emit_ia32_CJmp(const ir_node *irn, ia32_emit_env_t *env) {
- FILE *F = env->out;
- char cmd_buf[SNPRINTF_BUF_LEN];
- char cmnt_buf[SNPRINTF_BUF_LEN];
-
- snprintf(cmd_buf, SNPRINTF_BUF_LEN, " ");
- lc_esnprintf(ia32_get_arg_env(), cmnt_buf, SNPRINTF_BUF_LEN, "/* %+F omitted redundant test */", irn);
- IA32_DO_EMIT(irn);
- finish_CondJmp(F, irn, get_ia32_res_mode(irn));
-}
-
-static void emit_ia32_CJmpAM(const ir_node *irn, ia32_emit_env_t *env) {
- FILE *F = env->out;
- char cmd_buf[SNPRINTF_BUF_LEN];
- char cmnt_buf[SNPRINTF_BUF_LEN];
-
- snprintf(cmd_buf, SNPRINTF_BUF_LEN, " ");
- lc_esnprintf(ia32_get_arg_env(), cmnt_buf, SNPRINTF_BUF_LEN, "/* %+F omitted redundant test/cmp */", irn);
- IA32_DO_EMIT(irn);
- finish_CondJmp(F, irn, get_ia32_res_mode(irn));
-}
-
-/**
- * Emits code for conditional SSE floating point jump with two variables.
- */
-static void emit_ia32_xCondJmp(ir_node *irn, ia32_emit_env_t *env) {
- FILE *F = env->out;
- char cmd_buf[SNPRINTF_BUF_LEN];
- char cmnt_buf[SNPRINTF_BUF_LEN];
- const lc_arg_env_t *arg_env = ia32_get_arg_env();
-
- lc_esnprintf(arg_env, cmd_buf, SNPRINTF_BUF_LEN, "ucomis%M %s", irn, ia32_emit_binop(irn, env));
- lc_esnprintf(arg_env, cmnt_buf, SNPRINTF_BUF_LEN, "/* %+F */", irn);
- IA32_DO_EMIT(irn);
-
- finish_CondJmp(F, irn, mode_F);
-}
-
-/**
- * Emits code for conditional x87 floating point jump with two variables.
- */
-static void emit_ia32_x87CondJmp(ir_node *irn, ia32_emit_env_t *env) {
- FILE *F = env->out;
- char cmd_buf[SNPRINTF_BUF_LEN];
- char cmnt_buf[SNPRINTF_BUF_LEN];
- ia32_attr_t *attr = get_ia32_attr(irn);
- const char *reg = attr->x87[1]->name;
- const char *instr = "fcom";
- int reverse = 0;
-
- switch (get_ia32_irn_opcode(irn)) {
- case iro_ia32_fcomrJmp:
- reverse = 1;
- case iro_ia32_fcomJmp:
- default:
- instr = "fucom";
- break;
- case iro_ia32_fcomrpJmp:
- reverse = 1;
- case iro_ia32_fcompJmp:
- instr = "fucomp";
- break;
- case iro_ia32_fcomrppJmp:
- reverse = 1;
- case iro_ia32_fcomppJmp:
- instr = "fucompp";
- reg = "";
- break;