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

Fix Idle Skipping in JitIL. #1073

Merged
merged 1 commit into from Sep 13, 2014
Merged

Conversation

phire
Copy link
Member

@phire phire commented Sep 13, 2014

Has been broken since the flags-opt merge. The idle skipping code in
JitIL was very brittle and depended on the IL of it's inputs not
changing in any way.

flags-opt changed the IR generated by the cmp instruction, which is part
of the idle loop, causing JitIL to break in really weird ways, which
were almost impossible to track down.

This Fixes various wii games crashing/not booting and the Regspill
error on (all?) gamecube mmu games.

@JMC47 Could you do some testing on this?

@@ -138,14 +138,18 @@ void JitILBase::bcx(UGeckoInstruction inst)
else
destination = js.compilerPC + SignExt16(inst.BD << 2);

// Idle skipping:
// The main Idle skipping is done in the LoadStore code, but there is an optimistaion here.

This comment was marked as off-topic.

This comment was marked as off-topic.

@JMC47
Copy link
Contributor

JMC47 commented Sep 13, 2014

I booted all my Wii games on it, they work just fine.

I checked the MMU games. They barely work just like before the flagsopt. So yeah, this basically saves JITIL completely.

@delroth
Copy link
Member

delroth commented Sep 13, 2014

@phire: This comment grants you the permission to merge this pull request whenever you think it is ready. After addressing the remaining comments, click this link to merge.


Fix the typo, and feel free to merge.

@dolphin-emu-bot allowmerge

Has been broken since the flags-opt merge. The idle skipping code in
JitIL was very brittle and depended on the IL of it's inputs not
changing in any way.

flags-opt changed the IR generated by the cmp instruction, which is part
of the idle loop, causing JitIL to break in really weird ways, which
were almost impossible to track down.

This fixes various wii games crashing/not booting and the Regspill
error on (all?) gamecube mmu games.
dolphin-emu-bot added a commit that referenced this pull request Sep 13, 2014
Fix Idle Skipping in JitIL.
@dolphin-emu-bot dolphin-emu-bot merged commit d72f61d into dolphin-emu:master Sep 13, 2014
@phire phire deleted the save_jitil2 branch September 13, 2014 16:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
5 participants