mirror of
https://github.com/open-goal/jak-project.git
synced 2024-10-20 21:27:52 -04:00
e5b0541d98
* Add a Release build configuration.
* Batch file alternatives for decomp/gc/gk
For the shell-less, or people with a different Windows configuration.
* all-types.gc: Fix typo.
* gcommon.gc: Typo.
* debugger: use enum class for InstructionInfo::Kind
* decompilerIR: use enum class for IR_Store::Kind
* Update all-types.gc
* decompiler: tab to spaces
* root batch files: update directories
* Use a gitignore inside "log" folder to fix windows crashes
* Revert "Update all-types.gc"
This reverts commit 5ef179bb4e
.
30 lines
1.1 KiB
C++
30 lines
1.1 KiB
C++
#pragma once
|
|
|
|
#include <string>
|
|
#include <vector>
|
|
#include "common/common_types.h"
|
|
#include "goalc/emitter/Instruction.h"
|
|
|
|
struct InstructionInfo {
|
|
emitter::Instruction instruction; //! the actual x86 instruction
|
|
enum class Kind { PROLOGUE, IR, EPILOGUE } kind;
|
|
int ir_idx = -1;
|
|
int offset = -1;
|
|
|
|
InstructionInfo(const emitter::Instruction& _instruction, Kind _kind)
|
|
: instruction(_instruction), kind(_kind) {}
|
|
|
|
InstructionInfo(const emitter::Instruction& _instruction, Kind _kind, int _ir_idx)
|
|
: instruction(_instruction), kind(_kind), ir_idx(_ir_idx) {}
|
|
};
|
|
|
|
std::string disassemble_x86(u8* data, int len, u64 base_addr);
|
|
std::string disassemble_x86(u8* data, int len, u64 base_addr, u64 highlight_addr);
|
|
|
|
std::string disassemble_x86_function(u8* data,
|
|
int len,
|
|
u64 base_addr,
|
|
u64 highlight_addr,
|
|
const std::vector<InstructionInfo>& x86_instructions,
|
|
const std::vector<std::string>& irs,
|
|
bool* had_failure); |