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

Issue 7489045: ARM: Fast path for compare against constant. (Closed)

Created:
9 years, 5 months ago by m.m.capewell
Modified:
8 years, 12 months ago
CC:
v8-dev
Visibility:
Public.

Description

ARM: Fast path for compare against constant. BUG=none TEST=none

Patch Set 1 #

Total comments: 2

Patch Set 2 : '' #

Patch Set 3 : '' #

Total comments: 6

Patch Set 4 : '' #

Total comments: 3
Unified diffs Side-by-side diffs Delta from patch set Stats (+151 lines, -70 lines) Patch
M src/arm/lithium-arm.cc View 1 2 3 1 chunk +2 lines, -2 lines 0 comments Download
M src/arm/lithium-codegen-arm.h View 1 2 3 2 chunks +1 line, -1 line 0 comments Download
M src/arm/lithium-codegen-arm.cc View 1 2 3 2 chunks +36 lines, -16 lines 0 comments Download
M src/assembler.h View 1 2 3 1 chunk +2 lines, -0 lines 0 comments Download
M src/assembler.cc View 1 2 3 1 chunk +17 lines, -0 lines 0 comments Download
M src/ia32/lithium-codegen-ia32.h View 1 2 3 2 chunks +1 line, -1 line 0 comments Download
M src/ia32/lithium-codegen-ia32.cc View 1 2 3 2 chunks +32 lines, -18 lines 2 comments Download
M src/ia32/lithium-ia32.cc View 1 2 3 1 chunk +10 lines, -3 lines 0 comments Download
M src/x64/lithium-codegen-x64.h View 1 2 3 2 chunks +1 line, -1 line 0 comments Download
M src/x64/lithium-codegen-x64.cc View 1 2 3 2 chunks +39 lines, -25 lines 1 comment Download
M src/x64/lithium-x64.cc View 1 2 3 1 chunk +10 lines, -3 lines 0 comments Download

Messages

Total messages: 13 (0 generated)
m.m.capewell
9 years, 5 months ago (2011-07-25 13:26:27 UTC) #1
Mads Ager (chromium)
Redirecting because of vacation. Bill, can you have a look? Is any of this actually ...
9 years, 5 months ago (2011-07-27 13:05:05 UTC) #2
Alexandre
I ported the code to ia32 and x64. Note that I could not perform any ...
9 years, 4 months ago (2011-07-28 13:42:15 UTC) #3
m.m.capewell
9 years, 4 months ago (2011-07-28 14:23:47 UTC) #4
William Hesse
Is this issue still live? Shall I review it?
9 years, 4 months ago (2011-08-11 09:56:24 UTC) #5
William Hesse
Token::EvalComparison should be moved to src/assembler.cc. That is a better place for platform-independent operations on ...
9 years, 4 months ago (2011-08-11 12:08:22 UTC) #6
m.m.capewell
9 years, 4 months ago (2011-08-19 14:19:38 UTC) #7
William Hesse
LGTM. I didn't realize you had made the change - I was waiting for a ...
9 years, 3 months ago (2011-09-09 08:53:19 UTC) #8
William Hesse
Needs to be fixed, as described in comments. Please include a message when uploading, so ...
9 years, 3 months ago (2011-09-09 11:14:46 UTC) #9
Alexandre
Thanks for the comments. The new patch will be uploaded on Monday. I tested it ...
9 years, 3 months ago (2011-09-09 17:07:22 UTC) #10
m.m.capewell
9 years, 3 months ago (2011-09-12 14:08:57 UTC) #11
William Hesse
LGTM. Committed as r9718, using code review http://codereview.chromium.org/8352040/. Sorry it took so long. http://codereview.chromium.org/7489045/diff/27001/src/ia32/lithium-codegen-ia32.cc File ...
9 years, 2 months ago (2011-10-20 10:28:40 UTC) #12
Alexandre
9 years, 2 months ago (2011-10-20 10:59:49 UTC) #13
For your information, just a comment about cmp vs tst on ARM.

Alexandre

http://codereview.chromium.org/7489045/diff/27001/src/ia32/lithium-codegen-ia...
File src/ia32/lithium-codegen-ia32.cc (right):

http://codereview.chromium.org/7489045/diff/27001/src/ia32/lithium-codegen-ia...
src/ia32/lithium-codegen-ia32.cc:1559: __ cmp(ToOperand(left),
ToImmediate(right));
I forgot to change it to tst for Intel.
I intentionally used a cmp as it is better on ARM:
- the immediate is encoded in the instruction.
- cmp sets all the flags, whereas tst doesn't, resulting in more complex
handling for the pipeline.

On 2011/10/20 10:28:40, William Hesse wrote:
> If the immediate value is 0, this can also be test(left, left) on ia32 and
x64. 
> You should try this on ARM, if possible.  I'll test it on ia32 and x64.  Also,
> this can be a ToRegister(left)  (fixed).

Powered by Google App Engine
This is Rietveld 408576698