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

Issue 1511653002: Fix problems with sandboxing and the ARM integrated assembler. (Closed)

Created:
5 years ago by Karl
Modified:
5 years ago
Reviewers:
Jim Stichnoth, sehr, John
CC:
native-client-reviews_googlegroups.com
Base URL:
https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Target Ref:
refs/heads/master
Visibility:
Public.

Description

Fix problems with sandboxing and the ARM integrated assembler. Fixes (at least) the obvious problems with sandboxing and the integrated assembler. This includes: Added assembly instruction Nop. Fixed implementation of padWithNop. Fixed linking to local label to only fire when persistent (i.e. last pass of assembly generation). Removed restriction on single register push/pop, since the ARM integrated assembler converts it to a corresopnding str/ldr. Fixed OperandARM32FlexImm to use smallest rotation value, so that external assemblers and the ARM integrated assembler will agree on encoding. Fixed ARM sandboxing requires test in sandboxing.ll BUG=None R=stichnot@chromium.org Committed: https://gerrit.chromium.org/gerrit/gitweb?p=native_client/pnacl-subzero.git;a=commit;h=67574d83d05f5bde748843a73adcab6247736601

Patch Set 1 #

Total comments: 14

Patch Set 2 : Fix issues associated with patch set 1. #

Patch Set 3 : Lift pass information into linkTo() and nearLinkTo(). #

Total comments: 9

Patch Set 4 : Clean up small issues raised in last patch. #

Total comments: 1

Patch Set 5 : Fix nit. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+90 lines, -51 lines) Patch
M src/DartARM32/assembler_arm.h View 1 2 3 4 1 chunk +2 lines, -1 line 0 comments Download
M src/DartARM32/assembler_arm.cc View 1 2 3 4 1 chunk +3 lines, -1 line 0 comments Download
M src/IceAssembler.h View 1 2 3 2 chunks +3 lines, -5 lines 0 comments Download
M src/IceAssembler.cpp View 1 2 3 4 1 chunk +11 lines, -0 lines 0 comments Download
M src/IceAssemblerARM32.h View 1 2 3 4 2 chunks +3 lines, -4 lines 0 comments Download
M src/IceAssemblerARM32.cpp View 1 2 3 4 13 chunks +43 lines, -15 lines 0 comments Download
M src/IceAssemblerX86Base.h View 1 2 1 chunk +3 lines, -1 line 0 comments Download
M src/IceAssemblerX86BaseImpl.h View 1 2 3 1 chunk +5 lines, -7 lines 0 comments Download
M src/IceInstARM32.h View 1 chunk +1 line, -4 lines 0 comments Download
M src/IceInstARM32.cpp View 1 2 3 4 3 chunks +15 lines, -12 lines 0 comments Download
M tests_lit/assembler/arm32/sandboxing.ll View 1 chunk +1 line, -1 line 0 comments Download

Messages

Total messages: 14 (3 generated)
Karl
5 years ago (2015-12-08 18:57:28 UTC) #3
John
https://codereview.chromium.org/1511653002/diff/1/src/IceAssemblerARM32.cpp File src/IceAssemblerARM32.cpp (right): https://codereview.chromium.org/1511653002/diff/1/src/IceAssemblerARM32.cpp#newcode1386 src/IceAssemblerARM32.cpp:1386: return emitMemOp(Cond, IsLoad, IsByte, Rt, OpAddress, TInfo, StrName); Optional: ...
5 years ago (2015-12-08 19:45:04 UTC) #4
Jim Stichnoth
https://codereview.chromium.org/1511653002/diff/1/src/IceAssemblerARM32.cpp File src/IceAssemblerARM32.cpp (right): https://codereview.chromium.org/1511653002/diff/1/src/IceAssemblerARM32.cpp#newcode466 src/IceAssemblerARM32.cpp:466: "Padding not mulitple of instruction size"); multiple https://codereview.chromium.org/1511653002/diff/1/src/IceAssemblerARM32.cpp#newcode1386 src/IceAssemblerARM32.cpp:1386: ...
5 years ago (2015-12-08 19:54:59 UTC) #5
Karl
https://codereview.chromium.org/1511653002/diff/1/src/IceAssemblerARM32.cpp File src/IceAssemblerARM32.cpp (right): https://codereview.chromium.org/1511653002/diff/1/src/IceAssemblerARM32.cpp#newcode1386 src/IceAssemblerARM32.cpp:1386: return emitMemOp(Cond, IsLoad, IsByte, Rt, OpAddress, TInfo, StrName); On ...
5 years ago (2015-12-08 19:58:35 UTC) #6
Karl
I also updated DART source to show that we have implemented nop() in the ARM ...
5 years ago (2015-12-08 20:49:36 UTC) #7
Jim Stichnoth
https://codereview.chromium.org/1511653002/diff/1/src/IceAssemblerARM32.cpp File src/IceAssemblerARM32.cpp (right): https://codereview.chromium.org/1511653002/diff/1/src/IceAssemblerARM32.cpp#newcode662 src/IceAssemblerARM32.cpp:662: if (!needsTextFixup() && !getPreliminary()) This is clearly a problem ...
5 years ago (2015-12-08 20:52:28 UTC) #8
Karl
https://codereview.chromium.org/1511653002/diff/1/src/IceAssemblerARM32.cpp File src/IceAssemblerARM32.cpp (right): https://codereview.chromium.org/1511653002/diff/1/src/IceAssemblerARM32.cpp#newcode662 src/IceAssemblerARM32.cpp:662: if (!needsTextFixup() && !getPreliminary()) On 2015/12/08 20:52:27, stichnot wrote: ...
5 years ago (2015-12-08 21:38:11 UTC) #9
Jim Stichnoth
https://codereview.chromium.org/1511653002/diff/40001/src/IceAssembler.h File src/IceAssembler.h (right): https://codereview.chromium.org/1511653002/diff/40001/src/IceAssembler.h#newcode87 src/IceAssembler.h:87: inline void linkTo(const Assembler &Asm, intptr_t position); Does the ...
5 years ago (2015-12-08 22:20:00 UTC) #10
Karl
https://codereview.chromium.org/1511653002/diff/40001/src/IceAssembler.h File src/IceAssembler.h (right): https://codereview.chromium.org/1511653002/diff/40001/src/IceAssembler.h#newcode87 src/IceAssembler.h:87: inline void linkTo(const Assembler &Asm, intptr_t position); On 2015/12/08 ...
5 years ago (2015-12-08 22:39:32 UTC) #11
Jim Stichnoth
lgtm https://codereview.chromium.org/1511653002/diff/40001/src/IceAssembler.h File src/IceAssembler.h (right): https://codereview.chromium.org/1511653002/diff/40001/src/IceAssembler.h#newcode87 src/IceAssembler.h:87: inline void linkTo(const Assembler &Asm, intptr_t position); On ...
5 years ago (2015-12-08 23:06:44 UTC) #12
Karl
5 years ago (2015-12-08 23:37:04 UTC) #14
Message was sent while issue was closed.
Committed patchset #5 (id:80001) manually as
67574d83d05f5bde748843a73adcab6247736601 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698