1. 26 Jan, 2017 1 commit
  2. 24 Jan, 2017 1 commit
  3. 19 Jan, 2017 1 commit
  4. 17 Jan, 2017 3 commits
    • Implement an intrinsic for nearbyint. · dbf81e0c
      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: 's avatarJim Stichnoth <stichnot@chromium.org>
    • Support 16-byte aligned stack on 32-bit Windows. · 4e679e51
      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: 's avatarJim Stichnoth <stichnot@chromium.org>
    • Always align the stack to the fixed alloca requirements. · a551dfce
      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: 's avatarJim Stichnoth <stichnot@chromium.org>
  5. 11 Jan, 2017 2 commits
    • Subzero, MIPS32: Atomic intrinsics fixes · 298d14e2
      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 .
    • [SubZero] Fix code generation issues occurred in Cross-test and PNaCL smoke-tests · 2bbda7f4
      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 .
  6. 07 Jan, 2017 1 commit
  7. 06 Jan, 2017 1 commit
  8. 27 Dec, 2016 2 commits
    • Subzero: Fix a build error against LLVM trunk. · c78be4ec
      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 .
    • Subzero: Fix build problem against LLVM trunk. · d722ff20
      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 .
  9. 26 Dec, 2016 2 commits
  10. 24 Dec, 2016 1 commit
  11. 23 Dec, 2016 1 commit
  12. 09 Dec, 2016 1 commit
  13. 30 Nov, 2016 1 commit
  14. 28 Nov, 2016 2 commits
  15. 24 Nov, 2016 1 commit
  16. 23 Nov, 2016 1 commit
  17. 22 Nov, 2016 1 commit
  18. 18 Nov, 2016 1 commit
  19. 10 Nov, 2016 1 commit
    • Subzero, MIPS32: Sandbox initial patch · 6e03343b
      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>.
  20. 09 Nov, 2016 1 commit
  21. 07 Nov, 2016 1 commit
  22. 04 Nov, 2016 1 commit
  23. 03 Nov, 2016 1 commit
  24. 02 Nov, 2016 2 commits
  25. 01 Nov, 2016 3 commits
  26. 31 Oct, 2016 1 commit
  27. 28 Oct, 2016 3 commits
  28. 26 Oct, 2016 2 commits
    • [SubZero] Fix f64 to/from i64 moves · a7979bfd
      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>.
    • Fix two-vector unpack case. · a3688eaf
      Nicolas Capens authored
      Bug swiftshader:15
      
      Change-Id: I351268b44491091c271d6c7c5b644cd21ffb623b
      Reviewed-on: https://chromium-review.googlesource.com/403409Reviewed-by: 's avatarJim Stichnoth <stichnot@chromium.org>
      Tested-by: 's avatarNicolas Capens <nicolascapens@google.com>