1. 24 Aug, 2020 1 commit
  2. 23 Aug, 2020 3 commits
  3. 28 Jul, 2020 1 commit
  4. 08 Jul, 2020 1 commit
  5. 01 Jun, 2020 2 commits
  6. 29 May, 2020 4 commits
  7. 26 May, 2020 2 commits
  8. 22 May, 2020 1 commit
  9. 12 May, 2020 1 commit
  10. 29 Apr, 2020 1 commit
  11. 13 Apr, 2020 1 commit
  12. 10 Apr, 2020 1 commit
  13. 28 Feb, 2020 2 commits
  14. 12 Feb, 2020 3 commits
  15. 28 Jan, 2020 1 commit
  16. 14 Jan, 2020 1 commit
  17. 06 Jan, 2020 1 commit
  18. 10 Dec, 2019 2 commits
  19. 06 Dec, 2019 2 commits
  20. 03 Dec, 2019 1 commit
  21. 11 Nov, 2019 4 commits
  22. 07 Nov, 2019 2 commits
  23. 28 Oct, 2019 1 commit
  24. 30 Sep, 2019 1 commit
    • Ian Kronquist's avatar
      Implement bcmp (#315) · 462b73c1
      Ian Kronquist authored
      As of LLVM 9.0, certain calls to memcmp may be converted to bcmp, which I guess
      could save a single subtraction on some architectures. [1]
      
      bcmp is just like memcmp except instead of returning the difference between the
      two differing bytes, it returns non-zero instead. As such, memcmp is a valid
      implementation of bcmp.
      
      If we care about size, bcmp should just call memcmp.
      If we care about speed, we can change bcmp to look like this instead:
      ```rust
      pub unsafe extern "C" fn bcmp(s1: *const u8, s2: *const u8, n: usize) -> i32 {
          let mut i = 0;
          while i < n {
              let a = *s1.offset(i as isize);
              let b = *s2.offset(i as isize);
              if a != b {
                  return 1;
              }
              i += 1;
          }
          0
      }
      ```
      
      In this PR I do not address any changes which may or may not be needed for arm
      aebi as I lack proper test hardware.
      
      [1]: https://releases.llvm.org/9.0.0/docs/ReleaseNotes.html#noteworthy-optimizations
      462b73c1