Renaming xe::cpu::frontend to xe::cpu::ppc.
This commit is contained in:
parent
9273359cdd
commit
15816327b4
|
@ -277,7 +277,7 @@ void X64Emitter::MarkSourceOffset(const Instr* i) {
|
||||||
|
|
||||||
void X64Emitter::EmitGetCurrentThreadId() {
|
void X64Emitter::EmitGetCurrentThreadId() {
|
||||||
// rcx must point to context. We could fetch from the stack if needed.
|
// rcx must point to context. We could fetch from the stack if needed.
|
||||||
mov(ax, word[rcx + offsetof(frontend::PPCContext, thread_id)]);
|
mov(ax, word[rcx + offsetof(ppc::PPCContext, thread_id)]);
|
||||||
}
|
}
|
||||||
|
|
||||||
void X64Emitter::EmitTraceUserCallReturn() {}
|
void X64Emitter::EmitTraceUserCallReturn() {}
|
||||||
|
@ -482,7 +482,7 @@ void X64Emitter::CallExtern(const hir::Instr* instr, const Function* function) {
|
||||||
// rcx = context
|
// rcx = context
|
||||||
// rdx = target host function
|
// rdx = target host function
|
||||||
mov(rdx, reinterpret_cast<uint64_t>(extern_function->extern_handler()));
|
mov(rdx, reinterpret_cast<uint64_t>(extern_function->extern_handler()));
|
||||||
mov(r8, qword[rcx + offsetof(cpu::frontend::PPCContext, kernel_state)]);
|
mov(r8, qword[rcx + offsetof(ppc::PPCContext, kernel_state)]);
|
||||||
auto thunk = backend()->guest_to_host_thunk();
|
auto thunk = backend()->guest_to_host_thunk();
|
||||||
mov(rax, reinterpret_cast<uint64_t>(thunk));
|
mov(rax, reinterpret_cast<uint64_t>(thunk));
|
||||||
call(rax);
|
call(rax);
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
|
|
||||||
#include "xenia/base/profiling.h"
|
#include "xenia/base/profiling.h"
|
||||||
#include "xenia/cpu/compiler/compiler.h"
|
#include "xenia/cpu/compiler/compiler.h"
|
||||||
#include "xenia/cpu/frontend/ppc_context.h"
|
#include "xenia/cpu/ppc/ppc_context.h"
|
||||||
#include "xenia/cpu/processor.h"
|
#include "xenia/cpu/processor.h"
|
||||||
|
|
||||||
DECLARE_bool(debug);
|
DECLARE_bool(debug);
|
||||||
|
@ -44,8 +44,8 @@ bool ContextPromotionPass::Initialize(Compiler* compiler) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// This is a terrible implementation.
|
// This is a terrible implementation.
|
||||||
context_values_.resize(sizeof(frontend::PPCContext));
|
context_values_.resize(sizeof(ppc::PPCContext));
|
||||||
context_validity_.resize(static_cast<uint32_t>(sizeof(frontend::PPCContext)));
|
context_validity_.resize(static_cast<uint32_t>(sizeof(ppc::PPCContext)));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "xenia/base/math.h"
|
#include "xenia/base/math.h"
|
||||||
#include "xenia/cpu/frontend/ppc_context.h"
|
#include "xenia/cpu/ppc/ppc_context.h"
|
||||||
|
|
||||||
namespace xe {
|
namespace xe {
|
||||||
namespace cpu {
|
namespace cpu {
|
||||||
|
@ -52,7 +52,7 @@ struct ExportTag {
|
||||||
// DEPRECATED
|
// DEPRECATED
|
||||||
typedef void (*xe_kernel_export_shim_fn)(void*, void*);
|
typedef void (*xe_kernel_export_shim_fn)(void*, void*);
|
||||||
|
|
||||||
typedef void (*ExportTrampoline)(xe::cpu::frontend::PPCContext* ppc_context);
|
typedef void (*ExportTrampoline)(ppc::PPCContext* ppc_context);
|
||||||
|
|
||||||
class Export {
|
class Export {
|
||||||
public:
|
public:
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "xenia/cpu/debug_info.h"
|
#include "xenia/cpu/debug_info.h"
|
||||||
#include "xenia/cpu/frontend/ppc_context.h"
|
#include "xenia/cpu/ppc/ppc_context.h"
|
||||||
#include "xenia/cpu/symbol.h"
|
#include "xenia/cpu/symbol.h"
|
||||||
#include "xenia/cpu/thread_state.h"
|
#include "xenia/cpu/thread_state.h"
|
||||||
#include "xenia/debug/function_trace_data.h"
|
#include "xenia/debug/function_trace_data.h"
|
||||||
|
@ -60,8 +60,7 @@ class Function : public Symbol {
|
||||||
|
|
||||||
class BuiltinFunction : public Function {
|
class BuiltinFunction : public Function {
|
||||||
public:
|
public:
|
||||||
typedef void (*Handler)(frontend::PPCContext* ppc_context, void* arg0,
|
typedef void (*Handler)(ppc::PPCContext* ppc_context, void* arg0, void* arg1);
|
||||||
void* arg1);
|
|
||||||
|
|
||||||
BuiltinFunction(Module* module, uint32_t address);
|
BuiltinFunction(Module* module, uint32_t address);
|
||||||
~BuiltinFunction() override;
|
~BuiltinFunction() override;
|
||||||
|
@ -82,7 +81,7 @@ class BuiltinFunction : public Function {
|
||||||
|
|
||||||
class GuestFunction : public Function {
|
class GuestFunction : public Function {
|
||||||
public:
|
public:
|
||||||
typedef void (*ExternHandler)(frontend::PPCContext* ppc_context,
|
typedef void (*ExternHandler)(ppc::PPCContext* ppc_context,
|
||||||
kernel::KernelState* kernel_state);
|
kernel::KernelState* kernel_state);
|
||||||
|
|
||||||
GuestFunction(Module* module, uint32_t address);
|
GuestFunction(Module* module, uint32_t address);
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "xenia/cpu/frontend/ppc_context.h"
|
#include "xenia/cpu/ppc/ppc_context.h"
|
||||||
|
|
||||||
#include <cinttypes>
|
#include <cinttypes>
|
||||||
#include <cstdlib>
|
#include <cstdlib>
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
namespace xe {
|
namespace xe {
|
||||||
namespace cpu {
|
namespace cpu {
|
||||||
namespace frontend {
|
namespace ppc {
|
||||||
|
|
||||||
std::string PPCContext::GetRegisterName(PPCRegister reg) {
|
std::string PPCContext::GetRegisterName(PPCRegister reg) {
|
||||||
switch (reg) {
|
switch (reg) {
|
||||||
|
@ -150,6 +150,6 @@ bool PPCContext::CompareRegWithString(const char* name, const char* value,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace frontend
|
} // namespace ppc
|
||||||
} // namespace cpu
|
} // namespace cpu
|
||||||
} // namespace xe
|
} // namespace xe
|
|
@ -7,8 +7,8 @@
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef XENIA_CPU_FRONTEND_PPC_CONTEXT_H_
|
#ifndef XENIA_CPU_PPC_PPC_CONTEXT_H_
|
||||||
#define XENIA_CPU_FRONTEND_PPC_CONTEXT_H_
|
#define XENIA_CPU_PPC_PPC_CONTEXT_H_
|
||||||
|
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
#include <mutex>
|
#include <mutex>
|
||||||
|
@ -28,7 +28,7 @@ class KernelState;
|
||||||
|
|
||||||
namespace xe {
|
namespace xe {
|
||||||
namespace cpu {
|
namespace cpu {
|
||||||
namespace frontend {
|
namespace ppc {
|
||||||
|
|
||||||
// Map:
|
// Map:
|
||||||
// 0-31: GPR
|
// 0-31: GPR
|
||||||
|
@ -435,8 +435,8 @@ typedef struct PPCContext_s {
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
static_assert(sizeof(PPCContext) % 64 == 0, "64b padded");
|
static_assert(sizeof(PPCContext) % 64 == 0, "64b padded");
|
||||||
|
|
||||||
} // namespace frontend
|
} // namespace ppc
|
||||||
} // namespace cpu
|
} // namespace cpu
|
||||||
} // namespace xe
|
} // namespace xe
|
||||||
|
|
||||||
#endif // XENIA_CPU_FRONTEND_PPC_CONTEXT_H_
|
#endif // XENIA_CPU_PPC_PPC_CONTEXT_H_
|
|
@ -7,7 +7,7 @@
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "xenia/cpu/frontend/ppc_disasm.h"
|
#include "xenia/cpu/ppc/ppc_disasm.h"
|
||||||
|
|
||||||
#include "xenia/base/assert.h"
|
#include "xenia/base/assert.h"
|
||||||
#include "xenia/base/math.h"
|
#include "xenia/base/math.h"
|
||||||
|
@ -15,7 +15,7 @@
|
||||||
|
|
||||||
namespace xe {
|
namespace xe {
|
||||||
namespace cpu {
|
namespace cpu {
|
||||||
namespace frontend {
|
namespace ppc {
|
||||||
|
|
||||||
void Disasm_0(InstrData* i, StringBuffer* str) {
|
void Disasm_0(InstrData* i, StringBuffer* str) {
|
||||||
str->AppendFormat("%-8s ???", i->type->name);
|
str->AppendFormat("%-8s ???", i->type->name);
|
||||||
|
@ -514,6 +514,6 @@ int DisasmPPC(InstrData* i, StringBuffer* str) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace frontend
|
} // namespace ppc
|
||||||
} // namespace cpu
|
} // namespace cpu
|
||||||
} // namespace xe
|
} // namespace xe
|
|
@ -7,20 +7,20 @@
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef XENIA_CPU_FRONTEND_PPC_DISASM_H_
|
#ifndef XENIA_CPU_PPC_PPC_DISASM_H_
|
||||||
#define XENIA_CPU_FRONTEND_PPC_DISASM_H_
|
#define XENIA_CPU_PPC_PPC_DISASM_H_
|
||||||
|
|
||||||
#include "xenia/base/string_buffer.h"
|
#include "xenia/base/string_buffer.h"
|
||||||
#include "xenia/cpu/frontend/ppc_instr.h"
|
#include "xenia/cpu/ppc/ppc_instr.h"
|
||||||
|
|
||||||
namespace xe {
|
namespace xe {
|
||||||
namespace cpu {
|
namespace cpu {
|
||||||
namespace frontend {
|
namespace ppc {
|
||||||
|
|
||||||
int DisasmPPC(InstrData* i, StringBuffer* str);
|
int DisasmPPC(InstrData* i, StringBuffer* str);
|
||||||
|
|
||||||
} // namespace frontend
|
} // namespace ppc
|
||||||
} // namespace cpu
|
} // namespace cpu
|
||||||
} // namespace xe
|
} // namespace xe
|
||||||
|
|
||||||
#endif // XENIA_CPU_FRONTEND_PPC_DISASM_H_
|
#endif // XENIA_CPU_PPC_PPC_DISASM_H_
|
|
@ -7,16 +7,16 @@
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef XENIA_CPU_FRONTEND_PPC_EMIT_PRIVATE_H_
|
#ifndef XENIA_CPU_PPC_PPC_EMIT_PRIVATE_H_
|
||||||
#define XENIA_CPU_FRONTEND_PPC_EMIT_PRIVATE_H_
|
#define XENIA_CPU_PPC_PPC_EMIT_PRIVATE_H_
|
||||||
|
|
||||||
#include "xenia/base/logging.h"
|
#include "xenia/base/logging.h"
|
||||||
#include "xenia/cpu/frontend/ppc_emit.h"
|
#include "xenia/cpu/ppc/ppc_emit.h"
|
||||||
#include "xenia/cpu/frontend/ppc_instr.h"
|
#include "xenia/cpu/ppc/ppc_instr.h"
|
||||||
|
|
||||||
namespace xe {
|
namespace xe {
|
||||||
namespace cpu {
|
namespace cpu {
|
||||||
namespace frontend {
|
namespace ppc {
|
||||||
|
|
||||||
#define XEEMITTER(name, opcode, format) int InstrEmit_##name
|
#define XEEMITTER(name, opcode, format) int InstrEmit_##name
|
||||||
|
|
||||||
|
@ -27,8 +27,8 @@ namespace frontend {
|
||||||
XELOGE("Unimplemented instruction: %s", __FUNCTION__); \
|
XELOGE("Unimplemented instruction: %s", __FUNCTION__); \
|
||||||
assert_always("Instruction not implemented");
|
assert_always("Instruction not implemented");
|
||||||
|
|
||||||
} // namespace frontend
|
} // namespace ppc
|
||||||
} // namespace cpu
|
} // namespace cpu
|
||||||
} // namespace xe
|
} // namespace xe
|
||||||
|
|
||||||
#endif // XENIA_CPU_FRONTEND_PPC_EMIT_PRIVATE_H_
|
#endif // XENIA_CPU_PPC_PPC_EMIT_PRIVATE_H_
|
|
@ -7,14 +7,14 @@
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef XENIA_CPU_FRONTEND_PPC_EMIT_H_
|
#ifndef XENIA_CPU_PPC_PPC_EMIT_H_
|
||||||
#define XENIA_CPU_FRONTEND_PPC_EMIT_H_
|
#define XENIA_CPU_PPC_PPC_EMIT_H_
|
||||||
|
|
||||||
#include "xenia/cpu/frontend/ppc_instr.h"
|
#include "xenia/cpu/ppc/ppc_instr.h"
|
||||||
|
|
||||||
namespace xe {
|
namespace xe {
|
||||||
namespace cpu {
|
namespace cpu {
|
||||||
namespace frontend {
|
namespace ppc {
|
||||||
|
|
||||||
void RegisterEmitCategoryAltivec();
|
void RegisterEmitCategoryAltivec();
|
||||||
void RegisterEmitCategoryALU();
|
void RegisterEmitCategoryALU();
|
||||||
|
@ -22,8 +22,8 @@ void RegisterEmitCategoryControl();
|
||||||
void RegisterEmitCategoryFPU();
|
void RegisterEmitCategoryFPU();
|
||||||
void RegisterEmitCategoryMemory();
|
void RegisterEmitCategoryMemory();
|
||||||
|
|
||||||
} // namespace frontend
|
} // namespace ppc
|
||||||
} // namespace cpu
|
} // namespace cpu
|
||||||
} // namespace xe
|
} // namespace xe
|
||||||
|
|
||||||
#endif // XENIA_CPU_FRONTEND_PPC_EMIT_H_
|
#endif // XENIA_CPU_PPC_PPC_EMIT_H_
|
|
@ -7,15 +7,15 @@
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "xenia/cpu/frontend/ppc_emit-private.h"
|
#include "xenia/cpu/ppc/ppc_emit-private.h"
|
||||||
|
|
||||||
#include "xenia/base/assert.h"
|
#include "xenia/base/assert.h"
|
||||||
#include "xenia/cpu/frontend/ppc_context.h"
|
#include "xenia/cpu/ppc/ppc_context.h"
|
||||||
#include "xenia/cpu/frontend/ppc_hir_builder.h"
|
#include "xenia/cpu/ppc/ppc_hir_builder.h"
|
||||||
|
|
||||||
namespace xe {
|
namespace xe {
|
||||||
namespace cpu {
|
namespace cpu {
|
||||||
namespace frontend {
|
namespace ppc {
|
||||||
|
|
||||||
// TODO(benvanik): remove when enums redefined.
|
// TODO(benvanik): remove when enums redefined.
|
||||||
using namespace xe::cpu::hir;
|
using namespace xe::cpu::hir;
|
||||||
|
@ -2440,6 +2440,6 @@ void RegisterEmitCategoryAltivec() {
|
||||||
XEREGISTERINSTR(vxor128, VX128(5, 784));
|
XEREGISTERINSTR(vxor128, VX128(5, 784));
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace frontend
|
} // namespace ppc
|
||||||
} // namespace cpu
|
} // namespace cpu
|
||||||
} // namespace xe
|
} // namespace xe
|
|
@ -7,15 +7,15 @@
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "xenia/cpu/frontend/ppc_emit-private.h"
|
#include "xenia/cpu/ppc/ppc_emit-private.h"
|
||||||
|
|
||||||
#include "xenia/base/assert.h"
|
#include "xenia/base/assert.h"
|
||||||
#include "xenia/cpu/frontend/ppc_context.h"
|
#include "xenia/cpu/ppc/ppc_context.h"
|
||||||
#include "xenia/cpu/frontend/ppc_hir_builder.h"
|
#include "xenia/cpu/ppc/ppc_hir_builder.h"
|
||||||
|
|
||||||
namespace xe {
|
namespace xe {
|
||||||
namespace cpu {
|
namespace cpu {
|
||||||
namespace frontend {
|
namespace ppc {
|
||||||
|
|
||||||
// TODO(benvanik): remove when enums redefined.
|
// TODO(benvanik): remove when enums redefined.
|
||||||
using namespace xe::cpu::hir;
|
using namespace xe::cpu::hir;
|
||||||
|
@ -1304,6 +1304,6 @@ void RegisterEmitCategoryALU() {
|
||||||
XEREGISTERINSTR(srawix, 0x7C000670);
|
XEREGISTERINSTR(srawix, 0x7C000670);
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace frontend
|
} // namespace ppc
|
||||||
} // namespace cpu
|
} // namespace cpu
|
||||||
} // namespace xe
|
} // namespace xe
|
|
@ -7,16 +7,16 @@
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "xenia/cpu/frontend/ppc_emit-private.h"
|
#include "xenia/cpu/ppc/ppc_emit-private.h"
|
||||||
|
|
||||||
#include "xenia/base/assert.h"
|
#include "xenia/base/assert.h"
|
||||||
#include "xenia/cpu/frontend/ppc_context.h"
|
#include "xenia/cpu/ppc/ppc_context.h"
|
||||||
#include "xenia/cpu/frontend/ppc_frontend.h"
|
#include "xenia/cpu/ppc/ppc_frontend.h"
|
||||||
#include "xenia/cpu/frontend/ppc_hir_builder.h"
|
#include "xenia/cpu/ppc/ppc_hir_builder.h"
|
||||||
|
|
||||||
namespace xe {
|
namespace xe {
|
||||||
namespace cpu {
|
namespace cpu {
|
||||||
namespace frontend {
|
namespace ppc {
|
||||||
|
|
||||||
// TODO(benvanik): remove when enums redefined.
|
// TODO(benvanik): remove when enums redefined.
|
||||||
using namespace xe::cpu::hir;
|
using namespace xe::cpu::hir;
|
||||||
|
@ -788,6 +788,6 @@ void RegisterEmitCategoryControl() {
|
||||||
XEREGISTERINSTR(mtmsrd, 0x7C000164);
|
XEREGISTERINSTR(mtmsrd, 0x7C000164);
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace frontend
|
} // namespace ppc
|
||||||
} // namespace cpu
|
} // namespace cpu
|
||||||
} // namespace xe
|
} // namespace xe
|
|
@ -7,15 +7,15 @@
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "xenia/cpu/frontend/ppc_emit-private.h"
|
#include "xenia/cpu/ppc/ppc_emit-private.h"
|
||||||
|
|
||||||
#include "xenia/base/assert.h"
|
#include "xenia/base/assert.h"
|
||||||
#include "xenia/cpu/frontend/ppc_context.h"
|
#include "xenia/cpu/ppc/ppc_context.h"
|
||||||
#include "xenia/cpu/frontend/ppc_hir_builder.h"
|
#include "xenia/cpu/ppc/ppc_hir_builder.h"
|
||||||
|
|
||||||
namespace xe {
|
namespace xe {
|
||||||
namespace cpu {
|
namespace cpu {
|
||||||
namespace frontend {
|
namespace ppc {
|
||||||
|
|
||||||
// TODO(benvanik): remove when enums redefined.
|
// TODO(benvanik): remove when enums redefined.
|
||||||
using namespace xe::cpu::hir;
|
using namespace xe::cpu::hir;
|
||||||
|
@ -579,6 +579,6 @@ void RegisterEmitCategoryFPU() {
|
||||||
XEREGISTERINSTR(fnegx, 0xFC000050);
|
XEREGISTERINSTR(fnegx, 0xFC000050);
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace frontend
|
} // namespace ppc
|
||||||
} // namespace cpu
|
} // namespace cpu
|
||||||
} // namespace xe
|
} // namespace xe
|
|
@ -7,15 +7,15 @@
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "xenia/cpu/frontend/ppc_emit-private.h"
|
#include "xenia/cpu/ppc/ppc_emit-private.h"
|
||||||
|
|
||||||
#include "xenia/base/assert.h"
|
#include "xenia/base/assert.h"
|
||||||
#include "xenia/cpu/frontend/ppc_context.h"
|
#include "xenia/cpu/ppc/ppc_context.h"
|
||||||
#include "xenia/cpu/frontend/ppc_hir_builder.h"
|
#include "xenia/cpu/ppc/ppc_hir_builder.h"
|
||||||
|
|
||||||
namespace xe {
|
namespace xe {
|
||||||
namespace cpu {
|
namespace cpu {
|
||||||
namespace frontend {
|
namespace ppc {
|
||||||
|
|
||||||
// TODO(benvanik): remove when enums redefined.
|
// TODO(benvanik): remove when enums redefined.
|
||||||
using namespace xe::cpu::hir;
|
using namespace xe::cpu::hir;
|
||||||
|
@ -1098,6 +1098,6 @@ void RegisterEmitCategoryMemory() {
|
||||||
XEREGISTERINSTR(icbi, 0x7C0007AC);
|
XEREGISTERINSTR(icbi, 0x7C0007AC);
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace frontend
|
} // namespace ppc
|
||||||
} // namespace cpu
|
} // namespace cpu
|
||||||
} // namespace xe
|
} // namespace xe
|
|
@ -7,18 +7,18 @@
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "xenia/cpu/frontend/ppc_frontend.h"
|
#include "xenia/cpu/ppc/ppc_frontend.h"
|
||||||
|
|
||||||
#include "xenia/base/atomic.h"
|
#include "xenia/base/atomic.h"
|
||||||
#include "xenia/cpu/frontend/ppc_context.h"
|
#include "xenia/cpu/ppc/ppc_context.h"
|
||||||
#include "xenia/cpu/frontend/ppc_disasm.h"
|
#include "xenia/cpu/ppc/ppc_disasm.h"
|
||||||
#include "xenia/cpu/frontend/ppc_emit.h"
|
#include "xenia/cpu/ppc/ppc_emit.h"
|
||||||
#include "xenia/cpu/frontend/ppc_translator.h"
|
#include "xenia/cpu/ppc/ppc_translator.h"
|
||||||
#include "xenia/cpu/processor.h"
|
#include "xenia/cpu/processor.h"
|
||||||
|
|
||||||
namespace xe {
|
namespace xe {
|
||||||
namespace cpu {
|
namespace cpu {
|
||||||
namespace frontend {
|
namespace ppc {
|
||||||
|
|
||||||
void InitializeIfNeeded();
|
void InitializeIfNeeded();
|
||||||
void CleanupOnShutdown();
|
void CleanupOnShutdown();
|
||||||
|
@ -107,6 +107,6 @@ bool PPCFrontend::DefineFunction(GuestFunction* function,
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace frontend
|
} // namespace ppc
|
||||||
} // namespace cpu
|
} // namespace cpu
|
||||||
} // namespace xe
|
} // namespace xe
|
|
@ -7,8 +7,8 @@
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef XENIA_CPU_FRONTEND_PPC_FRONTEND_H_
|
#ifndef XENIA_CPU_PPC_PPC_FRONTEND_H_
|
||||||
#define XENIA_CPU_FRONTEND_PPC_FRONTEND_H_
|
#define XENIA_CPU_PPC_PPC_FRONTEND_H_
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ class Processor;
|
||||||
|
|
||||||
namespace xe {
|
namespace xe {
|
||||||
namespace cpu {
|
namespace cpu {
|
||||||
namespace frontend {
|
namespace ppc {
|
||||||
|
|
||||||
class PPCTranslator;
|
class PPCTranslator;
|
||||||
|
|
||||||
|
@ -55,8 +55,8 @@ class PPCFrontend {
|
||||||
TypePool<PPCTranslator, PPCFrontend*> translator_pool_;
|
TypePool<PPCTranslator, PPCFrontend*> translator_pool_;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace frontend
|
} // namespace ppc
|
||||||
} // namespace cpu
|
} // namespace cpu
|
||||||
} // namespace xe
|
} // namespace xe
|
||||||
|
|
||||||
#endif // XENIA_CPU_FRONTEND_PPC_FRONTEND_H_
|
#endif // XENIA_CPU_PPC_PPC_FRONTEND_H_
|
|
@ -7,7 +7,7 @@
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "xenia/cpu/frontend/ppc_hir_builder.h"
|
#include "xenia/cpu/ppc/ppc_hir_builder.h"
|
||||||
|
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
|
|
||||||
|
@ -16,16 +16,16 @@
|
||||||
#include "xenia/base/memory.h"
|
#include "xenia/base/memory.h"
|
||||||
#include "xenia/base/profiling.h"
|
#include "xenia/base/profiling.h"
|
||||||
#include "xenia/cpu/cpu_flags.h"
|
#include "xenia/cpu/cpu_flags.h"
|
||||||
#include "xenia/cpu/frontend/ppc_context.h"
|
|
||||||
#include "xenia/cpu/frontend/ppc_disasm.h"
|
|
||||||
#include "xenia/cpu/frontend/ppc_frontend.h"
|
|
||||||
#include "xenia/cpu/frontend/ppc_instr.h"
|
|
||||||
#include "xenia/cpu/hir/label.h"
|
#include "xenia/cpu/hir/label.h"
|
||||||
|
#include "xenia/cpu/ppc/ppc_context.h"
|
||||||
|
#include "xenia/cpu/ppc/ppc_disasm.h"
|
||||||
|
#include "xenia/cpu/ppc/ppc_frontend.h"
|
||||||
|
#include "xenia/cpu/ppc/ppc_instr.h"
|
||||||
#include "xenia/cpu/processor.h"
|
#include "xenia/cpu/processor.h"
|
||||||
|
|
||||||
namespace xe {
|
namespace xe {
|
||||||
namespace cpu {
|
namespace cpu {
|
||||||
namespace frontend {
|
namespace ppc {
|
||||||
|
|
||||||
// TODO(benvanik): remove when enums redefined.
|
// TODO(benvanik): remove when enums redefined.
|
||||||
using namespace xe::cpu::hir;
|
using namespace xe::cpu::hir;
|
||||||
|
@ -439,6 +439,6 @@ void PPCHIRBuilder::StoreVR(uint32_t reg, Value* value) {
|
||||||
trace_reg.value = value;
|
trace_reg.value = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace frontend
|
} // namespace ppc
|
||||||
} // namespace cpu
|
} // namespace cpu
|
||||||
} // namespace xe
|
} // namespace xe
|
|
@ -7,8 +7,8 @@
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef XENIA_CPU_FRONTEND_PPC_HIR_BUILDER_H_
|
#ifndef XENIA_CPU_PPC_PPC_HIR_BUILDER_H_
|
||||||
#define XENIA_CPU_FRONTEND_PPC_HIR_BUILDER_H_
|
#define XENIA_CPU_PPC_PPC_HIR_BUILDER_H_
|
||||||
|
|
||||||
#include "xenia/base/string_buffer.h"
|
#include "xenia/base/string_buffer.h"
|
||||||
#include "xenia/cpu/function.h"
|
#include "xenia/cpu/function.h"
|
||||||
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
namespace xe {
|
namespace xe {
|
||||||
namespace cpu {
|
namespace cpu {
|
||||||
namespace frontend {
|
namespace ppc {
|
||||||
|
|
||||||
struct PPCBuiltins;
|
struct PPCBuiltins;
|
||||||
class PPCFrontend;
|
class PPCFrontend;
|
||||||
|
@ -102,8 +102,8 @@ class PPCHIRBuilder : public hir::HIRBuilder {
|
||||||
} trace_info_;
|
} trace_info_;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace frontend
|
} // namespace ppc
|
||||||
} // namespace cpu
|
} // namespace cpu
|
||||||
} // namespace xe
|
} // namespace xe
|
||||||
|
|
||||||
#endif // XENIA_CPU_FRONTEND_PPC_HIR_BUILDER_H_
|
#endif // XENIA_CPU_PPC_PPC_HIR_BUILDER_H_
|
|
@ -7,7 +7,7 @@
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "xenia/cpu/frontend/ppc_instr.h"
|
#include "xenia/cpu/ppc/ppc_instr.h"
|
||||||
|
|
||||||
#include <cinttypes>
|
#include <cinttypes>
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
@ -16,11 +16,11 @@
|
||||||
#include "xenia/base/assert.h"
|
#include "xenia/base/assert.h"
|
||||||
#include "xenia/base/math.h"
|
#include "xenia/base/math.h"
|
||||||
#include "xenia/base/string_buffer.h"
|
#include "xenia/base/string_buffer.h"
|
||||||
#include "xenia/cpu/frontend/ppc_instr_tables.h"
|
#include "xenia/cpu/ppc/ppc_instr_tables.h"
|
||||||
|
|
||||||
namespace xe {
|
namespace xe {
|
||||||
namespace cpu {
|
namespace cpu {
|
||||||
namespace frontend {
|
namespace ppc {
|
||||||
|
|
||||||
std::vector<InstrType*> all_instrs_;
|
std::vector<InstrType*> all_instrs_;
|
||||||
|
|
||||||
|
@ -405,6 +405,6 @@ int RegisterInstrEmit(uint32_t code, InstrEmitFn emit) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace frontend
|
} // namespace ppc
|
||||||
} // namespace cpu
|
} // namespace cpu
|
||||||
} // namespace xe
|
} // namespace xe
|
|
@ -7,8 +7,8 @@
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef XENIA_CPU_FRONTEND_PPC_INSTR_H_
|
#ifndef XENIA_CPU_PPC_PPC_INSTR_H_
|
||||||
#define XENIA_CPU_FRONTEND_PPC_INSTR_H_
|
#define XENIA_CPU_PPC_PPC_INSTR_H_
|
||||||
|
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
@ -18,7 +18,7 @@
|
||||||
|
|
||||||
namespace xe {
|
namespace xe {
|
||||||
namespace cpu {
|
namespace cpu {
|
||||||
namespace frontend {
|
namespace ppc {
|
||||||
|
|
||||||
inline uint32_t make_bitmask(uint32_t a, uint32_t b) {
|
inline uint32_t make_bitmask(uint32_t a, uint32_t b) {
|
||||||
return (static_cast<uint32_t>(-1) >> (31 - b)) & ~((1u << a) - 1);
|
return (static_cast<uint32_t>(-1) >> (31 - b)) & ~((1u << a) - 1);
|
||||||
|
@ -519,8 +519,8 @@ void DumpAllInstrCounts();
|
||||||
InstrType* GetInstrType(uint32_t code);
|
InstrType* GetInstrType(uint32_t code);
|
||||||
int RegisterInstrEmit(uint32_t code, InstrEmitFn emit);
|
int RegisterInstrEmit(uint32_t code, InstrEmitFn emit);
|
||||||
|
|
||||||
} // namespace frontend
|
} // namespace ppc
|
||||||
} // namespace cpu
|
} // namespace cpu
|
||||||
} // namespace xe
|
} // namespace xe
|
||||||
|
|
||||||
#endif // XENIA_CPU_FRONTEND_PPC_INSTR_H_
|
#endif // XENIA_CPU_PPC_PPC_INSTR_H_
|
|
@ -7,18 +7,18 @@
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef XENIA_CPU_FRONTEND_PPC_INSTR_TABLES_H_
|
#ifndef XENIA_CPU_PPC_PPC_INSTR_TABLES_H_
|
||||||
#define XENIA_CPU_FRONTEND_PPC_INSTR_TABLES_H_
|
#define XENIA_CPU_PPC_PPC_INSTR_TABLES_H_
|
||||||
|
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
|
||||||
#include "xenia/base/math.h"
|
#include "xenia/base/math.h"
|
||||||
#include "xenia/base/string_buffer.h"
|
#include "xenia/base/string_buffer.h"
|
||||||
#include "xenia/cpu/frontend/ppc_instr.h"
|
#include "xenia/cpu/ppc/ppc_instr.h"
|
||||||
|
|
||||||
namespace xe {
|
namespace xe {
|
||||||
namespace cpu {
|
namespace cpu {
|
||||||
namespace frontend {
|
namespace ppc {
|
||||||
|
|
||||||
void Disasm_0(InstrData* i, StringBuffer* str);
|
void Disasm_0(InstrData* i, StringBuffer* str);
|
||||||
void Disasm__(InstrData* i, StringBuffer* str);
|
void Disasm__(InstrData* i, StringBuffer* str);
|
||||||
|
@ -1093,8 +1093,8 @@ static InstrType instr_table_scan[] = {
|
||||||
#undef EMPTY
|
#undef EMPTY
|
||||||
|
|
||||||
} // namespace tables
|
} // namespace tables
|
||||||
} // namespace frontend
|
} // namespace ppc
|
||||||
} // namespace cpu
|
} // namespace cpu
|
||||||
} // namespace xe
|
} // namespace xe
|
||||||
|
|
||||||
#endif // XENIA_CPU_FRONTEND_PPC_INSTR_TABLES_H_
|
#endif // XENIA_CPU_PPC_PPC_INSTR_TABLES_H_
|
|
@ -7,7 +7,7 @@
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "xenia/cpu/frontend/ppc_scanner.h"
|
#include "xenia/cpu/ppc/ppc_scanner.h"
|
||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <map>
|
#include <map>
|
||||||
|
@ -15,8 +15,8 @@
|
||||||
#include "xenia/base/logging.h"
|
#include "xenia/base/logging.h"
|
||||||
#include "xenia/base/memory.h"
|
#include "xenia/base/memory.h"
|
||||||
#include "xenia/base/profiling.h"
|
#include "xenia/base/profiling.h"
|
||||||
#include "xenia/cpu/frontend/ppc_frontend.h"
|
#include "xenia/cpu/ppc/ppc_frontend.h"
|
||||||
#include "xenia/cpu/frontend/ppc_instr.h"
|
#include "xenia/cpu/ppc/ppc_instr.h"
|
||||||
#include "xenia/cpu/processor.h"
|
#include "xenia/cpu/processor.h"
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
|
@ -29,7 +29,7 @@
|
||||||
|
|
||||||
namespace xe {
|
namespace xe {
|
||||||
namespace cpu {
|
namespace cpu {
|
||||||
namespace frontend {
|
namespace ppc {
|
||||||
|
|
||||||
PPCScanner::PPCScanner(PPCFrontend* frontend) : frontend_(frontend) {}
|
PPCScanner::PPCScanner(PPCFrontend* frontend) : frontend_(frontend) {}
|
||||||
|
|
||||||
|
@ -366,6 +366,6 @@ std::vector<BlockInfo> PPCScanner::FindBlocks(GuestFunction* function) {
|
||||||
return blocks;
|
return blocks;
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace frontend
|
} // namespace ppc
|
||||||
} // namespace cpu
|
} // namespace cpu
|
||||||
} // namespace xe
|
} // namespace xe
|
|
@ -7,8 +7,8 @@
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef XENIA_CPU_FRONTEND_PPC_SCANNER_H_
|
#ifndef XENIA_CPU_PPC_PPC_SCANNER_H_
|
||||||
#define XENIA_CPU_FRONTEND_PPC_SCANNER_H_
|
#define XENIA_CPU_PPC_PPC_SCANNER_H_
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
namespace xe {
|
namespace xe {
|
||||||
namespace cpu {
|
namespace cpu {
|
||||||
namespace frontend {
|
namespace ppc {
|
||||||
|
|
||||||
class PPCFrontend;
|
class PPCFrontend;
|
||||||
|
|
||||||
|
@ -41,8 +41,8 @@ class PPCScanner {
|
||||||
PPCFrontend* frontend_ = nullptr;
|
PPCFrontend* frontend_ = nullptr;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace frontend
|
} // namespace ppc
|
||||||
} // namespace cpu
|
} // namespace cpu
|
||||||
} // namespace xe
|
} // namespace xe
|
||||||
|
|
||||||
#endif // XENIA_CPU_FRONTEND_PPC_SCANNER_H_
|
#endif // XENIA_CPU_PPC_PPC_SCANNER_H_
|
|
@ -7,7 +7,7 @@
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "xenia/cpu/frontend/ppc_translator.h"
|
#include "xenia/cpu/ppc/ppc_translator.h"
|
||||||
|
|
||||||
#include <gflags/gflags.h>
|
#include <gflags/gflags.h>
|
||||||
|
|
||||||
|
@ -18,11 +18,11 @@
|
||||||
#include "xenia/base/reset_scope.h"
|
#include "xenia/base/reset_scope.h"
|
||||||
#include "xenia/cpu/compiler/compiler_passes.h"
|
#include "xenia/cpu/compiler/compiler_passes.h"
|
||||||
#include "xenia/cpu/cpu_flags.h"
|
#include "xenia/cpu/cpu_flags.h"
|
||||||
#include "xenia/cpu/frontend/ppc_disasm.h"
|
#include "xenia/cpu/ppc/ppc_disasm.h"
|
||||||
#include "xenia/cpu/frontend/ppc_frontend.h"
|
#include "xenia/cpu/ppc/ppc_frontend.h"
|
||||||
#include "xenia/cpu/frontend/ppc_hir_builder.h"
|
#include "xenia/cpu/ppc/ppc_hir_builder.h"
|
||||||
#include "xenia/cpu/frontend/ppc_instr.h"
|
#include "xenia/cpu/ppc/ppc_instr.h"
|
||||||
#include "xenia/cpu/frontend/ppc_scanner.h"
|
#include "xenia/cpu/ppc/ppc_scanner.h"
|
||||||
#include "xenia/cpu/processor.h"
|
#include "xenia/cpu/processor.h"
|
||||||
#include "xenia/debug/debugger.h"
|
#include "xenia/debug/debugger.h"
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ DEFINE_bool(preserve_hir_disasm, true,
|
||||||
|
|
||||||
namespace xe {
|
namespace xe {
|
||||||
namespace cpu {
|
namespace cpu {
|
||||||
namespace frontend {
|
namespace ppc {
|
||||||
|
|
||||||
using xe::cpu::backend::Backend;
|
using xe::cpu::backend::Backend;
|
||||||
using xe::cpu::compiler::Compiler;
|
using xe::cpu::compiler::Compiler;
|
||||||
|
@ -167,7 +167,7 @@ bool PPCTranslator::Translate(GuestFunction* function,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (false) {
|
if (false) {
|
||||||
xe::cpu::frontend::DumpAllInstrCounts();
|
DumpAllInstrCounts();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Emit function.
|
// Emit function.
|
||||||
|
@ -241,6 +241,6 @@ void PPCTranslator::DumpSource(GuestFunction* function,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace frontend
|
} // namespace ppc
|
||||||
} // namespace cpu
|
} // namespace cpu
|
||||||
} // namespace xe
|
} // namespace xe
|
|
@ -7,8 +7,8 @@
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef XENIA_CPU_FRONTEND_PPC_TRANSLATOR_H_
|
#ifndef XENIA_CPU_PPC_PPC_TRANSLATOR_H_
|
||||||
#define XENIA_CPU_FRONTEND_PPC_TRANSLATOR_H_
|
#define XENIA_CPU_PPC_PPC_TRANSLATOR_H_
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
|
|
||||||
namespace xe {
|
namespace xe {
|
||||||
namespace cpu {
|
namespace cpu {
|
||||||
namespace frontend {
|
namespace ppc {
|
||||||
|
|
||||||
class PPCFrontend;
|
class PPCFrontend;
|
||||||
class PPCHIRBuilder;
|
class PPCHIRBuilder;
|
||||||
|
@ -44,8 +44,8 @@ class PPCTranslator {
|
||||||
StringBuffer string_buffer_;
|
StringBuffer string_buffer_;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace frontend
|
} // namespace ppc
|
||||||
} // namespace cpu
|
} // namespace cpu
|
||||||
} // namespace xe
|
} // namespace xe
|
||||||
|
|
||||||
#endif // XENIA_CPU_FRONTEND_PPC_TRANSLATOR_H_
|
#endif // XENIA_CPU_PPC_PPC_TRANSLATOR_H_
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue