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

Covering 128-bits of address space with immediates and labels #2

Open
fwsGonzo opened this issue Sep 19, 2021 · 1 comment
Open

Covering 128-bits of address space with immediates and labels #2

fwsGonzo opened this issue Sep 19, 2021 · 1 comment
Labels
enhancement New feature or request

Comments

@fwsGonzo
Copy link
Owner

fwsGonzo commented Sep 19, 2021

Right now there are special pseudo-instructions meant to help with:

  1. Loading large integer into register
  2. Loading large addresses into register
  3. Calling large address using JALR by building address in register

These helpful functions right now cover only 32-bits of address space, however they should cover up to 128-bits. It's a bit hard to see right now how this should be done without using a lot of unnecessary registers.

One note about the farcall instruction is that it avoids loading the integer, because it uses the immedate of the JALR instruction to build the 32-bit value, saving an instruction.

If nothing else, maybe we can solve this by just adding la64 and la128 variants that assume you know the distance is great.

@fwsGonzo fwsGonzo added the enhancement New feature or request label Sep 19, 2021
@fwsGonzo
Copy link
Owner Author

For now there is the set pseudo-instruction which uses an intermediate register to build large constants.

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