spl

systems programming language
git clone http://frotz.net/git/spl.git
Log | Files | Refs | README | LICENSE

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);