riscv(interp): add base assembly interpreter VM

This commit is contained in:
gns 2026-08-11 20:36:09 +08:00
parent 5707195b1a
commit 65077e246c
3 changed files with 3705 additions and 4 deletions

View File

@ -37,6 +37,9 @@ LJ_ASMF int lj_vm_cpuid(uint32_t f, uint32_t res[4]);
#if LJ_TARGET_PPC #if LJ_TARGET_PPC
void lj_vm_cachesync(void *start, void *end); void lj_vm_cachesync(void *start, void *end);
#endif #endif
#if LJ_TARGET_RISCV64
void lj_vm_fence_rw_rw();
#endif
LJ_ASMF LJ_CONSTF double lj_vm_foldarith(double x, double y, int op); LJ_ASMF LJ_CONSTF double lj_vm_foldarith(double x, double y, int op);
#if LJ_HASJIT #if LJ_HASJIT
LJ_ASMF LJ_CONSTF double lj_vm_foldfpm(double x, int op); LJ_ASMF LJ_CONSTF double lj_vm_foldfpm(double x, int op);

View File

@ -74,7 +74,8 @@ double lj_vm_foldarith(double x, double y, int op)
/* -- Helper functions for generated machine code ------------------------- */ /* -- Helper functions for generated machine code ------------------------- */
#if (LJ_HASJIT && !(LJ_TARGET_ARM || LJ_TARGET_ARM64 || LJ_TARGET_PPC)) || LJ_TARGET_MIPS #if (LJ_HASJIT && !(LJ_TARGET_ARM || LJ_TARGET_ARM64 || LJ_TARGET_PPC)) || LJ_TARGET_MIPS \
|| LJ_TARGET_RISCV64
int32_t LJ_FASTCALL lj_vm_modi(int32_t a, int32_t b) int32_t LJ_FASTCALL lj_vm_modi(int32_t a, int32_t b)
{ {
uint32_t y, ua, ub; uint32_t y, ua, ub;

File diff suppressed because it is too large Load Diff