forked from dolphin-emu/dolphin
		
	git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5251 8ced0084-cf51-0410-be5f-012b33b47a6e
		
			
				
	
	
		
			59 lines
		
	
	
		
			746 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			746 B
		
	
	
	
		
			C++
		
	
	
	
	
	
 | 
						|
#include "Defines.h"
 | 
						|
 | 
						|
u32 GetCR0()
 | 
						|
{
 | 
						|
	u32 var;
 | 
						|
	asm(
 | 
						|
		"mfcr %0"
 | 
						|
		: "=&r"(var)
 | 
						|
		);
 | 
						|
	return var;
 | 
						|
}
 | 
						|
 | 
						|
u32 GetCR(u32 num)
 | 
						|
{
 | 
						|
	u32 var;
 | 
						|
	if(num == 0) // wtf, silly people
 | 
						|
		return GetCR0();
 | 
						|
	else {
 | 
						|
		// TODO: Ugly switch is ugly, was failing otherwise
 | 
						|
		switch (num) {
 | 
						|
			case 1:
 | 
						|
				asm("mcrf 0, 1");
 | 
						|
				break;
 | 
						|
			case 2:
 | 
						|
				asm("mcrf 0, 2");
 | 
						|
				break;
 | 
						|
			case 3:
 | 
						|
				asm("mcrf 0, 3");
 | 
						|
				break;
 | 
						|
			case 4:
 | 
						|
				asm("mcrf 0, 4");
 | 
						|
				break;
 | 
						|
			case 5:
 | 
						|
				asm("mcrf 0, 5");
 | 
						|
				break;
 | 
						|
			case 6:
 | 
						|
				asm("mcrf 0, 6");
 | 
						|
				break;
 | 
						|
			case 7:
 | 
						|
				asm("mcrf 0, 7");
 | 
						|
				break;
 | 
						|
			default:
 | 
						|
				printf("Can this be more than 7?\n");
 | 
						|
				break;
 | 
						|
		}
 | 
						|
		return GetCR0();
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
u32 GetXER()
 | 
						|
{
 | 
						|
	u32 var;
 | 
						|
	asm(
 | 
						|
		"mfxer %0"
 | 
						|
		: "=&r"(var)
 | 
						|
		);
 | 
						|
	return var;
 | 
						|
} |