emulator-sr32.h (778B)
1 // Copyright 2025, Brian Swetland <swetland@frotz.net> 2 // Licensed under the Apache License, Version 2.0. 3 4 #pragma once 5 6 #include <stdint.h> 7 8 typedef struct { 9 int32_t r[32]; 10 uint32_t pc; 11 uint32_t xpc; 12 uint32_t flags; 13 } CpuState; 14 15 #define F_TRACE_FETCH 1 16 #define F_TRACE_REGS 2 17 #define F_TRACE_BRANCH 4 18 #define F_TRACE_IO 8 19 20 uint32_t mem_rd32(uint32_t addr); 21 uint32_t mem_rd16(uint32_t addr); 22 uint32_t mem_rd8(uint32_t addr); 23 void mem_wr32(uint32_t addr, uint32_t val); 24 void mem_wr16(uint32_t addr, uint32_t val); 25 void mem_wr8(uint32_t addr, uint32_t val); 26 27 uint32_t io_rd32(CpuState *s, uint32_t addr); 28 void io_wr32(CpuState *s, uint32_t addr, uint32_t val); 29 30 void do_syscall(CpuState *s, uint32_t n); 31 void do_undef(CpuState *s, uint32_t ins); 32 33 void sr32core(CpuState *s);