Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(56)

Issue 11413014: Fix register confusion in non-VFP3 BinaryOpStubs on ARM (Closed)

Created:
8 years, 1 month ago by Jakob Kummerow
Modified:
8 years, 1 month ago
Reviewers:
Yang
CC:
v8-dev
Visibility:
Public.

Description

Fix register confusion in non-VFP3 BinaryOpStubs on ARM Committed: https://code.google.com/p/v8/source/detail?r=12980

Patch Set 1 #

Total comments: 4
Unified diffs Side-by-side diffs Delta from patch set Stats (+79 lines, -52 lines) Patch
M src/arm/code-stubs-arm.cc View 8 chunks +72 lines, -45 lines 4 comments Download
M src/arm/stub-cache-arm.cc View 2 chunks +7 lines, -7 lines 0 comments Download

Messages

Total messages: 2 (0 generated)
Jakob Kummerow
PTAL. Most of the changes are simple renamings to increase sanity levels; but there are ...
8 years, 1 month ago (2012-11-15 17:28:42 UTC) #1
Yang
8 years, 1 month ago (2012-11-16 08:50:08 UTC) #2
On 2012/11/15 17:28:42, Jakob wrote:
> PTAL.
> 
> Most of the changes are simple renamings to increase sanity levels; but there
> are also no less than four real bug fixes :-)
> 
> https://codereview.chromium.org/11413014/diff/1/src/arm/code-stubs-arm.cc
> File src/arm/code-stubs-arm.cc (right):
> 
>
https://codereview.chromium.org/11413014/diff/1/src/arm/code-stubs-arm.cc#new...
> src/arm/code-stubs-arm.cc:870: __ bic(scratch1, dst_exponent,
> Operand(HeapNumber::kSignMask));
> Bug fix 1: This code cleared the mantissa's sign bit!
> 
>
https://codereview.chromium.org/11413014/diff/1/src/arm/code-stubs-arm.cc#new...
> src/arm/code-stubs-arm.cc:878: DoubleIs32BitInteger(masm, dst_exponent,
> dst_mantissa, scratch1, scratch2,
> Bug fix 2: This call passed in the exponent/mantissa registers in the wrong
> order.
> 
>
https://codereview.chromium.org/11413014/diff/1/src/arm/code-stubs-arm.cc#new...
> src/arm/code-stubs-arm.cc:883: __ Pop(dst_exponent, dst_mantissa);
> Bug fix 3: Restore the "object" register before reloading the double value
from
> it.
> 
>
https://codereview.chromium.org/11413014/diff/1/src/arm/code-stubs-arm.cc#new...
> src/arm/code-stubs-arm.cc:891: __ Pop(dst_exponent, dst_mantissa);
> Bug fix 4: Restore original inputs before calling the runtime.

LGTM. Nice catch!

Powered by Google App Engine
This is Rietveld 408576698