fixed SetST0 register settings
authorChristian Würdig <chriswue@ipd.info.uni-karlsruhe.de>
Mon, 25 Sep 2006 12:43:49 +0000 (12:43 +0000)
committerChristian Würdig <chriswue@ipd.info.uni-karlsruhe.de>
Mon, 25 Sep 2006 12:43:49 +0000 (12:43 +0000)
ir/be/ia32/bearch_ia32.c
ir/be/ia32/ia32_spec.pl

index f339f30..eb0750c 100644 (file)
@@ -1676,9 +1676,7 @@ static void ia32_get_call_abi(const void *self, ir_type *method_type, be_abi_cal
                assert(is_atomic_type(tp));
                mode = get_type_mode(tp);
 
-               reg = mode_is_float(mode) ?
-                       (USE_SSE2(isa) ? &ia32_st_regs[REG_ST0] : &ia32_vfp_regs[REG_VF0]) :
-                       &ia32_gp_regs[REG_EAX];
+               reg = mode_is_float(mode) ? &ia32_vfp_regs[REG_VF0] : &ia32_gp_regs[REG_EAX];
 
                be_abi_call_res_reg(abi, 0, reg);
        }
index e23fc0e..489e7f5 100644 (file)
@@ -979,7 +979,7 @@ else {
   "state"    => "exc_pinned",
   "comment"  => "load ST0 from stack",
   "cmp_attr" => "  return ia32_compare_immop_attr(attr_a, attr_b);\n",
-  "reg_req"  => { "in" => [ "gp", "none" ], "out" => [ "st0", "none" ] },
+  "reg_req"  => { "in" => [ "gp", "none" ], "out" => [ "vf0", "none" ] },
   "emit"     => '. fld %ia32_emit_am /* load ST0 from stack */',
   "outs"     => [ "res", "M" ],
   "latency"  => 2,