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

Issue 131823004: DoubleToIStub can't use ip on armv6, because the ubfx impl will clobber it (Closed)

Created:
6 years, 11 months ago by Mostyn Bramley-Moore
Modified:
6 years, 11 months ago
CC:
v8-dev, tkilarski
Base URL:
git://github.com/v8/v8.git@master
Visibility:
Public.

Description

DoubleToIStub can't use ip on armv6, because the ubfx impl will clobber it This previous change broke DoubleToIStub on armv6: https://code.google.com/p/v8/source/detail?r=16322 The problem is that DoubleToIStub::Generate assumed that it could safely use the ip register, but on armv6 the ubfx implementation will clobber any previous value stored there. So instead, pick another register. Test case: for (var i=0; i<2; i++) { v = 4294967295; v &= -2; print(v) } This should print -2 twice, but on armv6 without this patch, it prints -2 followed by 2046. This problem causes sunspider's bitops-nsieve-bit, crypto-md5 and crypto-sha1 tests to generate incorrect results (but the results are not checked for validity in sunspider-1.0 as available in chromium, but are checked and reported as incorrect in sunspider-1.0.2). Thanks to Tomasz Kilarski for helping out with this. R=bmeurer@chromium.org, rmcilroy@chromium.org Committed: https://code.google.com/p/v8/source/detail?r=18688

Patch Set 1 #

Patch Set 2 : Push/Pop in two steps #

Total comments: 2

Patch Set 3 : revert obsolete Push/Pop workaround #

Total comments: 2

Patch Set 4 : reorder registers in Push/Pop #

Patch Set 5 : fix test failures #

Unified diffs Side-by-side diffs Delta from patch set Stats (+4 lines, -5 lines) Patch
M src/arm/code-stubs-arm.cc View 1 2 3 4 2 chunks +4 lines, -5 lines 0 comments Download

Messages

Total messages: 22 (0 generated)
Mostyn Bramley-Moore
@Benedikt, rmcilroy: PTAL
6 years, 11 months ago (2014-01-13 14:36:42 UTC) #1
Mostyn Bramley-Moore
Hmm, I'm getting a segfault in a the larger testcase now (bitops-nsieve-bits), I'm not sure ...
6 years, 11 months ago (2014-01-13 16:02:22 UTC) #2
Mostyn Bramley-Moore
Pushing and Popping in two steps doesn't segfault. I'm not sure why this works- are ...
6 years, 11 months ago (2014-01-13 23:23:29 UTC) #3
Benedikt Meurer
Hm, I'm not sure. Rodolph can you shed some light on this?
6 years, 11 months ago (2014-01-14 10:01:58 UTC) #4
Rodolph Perfetta
On 2014/01/14 10:01:58, Benedikt Meurer wrote: > Hm, I'm not sure. Rodolph can you shed ...
6 years, 11 months ago (2014-01-14 11:46:19 UTC) #5
Rodolph Perfetta
On 2014/01/14 11:46:19, Rodolph Perfetta wrote: > On 2014/01/14 10:01:58, Benedikt Meurer wrote: > > ...
6 years, 11 months ago (2014-01-14 11:47:27 UTC) #6
Benedikt Meurer
On 2014/01/14 11:47:27, Rodolph Perfetta wrote: > On 2014/01/14 11:46:19, Rodolph Perfetta wrote: > > ...
6 years, 11 months ago (2014-01-14 12:47:48 UTC) #7
rmcilroy
https://codereview.chromium.org/131823004/diff/50001/src/arm/code-stubs-arm.cc File src/arm/code-stubs-arm.cc (right): https://codereview.chromium.org/131823004/diff/50001/src/arm/code-stubs-arm.cc#newcode619 src/arm/code-stubs-arm.cc:619: __ Push(scratch_high, scratch_low); Since Benedikt has fixed the Push/Pop ...
6 years, 11 months ago (2014-01-14 14:23:30 UTC) #8
Mostyn Bramley-Moore
https://codereview.chromium.org/131823004/diff/50001/src/arm/code-stubs-arm.cc File src/arm/code-stubs-arm.cc (right): https://codereview.chromium.org/131823004/diff/50001/src/arm/code-stubs-arm.cc#newcode619 src/arm/code-stubs-arm.cc:619: __ Push(scratch_high, scratch_low); On 2014/01/14 14:23:30, rmcilroy wrote: > ...
6 years, 11 months ago (2014-01-14 14:30:57 UTC) #9
rmcilroy
https://codereview.chromium.org/131823004/diff/140001/src/arm/code-stubs-arm.cc File src/arm/code-stubs-arm.cc (right): https://codereview.chromium.org/131823004/diff/140001/src/arm/code-stubs-arm.cc#newcode618 src/arm/code-stubs-arm.cc:618: __ Push(scratch, scratch_high, scratch_low); Please move 'scratch' to the ...
6 years, 11 months ago (2014-01-14 14:50:19 UTC) #10
Mostyn Bramley-Moore
https://codereview.chromium.org/131823004/diff/140001/src/arm/code-stubs-arm.cc File src/arm/code-stubs-arm.cc (right): https://codereview.chromium.org/131823004/diff/140001/src/arm/code-stubs-arm.cc#newcode618 src/arm/code-stubs-arm.cc:618: __ Push(scratch, scratch_high, scratch_low); On 2014/01/14 14:50:20, rmcilroy wrote: ...
6 years, 11 months ago (2014-01-14 15:01:50 UTC) #11
Benedikt Meurer
LGTM
6 years, 11 months ago (2014-01-15 05:31:45 UTC) #12
Benedikt Meurer
Ups, NOT LGTM, latest patch causes check failures in simulator.
6 years, 11 months ago (2014-01-15 05:39:07 UTC) #13
Mostyn Bramley-Moore
On 2014/01/15 05:39:07, Benedikt Meurer wrote: > Ups, NOT LGTM, latest patch causes check failures ...
6 years, 11 months ago (2014-01-15 11:07:53 UTC) #14
Benedikt Meurer
I applied your patch and run make arm.optdebug.check on my Intel workstation.
6 years, 11 months ago (2014-01-15 11:29:45 UTC) #15
Mostyn Bramley-Moore
On 2014/01/15 11:29:45, Benedikt Meurer wrote: > I applied your patch and run make arm.optdebug.check ...
6 years, 11 months ago (2014-01-15 12:44:16 UTC) #16
Jakob Kummerow
On 2014/01/15 12:44:16, Mostyn Bramley-Moore wrote: > BTW is it possible to run these tests ...
6 years, 11 months ago (2014-01-15 13:50:41 UTC) #17
Mostyn Bramley-Moore
@Benedikt: patchset 5 seems to fix the test failures for me, apart from a timeout ...
6 years, 11 months ago (2014-01-17 12:02:10 UTC) #18
rmcilroy
lgtm
6 years, 11 months ago (2014-01-17 12:09:03 UTC) #19
Benedikt Meurer
LGTM. I'll land it next week unless Ross beats me. :-)
6 years, 11 months ago (2014-01-17 19:19:10 UTC) #20
rmcilroy
Committed patchset #5 manually as r18688 (presubmit successful).
6 years, 11 months ago (2014-01-20 11:30:55 UTC) #21
rmcilroy
6 years, 11 months ago (2014-01-20 11:36:50 UTC) #22
Message was sent while issue was closed.
On 2014/01/20 11:30:55, rmcilroy wrote:
> Committed patchset #5 manually as r18688 (presubmit successful).

I just landed this.  Thanks for the fix Mostyn!

Powered by Google App Engine
This is Rietveld 408576698