1. 21 Feb, 2022 1 commit
  2. 31 Aug, 2021 1 commit
  3. 15 Jun, 2021 1 commit
    • Henrik Gramner's avatar
      x86inc: Support memory operands in src1 in 3-operand instructions · e6497c2a
      Henrik Gramner authored
      Particularly in code that makes heavy use of macros it's possible
      to end up with 3-operand instructions with a memory operand in src1.
      In the case of SSE this works fine due to automatic move insertions,
      but in AVX that fails since memory operands are only allowed in src2.
      
      The main purpose of this feature is to minimize the amount of code
      changes required to facilitate conversion of existing SSE code to AVX.
      e6497c2a
  4. 11 Feb, 2021 1 commit
    • Henrik Gramner's avatar
      x86inc: Add stack probing on Windows · c36b191a
      Henrik Gramner authored
      Large stack allocations on Windows need to use stack probing in order
      to guarantee that all stack memory is committed before accessing it.
      This is done by ensuring that the guard page(s) at the end of the
      currently committed pages are touched prior to any pages beyond that.
      c36b191a
  5. 28 Jan, 2021 1 commit
  6. 21 Aug, 2020 3 commits
  7. 01 Jul, 2020 1 commit
    • Henrik Gramner's avatar
      Fix compilation with nasm 2.15 · 2b567aaa
      Henrik Gramner authored and Jean-Baptiste Kempf's avatar Jean-Baptiste Kempf committed
      %{:} macro operand ranges were broken in nasm 2.15 which causes
      errors when compiling, so avoid using those for now.
      
      Some new warnings regarding use of empty macro parameters has also
      been added, adjust some x86inc code to silence those.
      2b567aaa
  8. 24 Jun, 2020 2 commits
  9. 23 Jun, 2020 1 commit
    • Henrik Gramner's avatar
      x86inc: Add template defines for EVEX broadcasts · 8ec5ff0e
      Henrik Gramner authored
      Broadcasting a memory operand is binary flag, you either broadcast
      or you don't, and there's only a single possible element size for
      any given instruction.
      
      The instruction syntax however requires the broadcast semanticts
      to be explicitly defined, which is an issue when using macros to
      template code for multiple register widhts.
      
      Add some helper defines to alleviate the issue.
      8ec5ff0e
  10. 09 Jun, 2020 1 commit
  11. 20 Jan, 2020 1 commit
  12. 09 Jan, 2020 1 commit
  13. 21 Oct, 2019 1 commit
    • Victorien Le Couviour--Tuffet's avatar
      x86inc: fix LOAD_MM_PERMUTATION for AVX512 · 47790541
      Victorien Le Couviour--Tuffet authored and Henrik Gramner's avatar Henrik Gramner committed
      Pre-permuting the registers in INIT_*MM avx512 (AVX512_MM_PERMUTATION)
      is redondant. It causes the register mapping to be the same as without
      the initial AVX512_MM_PERMUTATION, with the user SWAPs applied.
      
      For example...
      
      INIT_YMM avx512
      SWAP m0, m16
      SAVE_MM_PERMUTATION
      ; do whatever
      LOAD_MM_PERMUTATION
      
      ... would result in m0 mapping to ymm16 instead of ymm0 and m1 to ymm1
      instead of ymm17.
      47790541
  14. 09 Jun, 2019 1 commit
  15. 16 Feb, 2019 2 commits
  16. 27 Jan, 2019 1 commit
  17. 22 Dec, 2018 1 commit
  18. 18 Dec, 2018 1 commit
  19. 06 Dec, 2018 1 commit
  20. 29 Sep, 2018 1 commit
  21. 27 Sep, 2018 1 commit