- 10 Feb, 2017 1 commit
-
-
Jaydeep Patil authored
The patch generates LL-SC sequence for atomic load store operations. 64-bit atomic operations are lowered to __sync_*_8 functions. R=stichnot@chromium.org Patch from Jaydeep Patil <jaydeep.patil@imgtec.com>. Review-Url: https://codereview.chromium.org/2682673002 .
-
- 03 Feb, 2017 1 commit
-
-
Nicolas Capens authored
Change-Id: I6ad399f250a49ae5e1c49f3afafbab7ca58fb81b Reviewed-on: https://chromium-review.googlesource.com/435715Reviewed-by:
Jim Stichnoth <stichnot@chromium.org>
-
- 01 Feb, 2017 1 commit
-
-
Jim Stichnoth authored
There's some good work in Subzero's register allocation, which deserves to be captured in a single place. BUG= none R=kschimpf@google.com Review URL: https://codereview.chromium.org/2277493003 .
-
- 31 Jan, 2017 3 commits
-
-
Nicolas Capens authored
Change-Id: Id3d40a72cb74c75ef4431e6af8855e08bde2bb5c Reviewed-on: https://chromium-review.googlesource.com/433329Reviewed-by:
Jim Stichnoth <stichnot@chromium.org>
-
Nicolas Capens authored
Change-Id: I3459f9a5472aba37e1b7016b27403094e17bb9f7 Reviewed-on: https://chromium-review.googlesource.com/433372Reviewed-by:
Jim Stichnoth <stichnot@chromium.org>
-
Nicolas Capens authored
Change-Id: I65aff3da87dfb9c3e5db58621a1a02944a6065e8 Reviewed-on: https://chromium-review.googlesource.com/433365Reviewed-by:
Jim Stichnoth <stichnot@chromium.org>
-
- 26 Jan, 2017 1 commit
-
-
Jaydeep Patil authored
The patch fixes a code generation issue occurred in the 2nd iteration of LL-SC loop. R=stichnot@chromium.org Patch from Jaydeep Patil <jaydeep.patil@imgtec.com>. Review-Url: https://codereview.chromium.org/2656723003 .
-
- 24 Jan, 2017 1 commit
-
-
Nicolas Capens authored
Older versions of Clang don't allow using an empty set as the default parameter of a class with an explicit constructor. "error: chosen constructor is explicit in copy-initialization" BUG=chromium:630728 Change-Id: I580073788ce3346d1ecffab336a0fcee210b2e0f Reviewed-on: https://chromium-review.googlesource.com/431080Reviewed-by:
Jim Stichnoth <stichnot@chromium.org>
-
- 19 Jan, 2017 1 commit
-
-
Nicolas Capens authored
Change-Id: Idf81fb96dd32df8f96b5bc688bdce290265ff372 Reviewed-on: https://chromium-review.googlesource.com/430230Reviewed-by:
Jim Stichnoth <stichnot@chromium.org>
-
- 17 Jan, 2017 3 commits
-
-
Nicolas Capens authored
The round intrinsic gets translated to roundps on x86, which is SSE4.1 only. cvtps2pd + cvtdq2ps can be used as an SSE2 fallback. cvtps2pd also corresponds to LLVM's nearbyint intrinsic. BUG=swiftshader:20 Change-Id: I8b5896c443f202a5b25125b4e5049b0b3d3a11b0 Reviewed-on: https://chromium-review.googlesource.com/428491Reviewed-by:
Jim Stichnoth <stichnot@chromium.org>
-
Nicolas Capens authored
On Windows x86-32, the ABI only guarantees the stack to be 4-byte aligned. We therefore need the stack pointer to be explicitly aligned when using vectors. This demands using a frame pointer (to access function arguments). Also, we had to change accessing spilled variables from the stack pointer instead of the frame pointer so they are also aligned. This change does not affect PNaCl. Projects using the Microsoft ABI should define SUBZERO_USE_MICROSOFT_ABI. BUG=swiftshader:29 Change-Id: I186ce9435244d6fa9494ec514a91122b6be130b3 Reviewed-on: https://chromium-review.googlesource.com/427348Reviewed-by:
Jim Stichnoth <stichnot@chromium.org>
-
Nicolas Capens authored
Local variables that use a fixed alloca stack slot are assigned offsets starting at 0, before the prolog is written. Therefore the stack pointer needs to be aligned to the alloca's maximum alignment requirement. This required the following changes: - Add FixedAllocaSizeBytes to SpillAreaSizeBytes before aligning it. - Compute the maximum alignment requirement from FixedAllocaAlignBytes and SpillAreaAlignmentBytes, and prior NeedsStackAlignment uses. - Always align the stack pointer to this maximum. - Affected lit tests have been rebased. Note that in some cases the frame size is now bigger than necessary. This is due to FixedAllocaSizeBytes being padding to be a multiple of the alignment. This isn't strictly necessary since the spill areas take care of their own alignment. BUG=swiftshader:29 Change-Id: Ief30acda91c958d072528b8b59c2e933f68adbb1 Reviewed-on: https://chromium-review.googlesource.com/419816Reviewed-by:
Jim Stichnoth <stichnot@chromium.org>
-
- 11 Jan, 2017 2 commits
-
-
Stefan Maksimovic authored
This patch introduces changes to the MIPS32 intrinsic functions to comply with PNaCl smoke tests. Also made a change regarding addressing relative to frame pointer, since it differs in MIPS compared to ARM and x86. R=stichnot@chromium.org Patch from Stefan Maksimovic <makdstefan@gmail.com>. Review-Url: https://codereview.chromium.org/2619363003 .
-
Jaydeep Patil authored
The patch fixes various code generation issues found during testing of Cross-test and PNaCL smoke-test framework. 1) To keep track of branches to same label, relative position of the branch from previous branch is used. 2) Fixed encoding of conditional mov instructions 3) Added MovFP64ToI64 instruction for f64 to i64 move 4) Handled vector-types in Phi nodes 5) Fixed alignment of spilled vector arguments on stack 6) Save-restore FP registers 7) Fixed code generation for Zext and Sext operations 8) Fixed InsertElement for vi16x8 type R=stichnot@chromium.org Patch from Jaydeep Patil <jaydeep.patil@imgtec.com>. Review-Url: https://codereview.chromium.org/2619943003 .
-
- 07 Jan, 2017 1 commit
-
-
Nicolas Capens authored
Change-Id: I140c17b1b48156ae5dd5ca6cf4ef41f3bc03f16a Reviewed-on: https://chromium-review.googlesource.com/425780Reviewed-by:
Jim Stichnoth <stichnot@chromium.org>
-
- 06 Jan, 2017 1 commit
-
-
Nicolas Capens authored
Change-Id: I3d60dd5d2020b0fe234587810bdddbf855fa9e4a Reviewed-on: https://chromium-review.googlesource.com/425829Reviewed-by:
Jim Stichnoth <stichnot@chromium.org>
-
- 27 Dec, 2016 2 commits
-
-
Jim Stichnoth authored
LLVM trunk commit a5479197371e169bc676e0e570f2a994329f8773 split include/llvm/Bitcode/ReaderWriter.h into two separate header files. This CL hacks it back, in a sense. With this change (along with the rest of the recent fixes), Subzero builds against the latest LLVM trunk - 759dd39154f0bbf1adc87bf613c95f9564f64aa8 at this writing. BUG= none R=kschimpf@google.com Review-Url: https://codereview.chromium.org/2604753002 .
-
Jim Stichnoth authored
LLVM commit 4ac35e82723d4bdbc094f73b2d33aaaa86a00d6a removed some code that Subzero still needs, specifically StreamingMemoryObject and its parents. Deal with this by adding those files back to the Subzero repo. This allows Subzero to build through LLVM c75e3c2fd2bb9ca010f4e1c32acbd142adc32c7f. BUG= none R=kschimpf@google.com Review-Url: https://codereview.chromium.org/2605653002 .
-
- 26 Dec, 2016 2 commits
-
-
Jim Stichnoth authored
This allows Subzero to build through LLVM e8516587a2604386a8faaab28c410663c2ec884c. 1. Mirror an internal change to the llvm::cl implementation. 2. Something changed in llvm::format() that now requires an explicit conversion from RegNumT. BUG= none R=kschimpf@google.com Review-Url: https://codereview.chromium.org/2602713002 .
-
Jim Stichnoth authored
The existing code gives a build error against LLVM trunk. Actually, the latest LLVM trunk causes a lot more Subzero build problems, but if we roll LLVM back to 1d79fff9e65e77f84bf80c2cf4f0155bd167c90d, everything builds except for this one issue. BUG= none R=kschimpf@google.com Review-Url: https://codereview.chromium.org/2598263002 .
-
- 24 Dec, 2016 1 commit
-
-
Jim Stichnoth authored
Based on build failure messages in https://build.chromium.org/p/tryserver.nacl/builders/nacl-toolchain-win7-pnacl-x86_64/builds/3609/steps/llvm_i686_w64_mingw32%20%28build%29/logs/stdio . BUG= none R=jpp@chromium.org Review URL: https://codereview.chromium.org/2601653002 .
-
- 23 Dec, 2016 1 commit
-
-
Jim Stichnoth authored
The movzx operand must be a register or memory operand. An immediate operand is not allowed. BUG= https://bugs.chromium.org/p/nativeclient/issues/detail?id=4384 R=jpp@chromium.org Review URL: https://codereview.chromium.org/2598153002 .
-
- 09 Dec, 2016 1 commit
-
-
Nicolas Capens authored
The arguments get legalized to Reg or Mem, so we can allow constants as well (including undef values). This change makes all instruction's source arguments Ice::Operands. BUG=swiftshader:24 Change-Id: I1659cdfdb1b8a12c4acc7c473211d8a67bfd5868 Reviewed-on: https://chromium-review.googlesource.com/418504Reviewed-by:
Jim Stichnoth <stichnot@chromium.org>
-
- 30 Nov, 2016 1 commit
-
-
Nicolas Capens authored
BUG=swiftshader:15 Change-Id: I7e10342fa1ef9bce22bc8c445240fc34a68e8f47 Reviewed-on: https://chromium-review.googlesource.com/414992Reviewed-by:
Jim Stichnoth <stichnot@chromium.org>
-
- 28 Nov, 2016 2 commits
-
-
Nicolas Capens authored
Fixes hitting a (benign) assert in replaceSource(). Change-Id: I7f984d484133e619717d004f20cd671a54473185 Reviewed-on: https://chromium-review.googlesource.com/414490Reviewed-by:
Jim Stichnoth <stichnot@chromium.org>
-
Jaydeep Patil authored
This patch fixes size of arguments on stack R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2533563002 . Patch from Jaydeep Patil <jaydeep.patil@imgtec.com>.
-
- 24 Nov, 2016 1 commit
-
-
Nicolas Capens authored
BUG=swiftshader:15 Change-Id: If608ab4903d97daa0ad342d02f496ac3fa6471d9 Reviewed-on: https://chromium-review.googlesource.com/414389Reviewed-by:
Jim Stichnoth <stichnot@chromium.org>
-
- 23 Nov, 2016 1 commit
-
-
Nicolas Capens authored
Change-Id: I469a7ddaa658d79fc491112b63972bd9b056689d Reviewed-on: https://chromium-review.googlesource.com/414186Reviewed-by:
Jim Stichnoth <stichnot@chromium.org> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
- 22 Nov, 2016 1 commit
-
-
Stefan Maksimovic authored
R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2519863002 . Patch from Stefan Maksimovic <makdstefan@gmail.com>.
-
- 18 Nov, 2016 1 commit
-
-
Sagar Thakur authored
R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2504253002 . Patch from Sagar Thakur <sagar.thakur@imgtec.com>.
-
- 10 Nov, 2016 1 commit
-
-
Stefan Maksimovic authored
Initial patch regarding the Subzero MIPS32 sandboxing stage. At the moment, the results of the crosstests with vector tests disabled are as follows: ASM mode: 19 passing / 5 failing test_bitmanip: O2 test_calling_conv: Om1, O2 test_sync_atomic: Om1, O2 ELF mode: 15 passing / 9 failing test_bitmanip: O2 test_calling_conv: Om1, O2 test_global: Om1, O2 test_stacksave: Om1, O2 test_sync_atomic: Om1, O2 R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2482123002 . Patch from Stefan Maksimovic <makdstefan@gmail.com>.
-
- 09 Nov, 2016 1 commit
-
-
Nicolas Capens authored
BUG=swiftshader:9 Change-Id: I779abfe7775632e1108e9d608bf21a63c8cefe9e Reviewed-on: https://chromium-review.googlesource.com/407882Reviewed-by:
Jim Stichnoth <stichnot@chromium.org> Tested-by:
Nicolas Capens <nicolascapens@google.com>
-
- 07 Nov, 2016 1 commit
-
-
Jaydeep Patil authored
This patch optimizes code generation of instructions with 16-bit immediate operands R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2478113003 . Patch from Jaydeep Patil <jaydeep.patil@imgtec.com>.
-
- 04 Nov, 2016 1 commit
-
-
Jaydeep Patil authored
The patch generates MIPS.abiflags section. This section contains a versioned data structure with essential information required for loader to determine the requirements of the application. R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2471883005 . Patch from Jaydeep Patil <jaydeep.patil@imgtec.com>.
-
- 03 Nov, 2016 1 commit
-
-
Nicolas Capens authored
BUG=swiftshader:15 Change-Id: I8e53f2fdb8208f8be0f4cdff3241b4a5efe9bc8a Reviewed-on: https://chromium-review.googlesource.com/404352Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Jim Stichnoth <stichnot@chromium.org>
-
- 02 Nov, 2016 2 commits
-
-
Stefan Maksimovic authored
Implemets Stacksave/Stackrestore; test_stacksave runs successfully when jal implementation is present, both in forceasm as well as in elf mode R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2455933002 . Patch from Stefan Maksimovic <makdstefan@gmail.com>.
-
Jaydeep Patil authored
The patch fixes legalizeToReg issues in vector code generation. The patch also generates JALR for pointer to function and corrects encoding of FP conditional move instruction. R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2468133002 . Patch from Jaydeep Patil <jaydeep.patil@imgtec.com>.
-
- 01 Nov, 2016 3 commits
-
-
Nicolas Capens authored
BUG=swiftshader:15 Change-Id: Ic120eddd1761e33b7d76bf3ed8ec5ca74634f958 Reviewed-on: https://chromium-review.googlesource.com/403477Reviewed-by:
Jim Stichnoth <stichnot@chromium.org> Tested-by:
Nicolas Capens <nicolascapens@google.com>
-
Nicolas Capens authored
BUG=swiftshader:15 Change-Id: Ib822b50c0a14e5ebc114db9759cbeecbb9f7a3c1 Reviewed-on: https://chromium-review.googlesource.com/403472Reviewed-by:
Jim Stichnoth <stichnot@chromium.org> Tested-by:
Nicolas Capens <nicolascapens@google.com>
-
Nicolas Capens authored
BUG=swiftshader:15 Change-Id: Ib89d628c85696c20a249b8810cd357a292d10402 Reviewed-on: https://chromium-review.googlesource.com/405293Reviewed-by:
Jim Stichnoth <stichnot@chromium.org> Tested-by:
Nicolas Capens <nicolascapens@google.com>
-