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

Issue 1738153002: [turbofan] Don't use the CompareIC in JSGenericLowering. (Closed)

Created:
4 years, 10 months ago by Benedikt Meurer
Modified:
4 years, 10 months ago
Reviewers:
Michael Starzinger
CC:
v8-reviews_googlegroups.com, oth, rmcilroy, Michael Hablich
Base URL:
https://chromium.googlesource.com/v8/v8.git@master
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

[turbofan] Don't use the CompareIC in JSGenericLowering. The CompareICStub produces an untagged raw word value, which has to be translated to true or false manually in the TurboFan code. But for lazy bailout after the CompareIC, we immediately go back to fullcodegen or Ignition with the raw value, to a location where both fullcodegen and Ignition expect a boolean value, which might crash or in the worst case (depending on the exact computation inside the CompareIC) could lead to arbitrary memory access. Short-term fix is to use the proper runtime functions (unified with the interpreter now) for comparisons. Next task is to provide optimized versions of these based on the CodeStubAssembler, which can then be used via code stubs in TurboFan or directly in handlers in the interpreter. R=mstarzinger@chromium.org BUG=v8:4788 LOG=n Committed: https://crrev.com/d00da47b61462681b48e48bdff4a80a33da1a6d6 Cr-Commit-Position: refs/heads/master@{#34335}

Patch Set 1 #

Patch Set 2 : ports #

Patch Set 3 : Consistent SIMD.js equality #

Unified diffs Side-by-side diffs Delta from patch set Stats (+132 lines, -277 lines) Patch
M src/arm/code-stubs-arm.cc View 1 1 chunk +1 line, -1 line 0 comments Download
M src/arm64/code-stubs-arm64.cc View 1 1 chunk +1 line, -1 line 0 comments Download
M src/compiler/js-generic-lowering.h View 1 chunk +0 lines, -1 line 0 comments Download
M src/compiler/js-generic-lowering.cc View 1 2 chunks +12 lines, -106 lines 0 comments Download
M src/ia32/code-stubs-ia32.cc View 1 1 chunk +1 line, -1 line 0 comments Download
M src/interpreter/interpreter.cc View 8 chunks +8 lines, -8 lines 0 comments Download
M src/mips/code-stubs-mips.cc View 1 1 chunk +1 line, -1 line 0 comments Download
M src/mips64/code-stubs-mips64.cc View 1 1 chunk +1 line, -1 line 0 comments Download
M src/objects-inl.h View 1 2 1 chunk +4 lines, -0 lines 0 comments Download
M src/runtime/runtime.h View 2 chunks +8 lines, -8 lines 0 comments Download
M src/runtime/runtime-interpreter.cc View 1 chunk +0 lines, -56 lines 0 comments Download
M src/runtime/runtime-operators.cc View 5 chunks +44 lines, -4 lines 0 comments Download
M src/x64/code-stubs-x64.cc View 1 chunk +1 line, -1 line 0 comments Download
M test/mjsunit/mjsunit.status View 1 1 chunk +0 lines, -1 line 0 comments Download
A test/mjsunit/regress/regress-4788-1.js View 1 chunk +25 lines, -0 lines 0 comments Download
A test/mjsunit/regress/regress-4788-2.js View 1 chunk +25 lines, -0 lines 0 comments Download
M test/unittests/runtime/runtime-interpreter-unittest.cc View 2 chunks +0 lines, -87 lines 0 comments Download

Messages

Total messages: 9 (3 generated)
Benedikt Meurer
4 years, 10 months ago (2016-02-26 13:44:39 UTC) #1
Benedikt Meurer
Hey Michi, Here's the quickfix we discussed for the CompareIC issues with TurboFan (affecting both ...
4 years, 10 months ago (2016-02-26 13:46:21 UTC) #2
Michael Starzinger
LGTM.
4 years, 10 months ago (2016-02-26 13:58:28 UTC) #3
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1738153002/40001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1738153002/40001
4 years, 10 months ago (2016-02-26 18:14:20 UTC) #6
commit-bot: I haz the power
Committed patchset #3 (id:40001)
4 years, 10 months ago (2016-02-26 18:40:47 UTC) #7
commit-bot: I haz the power
4 years, 10 months ago (2016-02-26 18:41:41 UTC) #9
Message was sent while issue was closed.
Patchset 3 (id:??) landed as
https://crrev.com/d00da47b61462681b48e48bdff4a80a33da1a6d6
Cr-Commit-Position: refs/heads/master@{#34335}

Powered by Google App Engine
This is Rietveld 408576698