Revision: 24151
Author: [email protected]
Date: Tue Sep 23 14:06:54 2014 UTC
Log: Fixed branch distances.
Forgot a few kNear occurences, only happens with --deopt-every-n-times.
Death to manual jump distance calculation! :-P
[email protected]
Review URL: https://codereview.chromium.org/598573002
https://code.google.com/p/v8/source/detail?r=24151
Modified:
/branches/bleeding_edge/src/ia32/lithium-codegen-ia32.cc
/branches/bleeding_edge/src/x64/lithium-codegen-x64.cc
=======================================
--- /branches/bleeding_edge/src/ia32/lithium-codegen-ia32.cc Tue Sep 23
11:38:12 2014 UTC
+++ /branches/bleeding_edge/src/ia32/lithium-codegen-ia32.cc Tue Sep 23
14:06:54 2014 UTC
@@ -4843,11 +4843,11 @@
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 @@
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);
=======================================
--- /branches/bleeding_edge/src/x64/lithium-codegen-x64.cc Tue Sep 23
11:38:12 2014 UTC
+++ /branches/bleeding_edge/src/x64/lithium-codegen-x64.cc Tue Sep 23
14:06:54 2014 UTC
@@ -5038,11 +5038,11 @@
} 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 @@
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);
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.