Index: src/x64/macro-assembler-x64.h |
diff --git a/src/x64/macro-assembler-x64.h b/src/x64/macro-assembler-x64.h |
index 400bdce3dcfbd2a46b26beaece26e744dcea6bf8..b1f886a140517c2c71457828aac0c8030743d455 100644 |
--- a/src/x64/macro-assembler-x64.h |
+++ b/src/x64/macro-assembler-x64.h |
@@ -1369,21 +1369,22 @@ void MacroAssembler::SmiMul(Register dst, |
ASSERT(!src2.is(kScratchRegister)); |
if (dst.is(src1)) { |
- NearLabel failure, zero_correct_result; |
+ Label failure, zero_correct_result; |
movq(kScratchRegister, src1); // Create backup for later testing. |
SmiToInteger64(dst, src1); |
imul(dst, src2); |
- j(overflow, &failure); |
+ j(overflow, &failure, Label::kNear); |
// Check for negative zero result. If product is zero, and one |
// argument is negative, go to slow case. |
- NearLabel correct_result; |
+ Label correct_result; |
testq(dst, dst); |
- j(not_zero, &correct_result); |
+ j(not_zero, &correct_result, Label::kNear); |
movq(dst, kScratchRegister); |
xor_(dst, src2); |
- j(positive, &zero_correct_result); // Result was positive zero. |
+ // Result was positive zero. |
+ j(positive, &zero_correct_result, Label::kNear); |
bind(&failure); // Reused failure exit, restores src1. |
movq(src1, kScratchRegister); |
@@ -1399,9 +1400,9 @@ void MacroAssembler::SmiMul(Register dst, |
j(overflow, on_not_smi_result); |
// Check for negative zero result. If product is zero, and one |
// argument is negative, go to slow case. |
- NearLabel correct_result; |
+ Label correct_result; |
testq(dst, dst); |
- j(not_zero, &correct_result); |
+ j(not_zero, &correct_result, Label::kNear); |
// One of src1 and src2 is zero, the check whether the other is |
// negative. |
movq(kScratchRegister, src1); |
@@ -1516,7 +1517,6 @@ void MacroAssembler::SmiDiv(Register dst, |
ASSERT(!src1.is(rdx)); |
// Check for 0 divisor (result is +/-Infinity). |
- NearLabel positive_divisor; |
testq(src2, src2); |
j(zero, on_not_smi_result); |
@@ -1531,12 +1531,12 @@ void MacroAssembler::SmiDiv(Register dst, |
// We overshoot a little and go to slow case if we divide min-value |
// by any negative value, not just -1. |
- NearLabel safe_div; |
+ Label safe_div; |
testl(rax, Immediate(0x7fffffff)); |
- j(not_zero, &safe_div); |
+ j(not_zero, &safe_div, Label::kNear); |
testq(src2, src2); |
if (src1.is(rax)) { |
- j(positive, &safe_div); |
+ j(positive, &safe_div, Label::kNear); |
movq(src1, kScratchRegister); |
jmp(on_not_smi_result); |
} else { |
@@ -1552,8 +1552,8 @@ void MacroAssembler::SmiDiv(Register dst, |
// Check that the remainder is zero. |
testl(rdx, rdx); |
if (src1.is(rax)) { |
- NearLabel smi_result; |
- j(zero, &smi_result); |
+ Label smi_result; |
+ j(zero, &smi_result, Label::kNear); |
movq(src1, kScratchRegister); |
jmp(on_not_smi_result); |
bind(&smi_result); |
@@ -1590,11 +1590,11 @@ void MacroAssembler::SmiMod(Register dst, |
SmiToInteger32(src2, src2); |
// Test for the edge case of dividing Smi::kMinValue by -1 (will overflow). |
- NearLabel safe_div; |
+ Label safe_div; |
cmpl(rax, Immediate(Smi::kMinValue)); |
- j(not_equal, &safe_div); |
+ j(not_equal, &safe_div, Label::kNear); |
cmpl(src2, Immediate(-1)); |
- j(not_equal, &safe_div); |
+ j(not_equal, &safe_div, Label::kNear); |
// Retag inputs and go slow case. |
Integer32ToSmi(src2, src2); |
if (src1.is(rax)) { |
@@ -1613,9 +1613,9 @@ void MacroAssembler::SmiMod(Register dst, |
} |
// Check for a negative zero result. If the result is zero, and the |
// dividend is negative, go slow to return a floating point negative zero. |
- NearLabel smi_result; |
+ Label smi_result; |
testl(rdx, rdx); |
- j(not_zero, &smi_result); |
+ j(not_zero, &smi_result, Label::kNear); |
testq(src1, src1); |
j(negative, on_not_smi_result); |
bind(&smi_result); |
@@ -1652,7 +1652,6 @@ void MacroAssembler::SmiShiftLogicalRight(Register dst, |
ASSERT(!dst.is(rcx)); |
// dst and src1 can be the same, because the one case that bails out |
// is a shift by 0, which leaves dst, and therefore src1, unchanged. |
- NearLabel result_ok; |
if (src1.is(rcx) || src2.is(rcx)) { |
movq(kScratchRegister, rcx); |
} |
@@ -1665,8 +1664,8 @@ void MacroAssembler::SmiShiftLogicalRight(Register dst, |
shl(dst, Immediate(kSmiShift)); |
testq(dst, dst); |
if (src1.is(rcx) || src2.is(rcx)) { |
- NearLabel positive_result; |
- j(positive, &positive_result); |
+ Label positive_result; |
+ j(positive, &positive_result, Label::kNear); |
if (src1.is(rcx)) { |
movq(src1, kScratchRegister); |
} else { |
@@ -1938,7 +1937,7 @@ void MacroAssembler::InvokePrologue(const ParameterCount& expected, |
InvokeFlag flag, |
const CallWrapper& call_wrapper) { |
bool definitely_matches = false; |
- NearLabel invoke; |
+ Label invoke; |
if (expected.is_immediate()) { |
ASSERT(actual.is_immediate()); |
if (expected.immediate() == actual.immediate()) { |
@@ -1962,14 +1961,14 @@ void MacroAssembler::InvokePrologue(const ParameterCount& expected, |
// case when we invoke function values without going through the |
// IC mechanism. |
cmpq(expected.reg(), Immediate(actual.immediate())); |
- j(equal, &invoke); |
+ j(equal, &invoke, Label::kNear); |
ASSERT(expected.reg().is(rbx)); |
Set(rax, actual.immediate()); |
} else if (!expected.reg().is(actual.reg())) { |
// Both expected and actual are in (different) registers. This |
// is the case when we invoke functions using call and apply. |
cmpq(expected.reg(), actual.reg()); |
- j(equal, &invoke); |
+ j(equal, &invoke, Label::kNear); |
ASSERT(actual.reg().is(rax)); |
ASSERT(expected.reg().is(rbx)); |
} |