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 1224173006: Adds the x86-64 assembler. (Closed)

Created:
5 years, 5 months ago by John
Modified:
5 years, 4 months ago
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

Adds the x86-64 assembler. As part of this CL, x86-32 assembler tests are also introduced. They were implemented before the x86 base assembler template was modified for x86-64 support. BUG=https://code.google.com/p/nativeclient/issues/detail?id=4077 R=stichnot@chromium.org Committed: https://gerrit.chromium.org/gerrit/gitweb?p=native_client/pnacl-subzero.git;a=commit;h=2fea26cae5a6b140c67e18aec3dcf645a16694d5

Patch Set 1 #

Patch Set 2 : Adds tests for the supported X87 instructions. #

Patch Set 3 : All tests. #

Patch Set 4 : Introduces the X8664 assembler and tests. No REX support yet. #

Total comments: 20

Patch Set 5 : "Rex support is done for encoding the new registers." #

Patch Set 6 : make format #

Total comments: 16

Patch Set 7 : Addresses comments; changes emitRex.* logic. #

Total comments: 1

Patch Set 8 : #

Total comments: 4

Patch Set 9 : Splits the X8632 Assembler tests into multiple sources. #

Patch Set 10 : Splits the X8664 Assembler tests into multiple sources. #

Patch Set 11 : Addresses comments; make format #

Unified diffs Side-by-side diffs Delta from patch set Stats (+16539 lines, -1036 lines) Patch
M Makefile.standalone View 1 2 3 4 5 6 7 8 9 10 5 chunks +24 lines, -4 lines 0 comments Download
M src/IceAssemblerX8664.h View 5 6 7 8 9 10 2 chunks +23 lines, -16 lines 0 comments Download
D src/IceAssemblerX8664.cpp View 5 6 7 8 9 10 1 chunk +0 lines, -48 lines 0 comments Download
M src/IceAssemblerX86Base.h View 1 2 3 4 5 6 7 8 9 10 13 chunks +167 lines, -31 lines 0 comments Download
M src/IceAssemblerX86BaseImpl.h View 1 2 3 4 5 6 7 8 9 10 181 chunks +356 lines, -180 lines 0 comments Download
M src/IceConditionCodesX8664.h View 1 2 3 5 6 7 8 9 10 1 chunk +1 line, -0 lines 0 comments Download
M src/IceInstX8664.def View 1 2 3 4 5 6 7 8 9 10 2 chunks +39 lines, -34 lines 0 comments Download
M src/IceRegistersX8664.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +0 lines, -4 lines 0 comments Download
M src/IceTargetLoweringX8632Traits.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +7 lines, -0 lines 0 comments Download
A src/IceTargetLoweringX8664Traits.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +296 lines, -0 lines 0 comments Download
A unittest/AssemblerX8632/ControlFlow.cpp View 1 2 3 4 5 6 7 8 9 10 1 chunk +244 lines, -0 lines 0 comments Download
A unittest/AssemblerX8632/DataMov.cpp View 1 2 3 4 5 6 7 8 9 10 1 chunk +1192 lines, -0 lines 0 comments Download
A unittest/AssemblerX8632/GPRArith.cpp View 1 2 3 4 5 6 7 8 9 10 1 chunk +1884 lines, -0 lines 0 comments Download
A unittest/AssemblerX8632/Locked.cpp View 1 2 3 4 5 6 7 8 9 10 1 chunk +409 lines, -0 lines 0 comments Download
A unittest/AssemblerX8632/LowLevel.cpp View 1 2 3 4 5 6 7 8 9 10 1 chunk +710 lines, -0 lines 0 comments Download
A unittest/AssemblerX8632/Other.cpp View 1 2 3 4 5 6 7 8 9 10 1 chunk +84 lines, -0 lines 0 comments Download
A unittest/AssemblerX8632/TestUtil.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +848 lines, -0 lines 0 comments Download
A unittest/AssemblerX8632/X87.cpp View 1 2 3 4 5 6 7 8 9 10 1 chunk +267 lines, -0 lines 0 comments Download
A unittest/AssemblerX8632/XmmArith.cpp View 1 2 3 4 5 6 7 8 9 10 1 chunk +1816 lines, -0 lines 0 comments Download
A unittest/AssemblerX8664/ControlFlow.cpp View 1 2 3 4 5 6 7 8 9 10 1 chunk +307 lines, -0 lines 0 comments Download
A unittest/AssemblerX8664/DataMov.cpp View 1 2 3 4 5 6 7 8 9 10 1 chunk +1314 lines, -0 lines 0 comments Download
A unittest/AssemblerX8664/GPRArith.cpp View 1 2 3 4 5 6 7 8 9 10 1 chunk +1905 lines, -0 lines 0 comments Download
A unittest/AssemblerX8664/Locked.cpp View 1 2 3 4 5 6 7 8 9 10 1 chunk +449 lines, -0 lines 0 comments Download
A unittest/AssemblerX8664/LowLevel.cpp View 1 2 3 4 5 6 7 8 9 10 1 chunk +1124 lines, -0 lines 0 comments Download
A unittest/AssemblerX8664/Other.cpp View 1 2 3 4 5 6 7 8 9 10 1 chunk +62 lines, -0 lines 0 comments Download
A unittest/AssemblerX8664/TestUtil.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +1097 lines, -0 lines 0 comments Download
A unittest/AssemblerX8664/XmmArith.cpp View 1 2 3 4 5 6 7 8 9 10 1 chunk +1914 lines, -0 lines 0 comments Download
D unittest/IceAssemblerX8632Test.cpp View 1 2 3 4 5 6 7 8 9 10 1 chunk +0 lines, -719 lines 0 comments Download

Messages

Total messages: 10 (1 generated)
John
***** The x86-64 assembler is not yet implemented!!!!! ***** This cl introduces a massive amount ...
5 years, 5 months ago (2015-07-21 21:27:52 UTC) #2
jvoung (off chromium)
https://codereview.chromium.org/1224173006/diff/60001/src/IceAssemblerX86Base.h File src/IceAssemblerX86Base.h (left): https://codereview.chromium.org/1224173006/diff/60001/src/IceAssemblerX86Base.h#oldcode522 src/IceAssemblerX86Base.h:522: typename Traits::XmmRegister src, const Immediate &mask); oops (on the ...
5 years, 5 months ago (2015-07-23 17:59:36 UTC) #3
John
OK, so the assembler is "done." We can now use the extra registers, but i64 ...
5 years, 5 months ago (2015-07-24 21:49:30 UTC) #4
Jim Stichnoth
I don't really know how to go about reviewing the two test files... But here's ...
5 years, 5 months ago (2015-07-26 15:31:11 UTC) #5
John
https://codereview.chromium.org/1224173006/diff/60001/src/IceAssemblerX86Base.h File src/IceAssemblerX86Base.h (left): https://codereview.chromium.org/1224173006/diff/60001/src/IceAssemblerX86Base.h#oldcode522 src/IceAssemblerX86Base.h:522: typename Traits::XmmRegister src, const Immediate &mask); On 2015/07/23 17:59:36, ...
5 years, 4 months ago (2015-07-27 20:35:59 UTC) #6
Jim Stichnoth
otherwise lgtm https://codereview.chromium.org/1224173006/diff/110001/src/IceAssemblerX86Base.h File src/IceAssemblerX86Base.h (right): https://codereview.chromium.org/1224173006/diff/110001/src/IceAssemblerX86Base.h#newcode317 src/IceAssemblerX86Base.h:317: void call(const ConstantRelocatable *label); // not testable. ...
5 years, 4 months ago (2015-07-28 21:56:34 UTC) #7
John
Committed patchset #11 (id:140001) manually as 2fea26cae5a6b140c67e18aec3dcf645a16694d5 (presubmit successful).
5 years, 4 months ago (2015-07-28 23:28:12 UTC) #8
John
https://codereview.chromium.org/1224173006/diff/110001/src/IceAssemblerX86Base.h File src/IceAssemblerX86Base.h (right): https://codereview.chromium.org/1224173006/diff/110001/src/IceAssemblerX86Base.h#newcode317 src/IceAssemblerX86Base.h:317: void call(const ConstantRelocatable *label); // not testable. On 2015/07/28 ...
5 years, 4 months ago (2015-07-28 23:33:46 UTC) #9
Jim Stichnoth
5 years, 4 months ago (2015-07-30 07:03:34 UTC) #10
Message was sent while issue was closed.
I can't build the new assembler tests on my laptop.  Clang runs out of memory. 
My chrome tabs are all very sad.  Hopefully something can be done about this...

Powered by Google App Engine
This is Rietveld 408576698