mirror of
https://github.com/hedge-dev/XenonRecomp.git
synced 2025-07-26 23:13:54 +00:00
Initial Commit
This commit is contained in:
61
thirdparty/capstone/arch/PowerPC/PPCRegisterInfo.h
vendored
Normal file
61
thirdparty/capstone/arch/PowerPC/PPCRegisterInfo.h
vendored
Normal file
@@ -0,0 +1,61 @@
|
||||
/* Capstone Disassembly Engine, http://www.capstone-engine.org */
|
||||
/* By Rot127 <unisono@quyllur.org> 2022-2023 */
|
||||
|
||||
#ifndef CS_PPC_REGISTERINFO_H
|
||||
#define CS_PPC_REGISTERINFO_H
|
||||
|
||||
#include "PPCMCTargetDesc.h"
|
||||
|
||||
/// stripRegisterPrefix - This method strips the character prefix from a
|
||||
/// register name so that only the number is left. Used by for linux asm.
|
||||
static const char *PPCRegisterInfo_stripRegisterPrefix(const char *RegName)
|
||||
{
|
||||
switch (RegName[0]) {
|
||||
case 'a':
|
||||
if (RegName[1] == 'c' && RegName[2] == 'c')
|
||||
return RegName + 3;
|
||||
break;
|
||||
case 'r':
|
||||
case 'f':
|
||||
case 'v':
|
||||
if (RegName[1] == 's') {
|
||||
if (RegName[2] == 'p')
|
||||
return RegName + 3;
|
||||
return RegName + 2;
|
||||
}
|
||||
return RegName + 1;
|
||||
case 'c':
|
||||
if (RegName[1] == 'r')
|
||||
return RegName + 2;
|
||||
break;
|
||||
case 'w':
|
||||
// For wacc and wacc_hi
|
||||
if (RegName[1] == 'a' && RegName[2] == 'c' &&
|
||||
RegName[3] == 'c') {
|
||||
if (RegName[4] == '_')
|
||||
return RegName + 7;
|
||||
else
|
||||
return RegName + 4;
|
||||
}
|
||||
break;
|
||||
case 'd':
|
||||
// For dmr, dmrp, dmrrow, dmrrowp
|
||||
if (RegName[1] == 'm' && RegName[2] == 'r') {
|
||||
if (RegName[3] == 'r' && RegName[4] == 'o' &&
|
||||
RegName[5] == 'w' && RegName[6] == 'p')
|
||||
return RegName + 7;
|
||||
else if (RegName[3] == 'r' && RegName[4] == 'o' &&
|
||||
RegName[5] == 'w')
|
||||
return RegName + 6;
|
||||
else if (RegName[3] == 'p')
|
||||
return RegName + 4;
|
||||
else
|
||||
return RegName + 3;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return RegName;
|
||||
}
|
||||
|
||||
#endif // CS_PPC_REGISTERINFO_H
|
Reference in New Issue
Block a user