Index: src/x64/code-stubs-x64.cc |
diff --git a/src/x64/code-stubs-x64.cc b/src/x64/code-stubs-x64.cc |
index a617d521f3378c01418bcbe38c4993399585bbaf..46a5487c7149c4279267252b5ecf2e74762fe8fc 100644 |
--- a/src/x64/code-stubs-x64.cc |
+++ b/src/x64/code-stubs-x64.cc |
@@ -2181,11 +2181,9 @@ void MathPowStub::Generate(MacroAssembler* masm) { |
__ movsd(double_scratch2, double_result); // Load double_exponent with 1. |
// Get absolute value of exponent. |
- Label no_neg, while_true, no_multiply; |
- __ cmpl(scratch, Immediate(0)); |
- __ j(positive, &no_neg, Label::kNear); |
- __ negl(scratch); |
- __ bind(&no_neg); |
+ Label while_true, no_multiply; |
+ const uint32_t kClearSignBitMask = 0x7FFFFFFF; |
+ __ andl(scratch, Immediate(kClearSignBitMask)); |
__ bind(&while_true); |
__ shrl(scratch, Immediate(1)); |