- 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>
-
- 31 Oct, 2016 1 commit
-
-
Stefan Maksimovic authored
R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2448193008 . Patch from Stefan Maksimovic <makdstefan@gmail.com>.
-
- 28 Oct, 2016 3 commits
-
-
Nicolas Capens authored
Also, their priority is lowered so that registers which are scratch on both Unix and Windows are preferred by the register allocator. BUG=swiftshader:22 Change-Id: Id55d8c8b8c106947e3041a082099069d7c6c6ed0 Reviewed-on: https://chromium-review.googlesource.com/404503Reviewed-by:
Jim Stichnoth <stichnot@chromium.org> Tested-by:
Jim Stichnoth <stichnot@chromium.org>
-
Jaydeep Patil authored
The patch generate Hi, Lo, Jal and data relocations. Instruction encoding of instructions like ldc1, sdc1 etc. has been added. Following tests from cross-test framework were tested successfully: (non-vector, OBJ mode, Om1, O2) mem_intrin TotalTests=114300 Passes=114300 Failures=0 simple_loop TotalTests=102 Passes=102 Failures=0 test_arith TotalTests=49489704 Passes=49489704 Failures=0 test_bitmanip TotalTests=1200 Passes=1200 Failures=0 test_cast TotalTests=7444 Passes=7444 Failures=0 test_fcmp TotalTests=123904 Passes=123904 Failures=0 test_global TotalTests=270 Passes=270 Failures=0 test_icmp TotalTests=3341520 Passes=3341520 Failures=0 test_strengthreduce TotalTests=240 Passes=240 Failures=0 Following tests are disabled as they are either all-vectors or contain unimplemented intrinsic lowering: test_calling_conv test_select test_stacksave test_sync_atomic test_vector_ops R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2446273003 . Patch from Jaydeep Patil <jaydeep.patil@imgtec.com>.
-
Stefan Maksimovic authored
R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2433243003 . Patch from Stefan Maksimovic <makdstefan@gmail.com>.
-
- 26 Oct, 2016 2 commits
-
-
Jaydeep Patil authored
The allocation of Hi/Lo part of i64 on stack has been corrected as per MIPS32 ABI. The patch also fixes ZEXT issues occurred while lowering unsigned operations. Following tests from cross-test framework were testing successfully: (non-vector, ASM mode, Om1, O2) mem_intrin TotalTests=114300 Passes=114300 Failures=0 simple_loop TotalTests=102 Passes=102 Failures=0 test_arith TotalTests=49489704 Passes=49489704 Failures=0 test_bitmanip TotalTests=1200 Passes=1200 Failures=0 test_cast TotalTests=3722 Passes=3722 Failures=0 test_fcmp TotalTests=123904 Passes=123904 Failures=0 test_global TotalTests=270 Passes=270 Failures=0 test_icmp TotalTests=3341520 Passes=3341520 Failures=0 test_strengthreduce TotalTests=240 Passes=240 Failures=0 Following tests are disabled as they are either all-vectors or contain unimplemented intrinsic lowering: test_calling_conv test_select test_stacksave test_sync_atomic test_vector_ops There are couple of fixes to ARM32 and X86 specific files occurred due to compile-time errors. R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2432373002 . Patch from Jaydeep Patil <jaydeep.patil@imgtec.com>.
-
Nicolas Capens authored
Bug swiftshader:15 Change-Id: I351268b44491091c271d6c7c5b644cd21ffb623b Reviewed-on: https://chromium-review.googlesource.com/403409Reviewed-by:
Jim Stichnoth <stichnot@chromium.org> Tested-by:
Nicolas Capens <nicolascapens@google.com>
-