Revision: 12465 Author: [email protected] Date: Thu Sep 6 06:51:05 2012 Log: Merged r12226 into 3.11 branch.
x64 BinaryOpStub::GenerateSmiCode uses wrong registers in one code path. Out of courtesy for NodeJS Review URL: https://chromiumcodereview.appspot.com/10916141 http://code.google.com/p/v8/source/detail?r=12465 Modified: /branches/3.11/src/version.cc /branches/3.11/src/x64/code-stubs-x64.cc ======================================= --- /branches/3.11/src/version.cc Thu Sep 6 01:05:29 2012 +++ /branches/3.11/src/version.cc Thu Sep 6 06:51:05 2012 @@ -35,7 +35,7 @@ #define MAJOR_VERSION 3 #define MINOR_VERSION 11 #define BUILD_NUMBER 10 -#define PATCH_LEVEL 21 +#define PATCH_LEVEL 22 // Use 1 for candidates and 0 otherwise. // (Boolean macro values are not supported by all preprocessors.) #define IS_CANDIDATE_VERSION 0 ======================================= --- /branches/3.11/src/x64/code-stubs-x64.cc Tue May 29 06:20:14 2012 +++ /branches/3.11/src/x64/code-stubs-x64.cc Thu Sep 6 06:51:05 2012 @@ -999,8 +999,8 @@ SmiCodeGenerateHeapNumberResults allow_heapnumber_results) { // Arguments to BinaryOpStub are in rdx and rax. - Register left = rdx; - Register right = rax; + const Register left = rdx; + const Register right = rax; // We only generate heapnumber answers for overflowing calculations // for the four basic arithmetic operations and logical right shift by 0. @@ -1042,20 +1042,16 @@ case Token::DIV: // SmiDiv will not accept left in rdx or right in rax. - left = rcx; - right = rbx; __ movq(rbx, rax); __ movq(rcx, rdx); - __ SmiDiv(rax, left, right, &use_fp_on_smis); + __ SmiDiv(rax, rcx, rbx, &use_fp_on_smis); break; case Token::MOD: // SmiMod will not accept left in rdx or right in rax. - left = rcx; - right = rbx; __ movq(rbx, rax); __ movq(rcx, rdx); - __ SmiMod(rax, left, right, &use_fp_on_smis); + __ SmiMod(rax, rcx, rbx, &use_fp_on_smis); break; case Token::BIT_OR: { -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev
