Add soft debugger support to s390x (#35781)
authormonojenkins <jo.shields+jenkins@xamarin.com>
Tue, 5 May 2020 09:04:50 +0000 (05:04 -0400)
committerGitHub <noreply@github.com>
Tue, 5 May 2020 09:04:50 +0000 (11:04 +0200)
commit3a0726c07f3a85b52b019f366d842b0b00b29025
tree2e0e079c07fe2e814aff14353512dbc7dd4df767
parentd4280d1564b8e3c2332af1b1828baa3024815aa0
Add soft debugger support to s390x (#35781)

* Add soft debugger support to s390x
  - Implement the sdb trampoline
  - Big-endian fixes for ppdb debugger:
    - Fix utf16 strings
    - Fix decoding of ImageDebugDirectory structures
  - New implementation of OP_SEQ_POINT
  - Enable successful unwind by defining markpoints
  - Implement mono_arch_setup_resume_sighandler_ctx
  - Implement unwind ops in epilog

* Fix delegate-invoke processing
  - Handle up to 10 parameters
  - Use sigparam information to correctly "slide" parameters

* Fix floating point negative zero for s390x
  - Add a new instruction for use in OP_RxCONST -0
  - Check for -0 in constant

* Minor indentation fixes

* Fix atomic add implementation

* Check for additional hardware facilities
src/mono/mono/arch/s390x/s390x-codegen.h
src/mono/mono/metadata/debug-mono-ppdb.c
src/mono/mono/mini/cpu-s390x.md
src/mono/mono/mini/debugger-agent.c
src/mono/mono/mini/exceptions-s390x.c
src/mono/mono/mini/mini-s390x.c
src/mono/mono/mini/mini-s390x.h
src/mono/mono/mini/tramp-s390x.c
src/mono/mono/mini/unwind.c
src/mono/mono/utils/mono-hwcap-s390x.c
src/mono/mono/utils/mono-hwcap-vars.h