diff options
author | Vlad Brezae <brezaevlad@gmail.com> | 2020-05-08 17:44:21 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-08 17:44:21 +0300 |
commit | 798f22399e19c6f5dc75a8e338afdabf722cd785 (patch) | |
tree | d832b98d3222c8ab22f680d0da7faabf0640bbb7 /mono/tests | |
parent | 049de7513a894cae5581c35f3ee0b40f9f2d5f1a (diff) |
[interp] Add x86 support (#19730)
* [interp] Aling data to 8 bytes
On x86 linux, double doesn't guarantee 8 byte alignment, which we need since all objects on the vt stack need to be 8 byte aligned. Use padding instead to achieve this.
* [interp] Add x86 support
This mainly consists of a trampoline that is used when calling from interp into native code, as well as the call convention logic that initializes the CallContext structure (which is passed to the trampoline). On other platforms we also have a single trampoline used when entering interpreter code. That trampoline works in a similar way and its purpose is to avoid compilation of all possible interp entry signatures, which is problematic on full aot scenarios. Given the interp x86 support is currently provided for android, we can avoid using that trampoline for now and use the per signature jit compiled interp_in_wrappers instead.
The few disabled interp tests are the same as on amd64.
We only support pinvoke into cdecl functions.
Diffstat (limited to 'mono/tests')
-rwxr-xr-x | mono/tests/Makefile.am | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/mono/tests/Makefile.am b/mono/tests/Makefile.am index 566388ce2e4..ffdf85a2c7f 100755 --- a/mono/tests/Makefile.am +++ b/mono/tests/Makefile.am @@ -2034,6 +2034,14 @@ INTERP_DISABLED_TESTS += \ pinvoke3.exe endif +if X86 +INTERP_DISABLED_TESTS += \ + bug-60862.exe \ + cominterop.exe \ + dim-diamondshape.exe \ + pinvoke3.exe +endif + TESTS_CS=$(filter-out $(DISABLED_TESTS),$(TESTS_CS_SRC:.cs=.exe)) TESTS_IL=$(filter-out $(DISABLED_TESTS),$(TESTS_IL_SRC:.il=.exe)) TESTS_BENCH=$(filter-out $(DISABLED_TESTS),$(TESTS_BENCH_SRC:.cs=.exe)) |