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

Build PUSH operation for Data Stack #33

Open
CodyFagley opened this issue Nov 23, 2019 · 0 comments
Open

Build PUSH operation for Data Stack #33

CodyFagley opened this issue Nov 23, 2019 · 0 comments
Labels
enhancement New feature or request

Comments

@CodyFagley
Copy link
Member

CodyFagley commented Nov 23, 2019

Other functionalities within the Xita cross-compiler backend need access to a function that can preserve register data by pushing it temporarily to the data stack.

This should first check to see if another CPU register is available, by querying register stack's size() function. By default, there are 28 available general purpose integer registers in an Xita register stack on ARM64 architecture.

If no registers are available in the active register stack, the data should be kept temporarily in static memory. A typical stack structure would probably suffice, but other structures should be considered as well.

Stack operations in AArch64 need to be aligned to 16-bytes and written in store/load pairs; i.e. two general purpose registers are read/written to the stack per transaction. Some control information may be helpful to store with the data, e.g. function scope ID.

@CodyFagley CodyFagley added the enhancement New feature or request label Nov 23, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant