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

[AArch64] Implements loadstores with AArch64 #1723

Merged
merged 7 commits into from Dec 22, 2014

Conversation

Sonicadvance1
Copy link
Contributor

This implements loadstores instructions on the AArch64 recompiler.
They are implemented as both fastmem and slowmem routines, supporting the full range of integer loadstores for PowerPC.

Currently load instructions with update are disabled while I investigate why they don't work, but I don't want it holding back this PR.
This relies on PR #1705 to be merged prior to this.

Sonicadvance1 added a commit to Sonicadvance1/dolphin that referenced this pull request Dec 20, 2014
Sonicadvance1 added a commit to Sonicadvance1/dolphin that referenced this pull request Dec 20, 2014
Sonicadvance1 added a commit to Sonicadvance1/dolphin that referenced this pull request Dec 20, 2014
Generic flag disables the ability to have backpatching supporting.
Also compiles Dolphin with CRC instructions enabled.
Adds the ability to flush the cache and maintain state.
Adds the BindToRegister ability.
Sorts register usage as callee saved used first, reduces dumping pressure when jumping to external routines/interpreter.
Adds a function to store a register, for use when flushing a register that won't be used during the rest of a block.
Moves the backpatch flags and struct to a common location for ARM.
I'm sure there will be more things that use this common ARM location in the future.
This is in a global location now which conflicts with this one.
…dy in PC.

This will be used with idle skipping later.
Sonicadvance1 added a commit to Sonicadvance1/dolphin that referenced this pull request Dec 21, 2014
Sonicadvance1 added a commit to Sonicadvance1/dolphin that referenced this pull request Dec 21, 2014
Sonicadvance1 added a commit to Sonicadvance1/dolphin that referenced this pull request Dec 21, 2014
@Sonicadvance1 Sonicadvance1 changed the title Implements loadstores with AArch64 [AArch64] Implements loadstores with AArch64 Dec 21, 2014
Currently supports only integer loadstores. Floating point loadstores will come later.

This system is semi based on the ARMv7 backpatching routine, where we need to initialize our backpatch routine sizes prior to actually using them so
we know we won't be overwriting any memory.
These instructions are all implemented with fastmem support.
Currently loads with update are disabled due to an issue that I've yet to figure out.
I'm sure I'll figure that out later.
Sonicadvance1 added a commit that referenced this pull request Dec 22, 2014
[AArch64] Implements loadstores with AArch64
@Sonicadvance1 Sonicadvance1 merged commit 4fad742 into dolphin-emu:master Dec 22, 2014
@Sonicadvance1 Sonicadvance1 deleted the AArch64_loadstores branch December 22, 2014 02:46
Sonicadvance1 added a commit to Sonicadvance1/dolphin that referenced this pull request Dec 22, 2014
Sonicadvance1 added a commit to Sonicadvance1/dolphin that referenced this pull request Dec 22, 2014
Buddybenj pushed a commit to Buddybenj/dolphin that referenced this pull request Dec 22, 2014
Buddybenj pushed a commit to Buddybenj/dolphin that referenced this pull request Dec 22, 2014
Buddybenj pushed a commit to Buddybenj/dolphin that referenced this pull request Dec 22, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
1 participant