1. 18 Oct, 2021 1 commit
  2. 15 Oct, 2021 2 commits
  3. 07 Oct, 2021 1 commit
  4. 06 Oct, 2021 1 commit
    • Amilendra Kodithuwakku's avatar
      [lld][ELF][Morello] Increase bounds of dynamically relocated executable capabilities · 6423e29a
      Amilendra Kodithuwakku authored
      The executable capabilities created by dynamic relocations used the
      symbol value for the base, and the symbol size as the capability limit.
      This results in the executable capabilities being too narrow that they
      could not call other functions.
      
      Fix this by encoding dynamically relocated executable capabilities in a way
      similar to how the cap relocs for executable capabilities are encoded in the
      static linking case; i.e. set the bounds to cover the .text + .ro + .rel.ro regions.
      6423e29a
  5. 04 Oct, 2021 2 commits
    • Alex Richardson's avatar
      [UPSTREAM] Fix incorrect GEP bitwidth in areNonOverlapSameBaseLoadAndStore() · 9b2ab7d8
      Alex Richardson authored
      When using a datalayout that has pointer index width != pointer size this
      code triggers an assertion in Value::stripAndAccumulateConstantOffsets().
      I encountered this this while compiling FreeBSD for CHERI-RISC-V.
      Also update LoadsTest.cpp to use a DataLayout with index width != pointer
      width to ensure this case is tested.
      
      Differential Revision: https://reviews.llvm.org/D110406
      9b2ab7d8
    • Alex Richardson's avatar
      [UPSTREAM?][CallPromotion] Fix incorrect GEP APInt bitwidths · 998268d1
      Alex Richardson authored
      We should be using the index type not the size of the pointer. This makes
      a difference for architectures such as CHERI where pointers have additional
      metadata bits that are not part of the address.
      I also noticed that CallPromotion was not working for CHERI purecap. This
      is most likely caused by us changing the representation of member function
      pointers and not having updated the internals to handle that.
      998268d1
  6. 01 Oct, 2021 1 commit
  7. 27 Sep, 2021 1 commit
    • Diana Picus's avatar
      [Morello][lldb] Set FP to c17 for descriptor ABI · 68336b18
      Diana Picus authored
      Set the frame pointer to x17 and c17 for the descriptor ABI. At the
      moment, we don't have support for identifying that an application has
      been compiled with the descriptor ABI, so instead we do something a bit
      hacky: add a new target feature. This can be enabled on the command line
      with:
      
      settings set target.aarch64-morello-desc-abi true
      
      It needs to be called *before* launching the process, otherwise it
      won't take effect. It also doesn't affect certain parts of the Python
      API, as used in TestCapabilityOperation.py, and probably in other
      scenarios too. We can fix these when Android supports building
      descriptor ABI apps, so we can actually test something.
      
      Needs more testing.
      68336b18
  8. 23 Sep, 2021 1 commit
    • Diana Picus's avatar
      [Morello][lldb] Fix end-to-end tests · 2ea9fbc7
      Diana Picus authored
      The tests are currently broken because lldb needs to be able to find
      the source files in order to set breakpoints. The debug information uses
      paths relative to the Android source tree. But since we have made it
      possible to run the tests independently of an Android source tree, and
      we no longer 'cd' to it in each test, lldb gets understandably lost.
      
      This patch fixes the issue by adding an ORIGINAL_SOURCE_PREFIX variable,
      which is used by the test runner to add a source mapping from the
      original source locations (i.e. those relative to the Android source
      tree) to the current source locations (i.e. relative to the test runner
      itself).
      2ea9fbc7
  9. 02 Sep, 2021 1 commit
  10. 01 Sep, 2021 1 commit
    • Diana Picus's avatar
      [Morello][lldb] Minor fix to end-to-end tests · e3cb3afb
      Diana Picus authored
      Remove 'adb connect', since it's no longer needed and just prints
      errors. This also means we no longer need the ADB_PORT environment
      variable, yay!
      
      Also update the README to mention a potential workaround for "failed to
      get reply to handshake packet" errors.
      e3cb3afb
  11. 27 Aug, 2021 1 commit
  12. 24 Aug, 2021 2 commits
  13. 23 Aug, 2021 1 commit
  14. 20 Aug, 2021 1 commit
  15. 19 Aug, 2021 3 commits
  16. 18 Aug, 2021 1 commit
    • Diana Picus's avatar
      [Morello][lldb] Fix register kinds for PCC · 23bb1991
      Diana Picus authored
      The PCC register was defined using a DEFINE_CAP_PCC macro, which
      differed from the DEFINE_CAP macro used for most other capability
      registers only in terms of the register kinds. In the case of
      DEFINE_CAP_PCC, these were defined via LLDB_KIND, which set everything
      to LLDB_INVALID_REGNUM (completely ignoring the generic_kind parameter).
      
      This patch fixes the issue by using DEFINE_CAP, which correctly sets up
      the expected register kinds for PCC.
      
      Fixing the generic register kind for PCC exposes another issue in
      ABISysV_arm64::GetFrameState. The logic there was that if the register
      context does not have a PCC, then we don't have capabilities and the
      frame state is eFrameStateSimple. If the register context does have
      a PCC but we fail to read it, that would be an error and we should
      return false. The problem is that when reading a plain AArch64 core
      file, we will not be able to read PCC from it - however the register
      context would still contain a PCC register in that case, because we
      always add the capability registers to non-dynamic AArch64 register
      contexts. Therefore, instead of erroring out, we make the same
      assumption as before - that the frame state is simple and we're not
      supposed to use capabilities.
      23bb1991
  17. 17 Aug, 2021 2 commits
  18. 13 Aug, 2021 2 commits
  19. 12 Aug, 2021 1 commit
  20. 11 Aug, 2021 1 commit
  21. 09 Aug, 2021 4 commits
  22. 04 Aug, 2021 1 commit
  23. 23 Jul, 2021 3 commits
  24. 21 Jul, 2021 2 commits
  25. 19 Jul, 2021 1 commit
  26. 15 Jul, 2021 1 commit
  27. 09 Jul, 2021 1 commit