- 20 Sep, 2016 1 commit
-
-
Srdjan Obucina authored
Patch implements lowerUnreachable and encoding for teq instruction. To avoid duplicated code, class describing trap instruction is borrowed from https://codereview.chromium.org/2339323004/ Review URL: https://codereview.chromium.org/2350903002 . Patch from Srdjan Obucina <Srdjan.Obucina@imgtec.com>.
-
- 19 Sep, 2016 3 commits
-
-
Jaydeep Patil authored
Use DIV/DIVU instructions provided by MIPS32 ISA instead of calling target helper function (__divsi3 etc.). These instructions give 32-bit quotient and remainder in 32-bit special LO/HI registers respectively. An additional instructions to check for divide-by-zero (Trap if equal) is emitted after the DIV/DIVU instructions. R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2339323004 . Patch from Jaydeep Patil <jaydeep.patil@imgtec.com>.
-
Nicolas Capens authored
BUG=swiftshader:9 Change-Id: Ie58412c13991143c1ee39f3a122475bf93ead242 Reviewed-on: https://chromium-review.googlesource.com/385117Reviewed-by:
Jim Stichnoth <stichnot@chromium.org> Tested-by:
Nicolas Capens <nicolascapens@google.com>
-
Nicolas Capens authored
Previously all unsandboxed 64-bit code was assumed to use ILP32 and be stored in ELF32 format using the x32 ABI. BUG=swiftshader:9 Change-Id: I2476a09d1f0af60b1ac6f8807ee9ed37d54a99d4 Reviewed-on: https://chromium-review.googlesource.com/385277Reviewed-by:
Jim Stichnoth <stichnot@chromium.org> Tested-by:
Nicolas Capens <nicolascapens@google.com>
-
- 18 Sep, 2016 2 commits
-
-
Srdjan Obucina authored
Patch implements improvements and instruction encodings for many COP1 instructions for handling floating point values. Patch covers load, store, basic arithmetic, data movement for FPR<->FPR, GPR<->FPR, FPR<->GPR, and format conversion instructinos. Added instruction encodings: Load: lb, lh, lwc1, ldc1 Store: sb, sh, swc1, sdc1 FP arith: abs_d, abs_s, add_d, add_s, div_d, div_s, mul_d, mul_s, sqrt_d, sqrt_s, sub_d, sub_s FP movs: mfc1, mov_d, mov_s, movn_d, movn_s, movz_d, movz_s, mtc1 Conversion: cvt_d_l, cvt_d_s, cvt_d_w, cvt_s_d, cvt_s_l, cvt_s_w, trunc_l_d, trunc_l_s, trunc_w_d, trunc_w_s R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2341713003 . Patch from Srdjan Obucina <Srdjan.Obucina@imgtec.com>.
-
Srdjan Obucina authored
With fix related to stack alignment bytes increasing, it is possible to return mips tests from nacl-other-intrinsics-mips to its original place. However, with existing vector test, O2 test had to be turned off. This does not affect anything imortant, because it only tested one case (test_sqrt_ignored). R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2342083003 . Patch from Srdjan Obucina <Srdjan.Obucina@imgtec.com>.
-
- 16 Sep, 2016 2 commits
-
-
Nicolas Capens authored
This enables other implementations, such as streaming to memory instead of a file. BUG=swiftshader:9 Change-Id: I2a780ee67e9bccd157c120b7a0895d9764117464 Reviewed-on: https://chromium-review.googlesource.com/384911Reviewed-by:
Jim Stichnoth <stichnot@chromium.org> Tested-by:
Nicolas Capens <nicolascapens@google.com>
-
Srdjan Obucina authored
Patch implements randomlyInsertNop for MIPS32. Separate test case added because current test is based on function with vector operands, which MIPS32 does not support yet. run-pnacl-sz.py updated, to pass -z argument to objdump, so it does not hide multiple nops (shows ... instead) between instruction. R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2340733003 . Patch from Srdjan Obucina <Srdjan.Obucina@imgtec.com>.
-
- 14 Sep, 2016 5 commits
-
-
Jim Stichnoth authored
In production autoconf builds (which are the builds that matter), the SUBZERO_REVISION was being calculated based on git history of the top-level native_client repo, rather than the pnacl-subzero repo. BUG= none R=jpp@chromium.org, kschimpf@google.com Review URL: https://codereview.chromium.org/2338943003 .
-
Sagar Thakur authored
The test nacl-other-intrinsics.ll fails with an assertion failure: assert(SpillAreaAlignmentBytes <= MIPS32_STACK_ALIGNMENT_BYTES). This assertion triggers because MIPS32_STACK_ALIGNMENT_BYTES is 8 and SpillAreaAlignmentBytes is 16. The minimum required alignment of stack for MIPS32 is 8 bytes according to the ABI document. Since 16 is aligned to 8, we can safely keep the stack aligned to 16 bytes to fix the test. R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2339683003 . Patch from Sagar Thakur <sagar.thakur@imgtec.com>.
-
Srdjan Obucina authored
Implements lowerSelect for basic integer and float datatypes. Support for i64 will be added as separate patch. Crucial for running crosstests. R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2337023003 . Patch from Srdjan Obucina <Srdjan.Obucina@imgtec.com>.
-
Jim Stichnoth authored
In a similar fashion as https://codereview.chromium.org/1732233002 . BUG= none R=jpp@chromium.org Review URL: https://codereview.chromium.org/2339843002 .
-
Jaydeep Patil authored
The patch implements mtc1/mfc1 instructions which are required for GP to/from FP registers moves. The patch also implements fptosi and sitofp for float and i32 types to test mtc1/mfc1 instructions. R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2316933002 . Patch from Jaydeep Patil <jaydeep.patil@imgtec.com>.
-
- 13 Sep, 2016 4 commits
-
-
Nicolas Capens authored
Instructions are allocated using the ArenaAllocator which uses a memory pool of "slabs", so we can't use the regular C++ delete to deallocate them. Just remove them from the list. This change also provides an override for Inst's operator delete to use the custom allocator, which should currently not be called. BUG=swiftshader:8 Change-Id: Ibb166910402a70e7d9276b28e19b15caf64422f2 Reviewed-on: https://chromium-review.googlesource.com/384336Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Jim Stichnoth <stichnot@chromium.org>
-
Jaydeep Patil authored
The patch implements address optimization for MIPS. R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2313293002 . Patch from Jaydeep Patil <jaydeep.patil@imgtec.com>.
-
Srdjan Obucina authored
This patch implements lowerFcmp, for lowering floating point comparison. R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2047043002 . Patch from Srdjan Obucina <Srdjan.Obucina@imgtec.com>.
-
Jim Stichnoth authored
The movzx instruction in the lowering sequence should not be allowed to be elided. BUG= https://bugs.chromium.org/p/nativeclient/issues/detail?id=4379 R=jpp@chromium.org Review URL: https://codereview.chromium.org/2335933002 .
-
- 11 Sep, 2016 1 commit
-
-
Srdjan Obucina authored
Patch implements truncation and extension of FP values. R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2324903002 . Patch from Srdjan Obucina <Srdjan.Obucina@imgtec.com>.
-
- 10 Sep, 2016 1 commit
-
-
Srdjan Obucina authored
This patch adds ABS.fmt and SQRT.fmt instructions for intrinsic calls. Test cases are copied from nacl-other-intrinsics.ll. R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2325703002 . Patch from Srdjan Obucina <Srdjan.Obucina@imgtec.com>.
-
- 09 Sep, 2016 6 commits
-
-
Srdjan Obucina authored
genTargetHelperCallFor provides framework for calling Subzero runtime functions. This patch implements calls and tests for some of the available functions, but not all. Current lowerCall implementation does not allow more (Handling of FP return values is missing). R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2317653004 . Patch from Srdjan Obucina <srdjan.obucina@imgtec.com>.
-
Jim Stichnoth authored
Adds the right macro voodoo so that when Subzero is built for a single target, e.g.: $ make -f Makefile.standalone SZTARGET=ARM32 we get output like this: $ ./pnacl-sz --build-atts target_ARM32 rather than this: $ ./pnacl-sz --build-atts target_SZTARGET BUG= none R=eholk@chromium.org Review URL: https://codereview.chromium.org/2306273002 .
-
Jim Stichnoth authored
BUG= none TBR=nicolascapens@chromium.org Review URL: https://codereview.chromium.org/2328873003 .
-
Nicolas Capens authored
MSVC's implementation of the STL allocates memory even for an empty vector. Since we're using a custom thread-local allocator, it should be initialized before any STL member containers get initialized. BUG=swiftshader:7 Change-Id: I4bd977e7ee8eb87006fe08b051cbcfc9bc62342b Reviewed-on: https://chromium-review.googlesource.com/381531Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Jim Stichnoth <stichnot@chromium.org>
-
Nicolas Capens authored
As a global, NoDefinitions could get initialized at program startup, which happens specifically with Visual Studio. This causes the progam to abort because its initialization depends on a TLS variable to be (manually) initialized first. Since there's only one use of NoDefinitions, it can be moved to that location and since it's at function scope it only gets constructed at first use. BUG=swiftshader:7 Change-Id: I30801ad0d0ab380ead33069f174bb78dc1b230ab Reviewed-on: https://chromium-review.googlesource.com/379955Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Jim Stichnoth <stichnot@chromium.org>
-
Nicolas Capens authored
Visual Studio 2015 generates an error for using array_lengthof() on a template class member array. Since the array content does not depend on the template types, just make it a global. BUG=swiftshader:7 Change-Id: If197308413f880484be06e6738f246be144d0ba6 Reviewed-on: https://chromium-review.googlesource.com/380501Reviewed-by:
Jim Stichnoth <stichnot@chromium.org> Tested-by:
Nicolas Capens <nicolascapens@google.com>
-
- 08 Sep, 2016 2 commits
-
-
Nicolas Capens authored
BUG=swiftshader:7 Change-Id: If4e1f8269343161f907a62f1fccf6a547f80fc1d Reviewed-on: https://chromium-review.googlesource.com/382371Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Jim Stichnoth <stichnot@chromium.org>
-
Nicolas Capens authored
ConstantInteger32::shouldBeRandomizedOrPooled() was defined in a source file and not resolvable. Move its definition inline. BUG=swiftshader:7 Change-Id: I693ef93a9986e11b4e24f0194c9260f074567b81 Reviewed-on: https://chromium-review.googlesource.com/380422Reviewed-by:
Jim Stichnoth <stichnot@chromium.org> Tested-by:
Nicolas Capens <nicolascapens@google.com>
-
- 07 Sep, 2016 5 commits
-
-
Nicolas Capens authored
BUG=swiftshader:7 Change-Id: I0c51c67b6f19a061dfff83415df5e41ea0efd6de Reviewed-on: https://chromium-review.googlesource.com/380596Reviewed-by:
Jim Stichnoth <stichnot@chromium.org> Tested-by:
Nicolas Capens <nicolascapens@google.com>
-
Nicolas Capens authored
BUG=swiftshader:7 Change-Id: I0ef3b0ab059bd48e0241eea13a5b77a193351108 Reviewed-on: https://chromium-review.googlesource.com/380275Reviewed-by:
Jim Stichnoth <stichnot@chromium.org> Tested-by:
Nicolas Capens <nicolascapens@google.com>
-
Nicolas Capens authored
Visual Studio doesn't recognize the use of a class member in a static constexpr unless prefixed with the class name. BUG=swiftshader:7 Change-Id: I4ffbaa6fc1a43a7294ecdaf426bd7fc2aab5e469 Reviewed-on: https://chromium-review.googlesource.com/380195Reviewed-by:
Jim Stichnoth <stichnot@chromium.org> Tested-by:
Nicolas Capens <nicolascapens@google.com>
-
Nicolas Capens authored
With Visual Studio 2015, the Traits type alias is not considered within scope yet for the constructor's argument list. Instead Use the template argument directly. BUG=swiftshader:7 Change-Id: I677f5bed1a4749aba921a23ed5b1466431147069 Reviewed-on: https://chromium-review.googlesource.com/379915Reviewed-by:
Jim Stichnoth <stichnot@chromium.org> Tested-by:
Nicolas Capens <nicolascapens@google.com>
-
Nicolas Capens authored
BUG=swiftshader:7 Change-Id: If0cfad149ba6ba7bc17708e8a6e5183189eeef5c Reviewed-on: https://chromium-review.googlesource.com/379876Reviewed-by:
Jim Stichnoth <stichnot@chromium.org> Tested-by:
Nicolas Capens <nicolascapens@google.com>
-
- 04 Sep, 2016 1 commit
-
-
Jaydeep Patil authored
This patch implements lowerLoad and extends existing lowerStore for byte, short and floating-point types. The patch also modifies PostLoweringLegalizer for conversion of mov to load or store. R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2301303003 . Patch from Jaydeep Patil <jaydeep.patil@imgtec.com>.
-
- 02 Sep, 2016 4 commits
-
-
Nicolas Capens authored
Visual Studio 2015 does not support the use of typename outside of a template definition. Instead alias the flag's storage type. This even avoids some duplication. BUG=swiftshader:7 Change-Id: I787701f6bfe8e36169e6ac5d63fcb6a1a114bdb0
-
Nicolas Capens authored
-
Jim Stichnoth authored
There are two problems to address: 1. Google developers lack some tooling to test MIPS changes. 2. MIPS developers lack some tooling/packages to allow full "make presubmit" testing. Until all this gets sorted out, we add the "make -f Makefile.standalone MIPS=1" option to control some of the testing targets: check-lit: No changes, as all these lit tests should be runnable in both environments. check-xtest: MIPS=1 runs just the mips32 tests, plus the x8664 native tests as a sanity-check. Non-MIPS runs everything except the mips32 tests. check-spec: MIPS=1 completely disables spec2k testing. presubmit: MIPS=1 greatly reduces the number of tests (especially since so many are spec variants). With this change, mips32 CLs should pass "make -f Makefile.standalone MIPS=1 presubmit" before upload, and other CLs should pass "make -f Makefile.standalone presubmit". BUG= none R=kschimpf@google.com, obucinac@gmail.com Review URL: https://codereview.chromium.org/2271053006 .
-
Nicolas Capens authored
BUG=swiftshader:7 Change-Id: I1c40c10b3c3d032d3f7e0f8634c7c9abcc21d130
-
- 31 Aug, 2016 3 commits
-
-
Jim Stichnoth authored
Currently, TargetLowering::sortVarsByAlignment() uses the variable's required alignment as the primary key, but then std::sort() breaks ties arbitrarily. This can give different results across different STL implementations, for example when building against LLVM trunk versus building in the PNaCl environment. The fix is to use Variable::Number as the secondary key. BUG= none R=kschimpf@google.com Review URL: https://codereview.chromium.org/2295393002 .
-
Jim Stichnoth authored
LLVM commit 1d79fff9e65e77f84bf80c2cf4f0155bd167c90d changed the way ilist::reverse_iterator is converted to ilist::iterator. See https://github.com/llvm-mirror/llvm/commit/1d79fff9e65e77f84bf80c2cf4f0155bd167c90d BUG= none R=kschimpf@google.com Review URL: https://codereview.chromium.org/2297363002 .
-
Jaydeep Patil authored
The patch implements lowerSwitch for i32 and i64 types. R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2289043002 . Patch from Jaydeep Patil <jaydeep.patil@imgtec.com>.
-