mirror of
https://github.com/pound-emu/pound.git
synced 2025-12-13 04:36:57 +00:00
36 lines
1.1 KiB
C++
36 lines
1.1 KiB
C++
#include "isa.h"
|
|
#include "Base/Assert.h"
|
|
#include "memory/arena.h"
|
|
|
|
static inline uint8_t* aarch64::memory::gpa_to_hva(aarch64::memory::guest_memory_t* memory, uint64_t gpa)
|
|
{
|
|
ASSERT(nullptr != memory);
|
|
ASSERT(nullptr != memory->base);
|
|
ASSERT(gpa < memory->size);
|
|
uint8_t* hva = memory->base + gpa;
|
|
return hva;
|
|
}
|
|
|
|
void cpuTest()
|
|
{
|
|
aarch64::vcpu_state_t vcpu_states[CPU_CORES] = {};
|
|
memory::arena_t guest_memory_arena = memory::arena_init(GUEST_RAM_SIZE);
|
|
ASSERT(nullptr != guest_memory_arena.data);
|
|
|
|
aarch64::memory::guest_memory_t guest_ram = {};
|
|
guest_ram.base = static_cast<uint8_t*>(guest_memory_arena.data);
|
|
guest_ram.size = guest_memory_arena.capacity;
|
|
|
|
// Outdated Code
|
|
CPU cpu;
|
|
cpu.pc = 0;
|
|
|
|
// Simple ARMv8 program in memory (MOVZ X0, #5; ADD X0, X0, #3; RET)
|
|
// These are placeholders; real encoding will be parsed later
|
|
cpu.write_byte(0, 0x05); // MOVZ placeholder
|
|
cpu.write_byte(4, 0x03); // ADD placeholder
|
|
cpu.write_byte(8, 0xFF); // RET placeholder
|
|
|
|
LOG_INFO(ARM, "{}", cpu.read_byte(0));
|
|
cpu.print_debug_information();
|
|
}
|