Fixed branch distances.
authorsvenpanne@chromium.org <svenpanne@chromium.org>
Tue, 23 Sep 2014 14:06:54 +0000 (14:06 +0000)
committersvenpanne@chromium.org <svenpanne@chromium.org>
Tue, 23 Sep 2014 14:06:54 +0000 (14:06 +0000)
Forgot a few kNear occurences, only happens with --deopt-every-n-times.
Death to manual jump distance calculation! :-P

TBR=jarin@chromium.org

Review URL: https://codereview.chromium.org/598573002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24151 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

src/ia32/lithium-codegen-ia32.cc
src/x64/lithium-codegen-x64.cc

index 7453cac..1d7c8c1 100644 (file)
@@ -4843,11 +4843,11 @@ void LCodeGen::DoDoubleToI(LDoubleToI* instr) {
     Label lost_precision, is_nan, minus_zero, done;
     XMMRegister input_reg = ToDoubleRegister(input);
     XMMRegister xmm_scratch = double_scratch0();
+    Label::Distance dist = DeoptEveryNTimes() ? Label::kFar : Label::kNear;
     __ DoubleToI(result_reg, input_reg, xmm_scratch,
                  instr->hydrogen()->GetMinusZeroMode(), &lost_precision,
-                 &is_nan, &minus_zero,
-                 DeoptEveryNTimes() ? Label::kFar : Label::kNear);
-    __ jmp(&done, Label::kNear);
+                 &is_nan, &minus_zero, dist);
+    __ jmp(&done, dist);
     __ bind(&lost_precision);
     DeoptimizeIf(no_condition, instr, "lost precision");
     __ bind(&is_nan);
@@ -4869,10 +4869,11 @@ void LCodeGen::DoDoubleToSmi(LDoubleToSmi* instr) {
   Label lost_precision, is_nan, minus_zero, done;
   XMMRegister input_reg = ToDoubleRegister(input);
   XMMRegister xmm_scratch = double_scratch0();
+  Label::Distance dist = DeoptEveryNTimes() ? Label::kFar : Label::kNear;
   __ DoubleToI(result_reg, input_reg, xmm_scratch,
                instr->hydrogen()->GetMinusZeroMode(), &lost_precision, &is_nan,
-               &minus_zero, DeoptEveryNTimes() ? Label::kFar : Label::kNear);
-  __ jmp(&done, Label::kNear);
+               &minus_zero, dist);
+  __ jmp(&done, dist);
   __ bind(&lost_precision);
   DeoptimizeIf(no_condition, instr, "lost precision");
   __ bind(&is_nan);
index 9514657..1981d55 100644 (file)
@@ -5038,11 +5038,11 @@ void LCodeGen::DoDoubleToI(LDoubleToI* instr) {
   } else {
     Label lost_precision, is_nan, minus_zero, done;
     XMMRegister xmm_scratch = double_scratch0();
+    Label::Distance dist = DeoptEveryNTimes() ? Label::kFar : Label::kNear;
     __ DoubleToI(result_reg, input_reg, xmm_scratch,
                  instr->hydrogen()->GetMinusZeroMode(), &lost_precision,
-                 &is_nan, &minus_zero,
-                 DeoptEveryNTimes() ? Label::kFar : Label::kNear);
-    __ jmp(&done, Label::kNear);
+                 &is_nan, &minus_zero, dist);
+    __ jmp(&done, dist);
     __ bind(&lost_precision);
     DeoptimizeIf(no_condition, instr, "lost precision");
     __ bind(&is_nan);
@@ -5065,10 +5065,11 @@ void LCodeGen::DoDoubleToSmi(LDoubleToSmi* instr) {
 
   Label lost_precision, is_nan, minus_zero, done;
   XMMRegister xmm_scratch = double_scratch0();
+  Label::Distance dist = DeoptEveryNTimes() ? Label::kFar : Label::kNear;
   __ DoubleToI(result_reg, input_reg, xmm_scratch,
                instr->hydrogen()->GetMinusZeroMode(), &lost_precision, &is_nan,
-               &minus_zero, DeoptEveryNTimes() ? Label::kFar : Label::kNear);
-  __ jmp(&done, Label::kNear);
+               &minus_zero, dist);
+  __ jmp(&done, dist);
   __ bind(&lost_precision);
   DeoptimizeIf(no_condition, instr, "lost precision");
   __ bind(&is_nan);