clang format

This commit is contained in:
inixyz
2023-10-18 20:42:14 +03:00
parent c47cf4cf01
commit c65ec1cd77

View File

@@ -18,30 +18,44 @@ typedef struct{
const u32 tinyriscv_MEM_OFFSET = 0x80000000; const u32 tinyriscv_MEM_OFFSET = 0x80000000;
////////////////////////////////////////////////////////////////////////////////
static inline u8 load8(const u8* mem, const u32 addr){ static inline u8 load8(const u8* mem, const u32 addr){
return mem[addr - tinyriscv_MEM_OFFSET]; return mem[addr - tinyriscv_MEM_OFFSET];
} }
////////////////////////////////////////////////////////////////////////////////
static inline u16 load16(const u8* mem, const u32 addr){ static inline u16 load16(const u8* mem, const u32 addr){
return *(u16*)(mem + addr - tinyriscv_MEM_OFFSET); return *(u16*)(mem + addr - tinyriscv_MEM_OFFSET);
} }
////////////////////////////////////////////////////////////////////////////////
static inline u32 load32(const u8* mem, const u32 addr){ static inline u32 load32(const u8* mem, const u32 addr){
return *(u32*)(mem + addr - tinyriscv_MEM_OFFSET); return *(u32*)(mem + addr - tinyriscv_MEM_OFFSET);
} }
////////////////////////////////////////////////////////////////////////////////
static inline void store8(u8* mem, const u32 addr, const u8 val){ static inline void store8(u8* mem, const u32 addr, const u8 val){
mem[addr - tinyriscv_MEM_OFFSET] = val; mem[addr - tinyriscv_MEM_OFFSET] = val;
} }
////////////////////////////////////////////////////////////////////////////////
static inline void store16(u8* mem, const u32 addr, const u16 val){ static inline void store16(u8* mem, const u32 addr, const u16 val){
*(u16*)(mem + addr - tinyriscv_MEM_OFFSET) = val; *(u16*)(mem + addr - tinyriscv_MEM_OFFSET) = val;
} }
////////////////////////////////////////////////////////////////////////////////
static inline void store32(u8* mem, const u32 addr, const u32 val){ static inline void store32(u8* mem, const u32 addr, const u32 val){
*(u32*)(mem + addr - tinyriscv_MEM_OFFSET) = val; *(u32*)(mem + addr - tinyriscv_MEM_OFFSET) = val;
} }
////////////////////////////////////////////////////////////////////////////////
void tinyriscv_b_type(u32* pc, const u8 func3, const u32 x[32], const u8 rs1, void tinyriscv_b_type(u32* pc, const u8 func3, const u32 x[32], const u8 rs1,
const u8 rs2, const i16 imm){ const u8 rs2, const i16 imm){
@@ -55,6 +69,8 @@ void tinyriscv_b_type(u32* pc, const u8 func3, const u32 x[32], const u8 rs1,
} }
} }
////////////////////////////////////////////////////////////////////////////////
void tinyriscv_l_type(const u8* mem, const u8 func3, u32 x[32], const u8 rd, void tinyriscv_l_type(const u8* mem, const u8 func3, u32 x[32], const u8 rd,
const u8 rs1, const i16 imm){ const u8 rs1, const i16 imm){
@@ -69,6 +85,8 @@ void tinyriscv_l_type(const u8* mem, const u8 func3, u32 x[32], const u8 rd,
} }
} }
////////////////////////////////////////////////////////////////////////////////
void tinyriscv_s_type(u8* mem, const u8 func3, const u32 x[32], const u8 rs1, void tinyriscv_s_type(u8* mem, const u8 func3, const u32 x[32], const u8 rs1,
const u8 rs2, const i16 imm){ const u8 rs2, const i16 imm){
@@ -81,6 +99,8 @@ void tinyriscv_s_type(u8* mem, const u8 func3, const u32 x[32], const u8 rs1,
} }
} }
////////////////////////////////////////////////////////////////////////////////
void tinyriscv_i_type(const u8 func3, const u8 func7, u32 x[32], const u8 rd, void tinyriscv_i_type(const u8 func3, const u8 func7, u32 x[32], const u8 rd,
const u8 rs1, const i16 imm, const u8 shamt){ const u8 rs1, const i16 imm, const u8 shamt){
@@ -103,6 +123,8 @@ void tinyriscv_i_type(const u8 func3, const u8 func7, u32 x[32], const u8 rd,
} }
} }
////////////////////////////////////////////////////////////////////////////////
void tinyriscv_r_type(const u8 func3, const u8 func7, u32 x[32], const u8 rd, void tinyriscv_r_type(const u8 func3, const u8 func7, u32 x[32], const u8 rd,
const u8 rs1, const u8 rs2){ const u8 rs1, const u8 rs2){
@@ -126,6 +148,8 @@ void tinyriscv_r_type(const u8 func3, const u8 func7, u32 x[32], const u8 rd,
} }
} }
////////////////////////////////////////////////////////////////////////////////
void tinyriscv_step(tinyriscv_hart* hart){ void tinyriscv_step(tinyriscv_hart* hart){
//fetch //fetch
const u32 inst = load32(hart->mem, hart->pc); const u32 inst = load32(hart->mem, hart->pc);
@@ -155,9 +179,9 @@ void tinyriscv_step(tinyriscv_hart* hart){
case /*AUIPC*/ 0x17: hart->x[rd] = hart->pc - 4 + (inst & 0xfffff000); break; case /*AUIPC*/ 0x17: hart->x[rd] = hart->pc - 4 + (inst & 0xfffff000); break;
case /*JAL*/ 0x6f: hart->x[rd] = hart->pc; hart->pc += imm_j - 4; break; case /*JAL*/ 0x6f: hart->x[rd] = hart->pc; hart->pc += imm_j - 4; break;
case /*JALR*/ 0x67: case /*JALR*/ 0x67:
const u32 last_pc = hart->pc; const u32 ret_addr = hart->pc;
hart->pc = (hart->x[rs1] + (i32)imm_i) & 0xfffffffe; hart->pc = (hart->x[rs1] + (i32)imm_i) & 0xfffffffe;
hart->x[rd] = last_pc; hart->x[rd] = ret_addr;
break; break;
case 0x63: tinyriscv_b_type(&hart->pc, func3, hart->x, rs1, rs2, imm_b); break; case 0x63: tinyriscv_b_type(&hart->pc, func3, hart->x, rs1, rs2, imm_b); break;
@@ -168,9 +192,13 @@ void tinyriscv_step(tinyriscv_hart* hart){
} }
} }
////////////////////////////////////////////////////////////////////////////////
void tinyriscv_init(tinyriscv_hart* hart){ void tinyriscv_init(tinyriscv_hart* hart){
hart->x[2] = tinyriscv_MEM_OFFSET + hart->mem_size; hart->x[2] = tinyriscv_MEM_OFFSET + hart->mem_size;
hart->pc = tinyriscv_MEM_OFFSET; hart->pc = tinyriscv_MEM_OFFSET;
} }
////////////////////////////////////////////////////////////////////////////////
#endif //TINYRISCV_H #endif //TINYRISCV_H