Revision: 10189
Author: [email protected]
Date: Wed Dec 7 01:44:31 2011
Log: Tweak to shorten generated code in Math.pow.
Review URL: http://codereview.chromium.org/8834007
http://code.google.com/p/v8/source/detail?r=10189
Modified:
/branches/bleeding_edge/src/ia32/code-stubs-ia32.cc
/branches/bleeding_edge/src/x64/code-stubs-x64.cc
=======================================
--- /branches/bleeding_edge/src/ia32/code-stubs-ia32.cc Wed Dec 7 00:43:41
2011
+++ /branches/bleeding_edge/src/ia32/code-stubs-ia32.cc Wed Dec 7 01:44:31
2011
@@ -3130,11 +3130,9 @@
__ movsd(double_scratch2, double_result); // Load double_exponent with
1.
// Get absolute value of exponent.
- Label no_neg, while_true, no_multiply;
- __ cmp(exponent, 0);
- __ j(greater_equal, &no_neg, Label::kNear);
- __ neg(exponent);
- __ bind(&no_neg);
+ Label while_true, no_multiply;
+ const uint32_t kClearSignBitMask = 0x7FFFFFFF;
+ __ and_(exponent, Immediate(kClearSignBitMask));
__ bind(&while_true);
__ shr(exponent, 1);
=======================================
--- /branches/bleeding_edge/src/x64/code-stubs-x64.cc Wed Dec 7 00:34:27
2011
+++ /branches/bleeding_edge/src/x64/code-stubs-x64.cc Wed Dec 7 01:44:31
2011
@@ -2181,11 +2181,9 @@
__ 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));
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev