1. 10 Feb, 2017 1 commit
  2. 03 Feb, 2017 1 commit
  3. 01 Feb, 2017 1 commit
  4. 31 Jan, 2017 3 commits
  5. 26 Jan, 2017 1 commit
  6. 24 Jan, 2017 1 commit
  7. 19 Jan, 2017 1 commit
  8. 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>
  9. 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 .
  10. 07 Jan, 2017 1 commit
  11. 06 Jan, 2017 1 commit
  12. 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 .
  13. 26 Dec, 2016 2 commits
  14. 24 Dec, 2016 1 commit
  15. 23 Dec, 2016 1 commit
  16. 09 Dec, 2016 1 commit
  17. 30 Nov, 2016 1 commit
  18. 28 Nov, 2016 2 commits
  19. 24 Nov, 2016 1 commit
  20. 23 Nov, 2016 1 commit
  21. 22 Nov, 2016 1 commit
  22. 18 Nov, 2016 1 commit
  23. 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>.
  24. 09 Nov, 2016 1 commit
  25. 07 Nov, 2016 1 commit
  26. 04 Nov, 2016 1 commit
  27. 03 Nov, 2016 1 commit
  28. 02 Nov, 2016 2 commits
  29. 01 Nov, 2016 3 commits