Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add -native_exec support for ARM #1582

Open
derekbruening opened this issue Dec 31, 2014 · 1 comment
Open

add -native_exec support for ARM #1582

derekbruening opened this issue Dec 31, 2014 · 1 comment

Comments

@derekbruening
Copy link
Contributor

Split from issue #1551

We need to implement all the glue code, including back_from_native_retstubs, to support -native_exec on ARM.

@derekbruening
Copy link
Contributor Author

I put in some support for going native and not coming back. One major pain point is the TLS swapping. os_should_swap_state():

    /* FIXME i#1852: this should return true, but there is a lot of complexity
     * getting os_switch_seg_to_context() to do the right then when called
     * at main thread init, secondary thread init, early and late injection,
     * and thread exit, since it is fragile with its writes to app TLS.
     */

derekbruening added a commit that referenced this issue Sep 10, 2020
Sets os_should_swap_state() to true.
Adds support for os_swap_context() twice in a row with the same state.
Removes os_swap_context_go_native().

The api.detach test now passes on AArch64.

Enables all of the api.* and api.static_* tests for AArchXX, except
api.startstop( crash) and api.static_prepop (hang) which will be fixed
separately.

Fixes a build error in the api.static_crash test: a missing header.

Issue: #1578, #1582
derekbruening added a commit that referenced this issue Sep 30, 2020
Sets os_should_swap_state() to true.
Adds support for os_swap_context() twice in a row with the same state.
Removes os_swap_context_go_native().

For a no-libc app with NULL TLS (like our pure-asm tests), we leave our
TLS pointer in the register on exit to simplify the exit process for now.
This is a minor transparency issue on detach: going to live with it for now.

The api.detach test now passes on AArch64.

Enables all of the api.* and api.static_* tests for AArchXX, except
api.startstop( crash), api.static_noclient (assert), api.thread_churn
(crash), and api.static_prepop (hang) which will be fixed
separately.

Fixes a build error in the api.static_crash test: a missing header.

Issue: #1578, #1582

Co-authored-by: Abhinav Anil Sharma <sharmaabhinav@google.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant