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

gcc-4.9: port AmigaOS specific code from gcc 2.95.3 #26

Open
cahirwpz opened this issue Feb 16, 2016 · 0 comments
Open

gcc-4.9: port AmigaOS specific code from gcc 2.95.3 #26

cahirwpz opened this issue Feb 16, 2016 · 0 comments
Labels

Comments

@cahirwpz
Copy link
Member

gcc-amigaos
libnix

Code generation options:

  • -msmall-code - all branches use only 16-bit displacement, thus all code must fit into 64KiB,
  • -fbaserel - data and bss segments are addressed through a4 register with 16-bit displacement, thus merged size of data and bss must be below 64KiB,
  • -fbaserel32- data and bss segments are addressed through a4 register with displacement of 32-bit.

Function attributes:

  • saveds - restore a4 register in any function called from outside where the register could've been trashed,
  • regparm - pass arguments to function in registers if possible,
  • interrupt - use rte instead of rts and save scratch registers on stack,
  • amiga_interrupt - set condition codes before returning to AmigaOS interrupt handler.

Explicit register specification:

  • modify parser to support asm keyword after function argument,
  • modify code that generates function prologue / epilogue.
@cahirwpz cahirwpz changed the title gcc-4.9: port AmigaOS specific code from gcc-2.95.3 gcc-4.9: port AmigaOS specific code from gcc 2.95.3 Feb 16, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant