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

Issue 1780193003: [turbofan] Byte and word memory operands in x64 cmp/test. Fixes arithmetic_op_8 in assembler-x64.cc (Closed)

Created:
4 years, 9 months ago by epertoso
Modified:
4 years, 9 months ago
Reviewers:
Jarin
CC:
v8-reviews_googlegroups.com
Base URL:
https://chromium.googlesource.com/v8/v8.git@master
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

[turbofan] Byte and word memory operands in x64 cmp/test. Fixes arithmetic_op_8 in assembler-x64.cc Currently, if the size of two cmp or test operands is a byte or a word, we sign-extend or zero-extend each of them into a 32-bit register before doing the comparison, even when the conditions for the use of a memory operand are met. This CL makes it possible to load only one of them into a register and address the other as a memory operand. Meanwhile, comparisons between Uint8 values in the string relational comparison stubs are done with Uint32LessThan (previously we were always zero-extending the byte to a 32-bit value, so signed comparison was alright). Found that Assembler::arithmetic_op_8(byte, Register, const Operand&) wasn't taking the Operand's rex_ field into account, so I fixed that too. BUG= Committed: https://crrev.com/165b68e227cebe664c9bb8d1faf9357ce22d0a0f Cr-Commit-Position: refs/heads/master@{#34862}

Patch Set 1 #

Patch Set 2 : Update. #

Total comments: 2

Patch Set 3 : Update. #

Patch Set 4 : Fixes cmpb. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+139 lines, -10 lines) Patch
M src/code-stubs.cc View 1 2 3 1 chunk +2 lines, -2 lines 0 comments Download
M src/compiler/code-stub-assembler.h View 1 2 3 2 chunks +2 lines, -0 lines 0 comments Download
M src/compiler/code-stub-assembler.cc View 1 2 3 1 chunk +10 lines, -0 lines 0 comments Download
M src/compiler/x64/code-generator-x64.cc View 1 2 1 chunk +12 lines, -0 lines 0 comments Download
M src/compiler/x64/instruction-codes-x64.h View 2 chunks +4 lines, -1 line 0 comments Download
M src/compiler/x64/instruction-scheduler-x64.cc View 1 chunk +4 lines, -0 lines 0 comments Download
M src/compiler/x64/instruction-selector-x64.cc View 1 2 3 chunks +49 lines, -5 lines 0 comments Download
M src/x64/assembler-x64.h View 1 2 3 2 chunks +9 lines, -0 lines 0 comments Download
M src/x64/assembler-x64.cc View 1 2 3 2 chunks +47 lines, -2 lines 0 comments Download

Messages

Total messages: 22 (11 generated)
epertoso
I'll port this to ia32 if you think it's OK.
4 years, 9 months ago (2016-03-10 15:26:01 UTC) #2
Jarin
lgtm with a nit. https://codereview.chromium.org/1780193003/diff/20001/src/compiler/x64/instruction-selector-x64.cc File src/compiler/x64/instruction-selector-x64.cc (right): https://codereview.chromium.org/1780193003/diff/20001/src/compiler/x64/instruction-selector-x64.cc#newcode1437 src/compiler/x64/instruction-selector-x64.cc:1437: if (left->opcode() != IrOpcode::kLoad || ...
4 years, 9 months ago (2016-03-14 14:54:09 UTC) #3
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1780193003/40001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1780193003/40001
4 years, 9 months ago (2016-03-15 14:38:43 UTC) #6
epertoso
https://codereview.chromium.org/1780193003/diff/20001/src/compiler/x64/instruction-selector-x64.cc File src/compiler/x64/instruction-selector-x64.cc (right): https://codereview.chromium.org/1780193003/diff/20001/src/compiler/x64/instruction-selector-x64.cc#newcode1437 src/compiler/x64/instruction-selector-x64.cc:1437: if (left->opcode() != IrOpcode::kLoad || right->opcode() != IrOpcode::kLoad) { ...
4 years, 9 months ago (2016-03-15 14:38:46 UTC) #7
commit-bot: I haz the power
Try jobs failed on following builders: v8_linux64_avx2_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux64_avx2_rel/builds/11661)
4 years, 9 months ago (2016-03-15 14:54:11 UTC) #9
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1780193003/60001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1780193003/60001
4 years, 9 months ago (2016-03-17 13:56:32 UTC) #12
Jarin
lgtm. Thanks!
4 years, 9 months ago (2016-03-17 14:13:30 UTC) #13
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 9 months ago (2016-03-17 14:17:32 UTC) #15
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1780193003/60001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1780193003/60001
4 years, 9 months ago (2016-03-17 14:21:38 UTC) #18
commit-bot: I haz the power
Committed patchset #4 (id:60001)
4 years, 9 months ago (2016-03-17 14:23:17 UTC) #20
commit-bot: I haz the power
4 years, 9 months ago (2016-03-17 14:23:59 UTC) #22
Message was sent while issue was closed.
Patchset 4 (id:??) landed as
https://crrev.com/165b68e227cebe664c9bb8d1faf9357ce22d0a0f
Cr-Commit-Position: refs/heads/master@{#34862}

Powered by Google App Engine
This is Rietveld 408576698