- 23 Sep, 2016 3 commits
-
-
Sagar Thakur authored
R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2359713003 . Patch from Sagar Thakur <sagar.thakur@imgtec.com>.
-
Srdjan Obucina authored
Implements intrinsic call llvm.cttz for i32 R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2358393004 . Patch from Srdjan Obucina <Srdjan.Obucina@imgtec.com>.
-
Srdjan Obucina authored
Floating point comparison crosstest was failing in filetype=obj mode because of missing breaks in load encoding functions. With this patch, crosstest generator, with vector tests disabled, for parameters --filetype=obj --include=test_fcmp,mips32,native,Om1,base returns TotalTests=123904 Passes=123904 Failures=0 R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2355413008 . Patch from Srdjan Obucina <Srdjan.Obucina@imgtec.com>.
-
- 22 Sep, 2016 3 commits
-
-
Srdjan Obucina authored
Implements intrinsic call llvm.ctlz for i32 R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2354293002 . Patch from Srdjan Obucina <Srdjan.Obucina@imgtec.com>.
-
Srdjan Obucina authored
These two are prerequisites for some intrinsic calls and bitwise operations. R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2356293002 . Patch from Srdjan Obucina <Srdjan.Obucina@imgtec.com>.
-
Srdjan Obucina authored
Removes lowering functions functionalities already covered by genTargetHelperCallFor. Adds error messages for appropriate cases. R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2358123002 . Patch from Srdjan Obucina <Srdjan.Obucina@imgtec.com>.
-
- 21 Sep, 2016 1 commit
-
-
Jaydeep Patil authored
The patch fixes code generation and encoding of floating-point comparison. All floating-point comparison related test in test_fcmp cross test pass (after removing vector related tests): TotalTests=123904 Passes=123904 Failures=0 R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2357143002 . Patch from Jaydeep Patil <jaydeep.patil@imgtec.com>.
-
- 20 Sep, 2016 4 commits
-
-
Srdjan Obucina authored
Implements intrinsic call llvm.trap. R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2351893004 . Patch from Srdjan Obucina <Srdjan.Obucina@imgtec.com>.
-
Srdjan Obucina authored
Patch implements encoding for instructions used for floating point number comparison. R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2350833002 . Patch from Srdjan Obucina <Srdjan.Obucina@imgtec.com>.
-
Jaydeep Patil authored
The patch emits constant pool for float and double constants. R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2351583002 . Patch from Jaydeep Patil <jaydeep.patil@imgtec.com>.
-
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 3 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>
-