#include <pch.h>
#include "Emu/PPC64Linux/PPC64Converter.h"
#include "Emu/Utility/GenericOperation.h"
#include "Emu/Utility/OpEmulationState.h"
#include "Emu/PPC64Linux/PPC64Info.h"
#include "Emu/PPC64Linux/PPC64OpInfo.h"
#include "Emu/PPC64Linux/PPC64Decoder.h"
#include "Emu/PPC64Linux/PPC64Operation.h"
PPC64Converter.cppのインクルード依存関係図
マクロ定義 | |
#define | D0 PPC64DSTOP(0) |
#define | D1 PPC64DSTOP(1) |
#define | D2 PPC64DSTOP(2) |
#define | MASK_BC(mask_bo) (MASK_B | (mask_bo) << 21) |
#define | MASK_BCLR(mask_bo) (MASK_X10 | (mask_bo) << 21 | 0x3 << 11 | 0x1) |
#define | OPCODE_B(c, aa, lk) (u32)(OPCODE_OP(c) | (aa) << 1 | (lk)) |
#define | OPCODE_BC(c, aa, lk, bo) (u32)(OPCODE_B(c, aa, lk) | (bo) << 21) |
#define | OPCODE_BCLR(c, xo, lk, bo, bh) (u32)(OPCODE_X10(c, xo) | (bo) << 21 | (bh) << 11 | (lk)) |
#define | OPCODE_DCMP(c, L) (u32)(OPCODE_OP(c) | (L) << 21) |
#define | OPCODE_MD(c, x, f) (u32)(OPCODE_OP(c) | (x) << 2 | (f)) |
#define | OPCODE_MDS(c, x, f) (u32)(OPCODE_OP(c) | (x) << 1 | (f)) |
#define | OPCODE_MTCRF(c, xo, crf) (u32)(OPCODE_X10(c, xo) | (crf) << 12) |
#define | OPCODE_MTFSPR(c, xo, spr) (u32)(OPCODE_X10(c, xo) | ((spr) & 0x01f) << 16 | ((spr) & 0x3e0) >> 5 << 11) |
#define | OPCODE_OP(c) (u32)((c) << 26) |
#define | OPCODE_OPF(c, f) (u32)(OPCODE_OP(c) | (f)) |
#define | OPCODE_X10(c, x) (u32)(OPCODE_OP(c) | (x) << 1) |
#define | OPCODE_X10CMP(c, x, L) (u32)(OPCODE_X10(c, x) | (L) << 21) |
#define | OPCODE_X10F(c, x, f) (u32)(OPCODE_X10(c, x) | (f)) |
#define | OPCODE_X10FOE(c, x, oe, f) (u32)(OPCODE_X10OE(c,x,oe) | (f)) |
#define | OPCODE_X10OE(c, x, oe) (u32)(OPCODE_X10(c,x) | (oe) << 10) |
#define | OPCODE_X2(c, x) (u32)(OPCODE_OP(c) | (x)) |
#define | OPCODE_X5(c, x) (u32)(OPCODE_OP(c) | (x) << 1) |
#define | OPCODE_X5F(c, x, f) (u32)(OPCODE_X5(c, x) | (f)) |
#define | OPCODE_XS9(c, x) (u32)(OPCODE_OP(c) | (x) << 2) |
#define | OPCODE_XS9F(c, x, f) (u32)(OPCODE_XS9(c, x) | (f)) |
#define | PPC64DSTOP(n) DstOperand<n> |
#define | PPC64SRCOP(n) SrcOperand<n> |
#define | PPC64SRCOPDOUBLE(n) AsFP< double, SrcOperand<n> > |
#define | PPC64SRCOPFLOAT(n) Cast< float, AsFP< double, SrcOperand<n> > > |
#define | S0 PPC64SRCOP(0) |
#define | S1 PPC64SRCOP(1) |
#define | S2 PPC64SRCOP(2) |
#define | S3 PPC64SRCOP(3) |
#define | S4 PPC64SRCOP(4) |
#define | S5 PPC64SRCOP(5) |
#define | SD0 PPC64SRCOPDOUBLE(0) |
#define | SD1 PPC64SRCOPDOUBLE(1) |
#define | SD2 PPC64SRCOPDOUBLE(2) |
#define | SD3 PPC64SRCOPDOUBLE(3) |
#define | SD4 PPC64SRCOPDOUBLE(4) |
#define | SD5 PPC64SRCOPDOUBLE(5) |
#define | SF0 PPC64SRCOPFLOAT(0) |
#define | SF1 PPC64SRCOPFLOAT(1) |
#define | SF2 PPC64SRCOPFLOAT(2) |
#define | SF3 PPC64SRCOPFLOAT(3) |
#define | SF4 PPC64SRCOPFLOAT(4) |
#define | SF5 PPC64SRCOPFLOAT(5) |
#define D0 PPC64DSTOP(0) |
PPC64Converter.cpp の 163 行で定義されています。
#define D1 PPC64DSTOP(1) |
PPC64Converter.cpp の 164 行で定義されています。
#define D2 PPC64DSTOP(2) |
PPC64Converter.cpp の 165 行で定義されています。
#define MASK_BC | ( | mask_bo | ) | (MASK_B | (mask_bo) << 21) |
PPC64Converter.cpp の 91 行で定義されています。
#define MASK_BCLR | ( | mask_bo | ) | (MASK_X10 | (mask_bo) << 21 | 0x3 << 11 | 0x1) |
PPC64Converter.cpp の 92 行で定義されています。
#define OPCODE_B | ( | c, | |||
aa, | |||||
lk | ) | (u32)(OPCODE_OP(c) | (aa) << 1 | (lk)) |
PPC64Converter.cpp の 97 行で定義されています。
#define OPCODE_BC | ( | c, | |||
aa, | |||||
lk, | |||||
bo | ) | (u32)(OPCODE_B(c, aa, lk) | (bo) << 21) |
PPC64Converter.cpp の 98 行で定義されています。
#define OPCODE_BCLR | ( | c, | |||
xo, | |||||
lk, | |||||
bo, | |||||
bh | ) | (u32)(OPCODE_X10(c, xo) | (bo) << 21 | (bh) << 11 | (lk)) |
PPC64Converter.cpp の 112 行で定義されています。
#define OPCODE_DCMP | ( | c, | |||
L | ) | (u32)(OPCODE_OP(c) | (L) << 21) |
PPC64Converter.cpp の 115 行で定義されています。
#define OPCODE_MD | ( | c, | |||
x, | |||||
f | ) | (u32)(OPCODE_OP(c) | (x) << 2 | (f)) |
PPC64Converter.cpp の 100 行で定義されています。
#define OPCODE_MDS | ( | c, | |||
x, | |||||
f | ) | (u32)(OPCODE_OP(c) | (x) << 1 | (f)) |
PPC64Converter.cpp の 101 行で定義されています。
#define OPCODE_MTCRF | ( | c, | |||
xo, | |||||
crf | ) | (u32)(OPCODE_X10(c, xo) | (crf) << 12) |
PPC64Converter.cpp の 117 行で定義されています。
#define OPCODE_MTFSPR | ( | c, | |||
xo, | |||||
spr | ) | (u32)(OPCODE_X10(c, xo) | ((spr) & 0x01f) << 16 | ((spr) & 0x3e0) >> 5 << 11) |
PPC64Converter.cpp の 114 行で定義されています。
#define OPCODE_OP | ( | c | ) | (u32)((c) << 26) |
PPC64Converter.cpp の 95 行で定義されています。
#define OPCODE_OPF | ( | c, | |||
f | ) | (u32)(OPCODE_OP(c) | (f)) |
PPC64Converter.cpp の 96 行で定義されています。
#define OPCODE_X10 | ( | c, | |||
x | ) | (u32)(OPCODE_OP(c) | (x) << 1) |
PPC64Converter.cpp の 105 行で定義されています。
#define OPCODE_X10CMP | ( | c, | |||
x, | |||||
L | ) | (u32)(OPCODE_X10(c, x) | (L) << 21) |
PPC64Converter.cpp の 116 行で定義されています。
#define OPCODE_X10F | ( | c, | |||
x, | |||||
f | ) | (u32)(OPCODE_X10(c, x) | (f)) |
PPC64Converter.cpp の 110 行で定義されています。
#define OPCODE_X10FOE | ( | c, | |||
x, | |||||
oe, | |||||
f | ) | (u32)(OPCODE_X10OE(c,x,oe) | (f)) |
PPC64Converter.cpp の 107 行で定義されています。
#define OPCODE_X10OE | ( | c, | |||
x, | |||||
oe | ) | (u32)(OPCODE_X10(c,x) | (oe) << 10) |
PPC64Converter.cpp の 106 行で定義されています。
#define OPCODE_X2 | ( | c, | |||
x | ) | (u32)(OPCODE_OP(c) | (x)) |
PPC64Converter.cpp の 102 行で定義されています。
#define OPCODE_X5 | ( | c, | |||
x | ) | (u32)(OPCODE_OP(c) | (x) << 1) |
PPC64Converter.cpp の 103 行で定義されています。
#define OPCODE_X5F | ( | c, | |||
x, | |||||
f | ) | (u32)(OPCODE_X5(c, x) | (f)) |
PPC64Converter.cpp の 108 行で定義されています。
#define OPCODE_XS9 | ( | c, | |||
x | ) | (u32)(OPCODE_OP(c) | (x) << 2) |
PPC64Converter.cpp の 104 行で定義されています。
#define OPCODE_XS9F | ( | c, | |||
x, | |||||
f | ) | (u32)(OPCODE_XS9(c, x) | (f)) |
PPC64Converter.cpp の 109 行で定義されています。
#define PPC64DSTOP | ( | n | ) | DstOperand<n> |
PPC64Converter.cpp の 158 行で定義されています。
#define PPC64SRCOP | ( | n | ) | SrcOperand<n> |
PPC64Converter.cpp の 159 行で定義されています。
#define PPC64SRCOPDOUBLE | ( | n | ) | AsFP< double, SrcOperand<n> > |
PPC64Converter.cpp の 161 行で定義されています。
#define PPC64SRCOPFLOAT | ( | n | ) | Cast< float, AsFP< double, SrcOperand<n> > > |
PPC64Converter.cpp の 160 行で定義されています。
#define S0 PPC64SRCOP(0) |
PPC64Converter.cpp の 166 行で定義されています。
#define S1 PPC64SRCOP(1) |
PPC64Converter.cpp の 167 行で定義されています。
#define S2 PPC64SRCOP(2) |
PPC64Converter.cpp の 168 行で定義されています。
#define S3 PPC64SRCOP(3) |
PPC64Converter.cpp の 169 行で定義されています。
#define S4 PPC64SRCOP(4) |
PPC64Converter.cpp の 170 行で定義されています。
#define S5 PPC64SRCOP(5) |
PPC64Converter.cpp の 171 行で定義されています。
#define SD0 PPC64SRCOPDOUBLE(0) |
PPC64Converter.cpp の 178 行で定義されています。
#define SD1 PPC64SRCOPDOUBLE(1) |
PPC64Converter.cpp の 179 行で定義されています。
#define SD2 PPC64SRCOPDOUBLE(2) |
PPC64Converter.cpp の 180 行で定義されています。
#define SD3 PPC64SRCOPDOUBLE(3) |
PPC64Converter.cpp の 181 行で定義されています。
#define SD4 PPC64SRCOPDOUBLE(4) |
PPC64Converter.cpp の 182 行で定義されています。
#define SD5 PPC64SRCOPDOUBLE(5) |
PPC64Converter.cpp の 183 行で定義されています。
#define SF0 PPC64SRCOPFLOAT(0) |
PPC64Converter.cpp の 172 行で定義されています。
#define SF1 PPC64SRCOPFLOAT(1) |
PPC64Converter.cpp の 173 行で定義されています。
#define SF2 PPC64SRCOPFLOAT(2) |
PPC64Converter.cpp の 174 行で定義されています。
#define SF3 PPC64SRCOPFLOAT(3) |
PPC64Converter.cpp の 175 行で定義されています。
#define SF4 PPC64SRCOPFLOAT(4) |
PPC64Converter.cpp の 176 行で定義されています。
#define SF5 PPC64SRCOPFLOAT(5) |
PPC64Converter.cpp の 177 行で定義されています。