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

local-patches: sync with xtensa gcc call0 ABI support #1

Open
wants to merge 12 commits into
base: lx106
Choose a base branch
from

Conversation

jcmvbkbc
Copy link

Fixed:

  • possible a7/a15 corruption in functions with 6+ argument words and
    frame pointer enabled;
  • vararg functions;
  • setjmp/longjmp;
  • nested functions;
  • profiling with -pg option (_mcount call);

A bit improved code generation for SP manipulations.

Known broken:

  • __builtin_return_address;
  • __builtin_frame_address for frames other than current.

Unknown:

  • C++ exception handling.

Signed-off-by: Max Filippov [email protected]

jcmvbkbc and others added 12 commits November 10, 2014 17:46
Fixed:
- possible a7/a15 corruption in functions with 6+ argument words and
  frame pointer enabled;
- vararg functions;
- setjmp/longjmp;
- nested functions;
- profiling with -pg option (_mcount call);

A bit improved code generation for SP manipulations.

Known broken:
- __builtin_return_address;
- __builtin_frame_address for frames other than current.

Unknown:
- C++ exception handling.

Signed-off-by: Max Filippov <[email protected]>
xtensa gdb currently cannot query/set privilegad registers. It makes
some sense when gdb is used natively in linux, but not when it's used
with gdbstub on native target (or on QEMU). Mark all special registers
as non-privileged to allow gdb to work with QEMU.

Signed-off-by: Max Filippov <[email protected]>
This matches the version that will be submitted upstream.

Signed-off-by: Max Filippov <[email protected]>
Fixed:
- __builtin_return_address(0) is now correct;
- C++ exception handling.

Known broken:
- __builtin_frame_address for frames other than current.
  Likely won't fix.

Signed-off-by: Max Filippov <[email protected]>
Fixed:
- too big minimal data alignment: now aligns naturally when compiling
  with -Os.

Signed-off-by: Max Filippov <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants