towards multi-arch
This commit is contained in:
30
arch/riscv/bootcode/boot.h
Normal file
30
arch/riscv/bootcode/boot.h
Normal file
@ -0,0 +1,30 @@
|
||||
#pragma once
|
||||
|
||||
#if defined(__riscv) && !defined(__CHERI__)
|
||||
#define RISCV 1
|
||||
#define ARCH_ASM_CLOBBER_ALL NO_CAP_REGS
|
||||
|
||||
#elif defined(__riscv) && defined(__CHERI__)
|
||||
#define RISCVCHERI 1
|
||||
#define ARCH_ASM_CLOBBER_ALL NO_CAPS_REGS, CAP_REGS
|
||||
|
||||
#else
|
||||
#warning compiling for unknown architecture, using stdlib malloc.
|
||||
#endif
|
||||
|
||||
#define NO_CAP_REGS "ra","sp","gp","tp","t0","t1","t2","t3","t4","t5","t6","s0","s1","s2","s3","s4","s5","s6","s7","s8","s9","s10","s11","a0","a1","a2","a3","a4","a5","a6","a7"
|
||||
|
||||
#define CAP_REGS "cra","csp","cgp","ctp","ct0","ct1","ct2","ct3","ct4","ct5","ct6","cs0","cs1","cs2","cs3","cs4","cs5","cs6","cs7","cs8","cs9","cs10","cs11","ca0","ca1","ca2","ca3","ca4","ca5","ca6","ca7"
|
||||
|
||||
#ifndef __ASSEMBLER__
|
||||
|
||||
#if __riscv_xlen == 32
|
||||
typedef unsigned int size_t;
|
||||
#elif __riscv_xlen == 64
|
||||
typedef unsigned long size_t;
|
||||
#elif DEBUG
|
||||
#else
|
||||
#warning Unknown __riscv_xlen value
|
||||
typedef unsigned long size_t;
|
||||
#endif
|
||||
#endif
|
||||
Reference in New Issue
Block a user