add locals for runasm line

This commit is contained in:
pikasTech 2021-10-31 11:08:40 +08:00
parent f578997f2a
commit c84147a098
3 changed files with 11 additions and 9 deletions

View File

@ -166,9 +166,9 @@ TEST(VM, JEZ) {
args_setErrorCode(sysRes, 0);
args_setSysOut(sysRes, (char*)"");
Parameters* globals = New_TinyObj(NULL);
lineAddr = pikaVM_runAsmLine(self, globals, pikaAsm, lineAddr);
lineAddr = pikaVM_runAsmLine(self, globals, pikaAsm, lineAddr);
lineAddr = pikaVM_runAsmLine(self, globals, pikaAsm, lineAddr);
lineAddr = pikaVM_runAsmLine(self, globals, globals, pikaAsm, lineAddr);
lineAddr = pikaVM_runAsmLine(self, globals, globals, pikaAsm, lineAddr);
lineAddr = pikaVM_runAsmLine(self, globals, globals, pikaAsm, lineAddr);
__clearInvokeQueues(globals);
obj_deinit(self);
args_deinit(sysRes);
@ -190,8 +190,8 @@ TEST(VM, JMP) {
args_setErrorCode(sysRes, 0);
args_setSysOut(sysRes, (char*)"");
Parameters* globals = New_TinyObj(NULL);
lineAddr = pikaVM_runAsmLine(self, globals, pikaAsm, lineAddr);
lineAddr = pikaVM_runAsmLine(self, globals, pikaAsm, lineAddr);
lineAddr = pikaVM_runAsmLine(self, globals, globals, pikaAsm, lineAddr);
lineAddr = pikaVM_runAsmLine(self, globals, globals, pikaAsm, lineAddr);
__clearInvokeQueues(globals);
obj_deinit(self);
args_deinit(sysRes);
@ -214,9 +214,9 @@ TEST(VM, JMP_back1) {
args_setErrorCode(sysRes, 0);
args_setSysOut(sysRes, (char*)"");
Parameters* globals = New_TinyObj(NULL);
lineAddr = pikaVM_runAsmLine(self, globals, pikaAsm, lineAddr);
lineAddr = pikaVM_runAsmLine(self, globals, pikaAsm, lineAddr);
lineAddr = pikaVM_runAsmLine(self, globals, pikaAsm, lineAddr);
lineAddr = pikaVM_runAsmLine(self, globals, globals, pikaAsm, lineAddr);
lineAddr = pikaVM_runAsmLine(self, globals, globals, pikaAsm, lineAddr);
lineAddr = pikaVM_runAsmLine(self, globals, globals, pikaAsm, lineAddr);
__clearInvokeQueues(globals);
obj_deinit(self);
args_deinit(sysRes);

View File

@ -514,6 +514,7 @@ int32_t getAddrOffsetFromJmp(char* start, char* code, int32_t jmp) {
int32_t pikaVM_runAsmLine(PikaObj* self,
Parameters* globals,
Parameters* locals,
char* pikaAsm,
int32_t lineAddr) {
Args* buffs = New_strBuff();
@ -595,7 +596,7 @@ Parameters* pikaVM_runAsmWithPars(PikaObj* self,
break;
}
char* thisLine = pikaAsm + lineAddr;
lineAddr = pikaVM_runAsmLine(self, globals, pikaAsm, lineAddr);
lineAddr = pikaVM_runAsmLine(self, globals, locals, pikaAsm, lineAddr);
char* sysOut = args_getSysOut(globals->attributeList);
uint8_t errcode = args_getErrorCode(globals->attributeList);
if (!strEqu("", sysOut)) {

View File

@ -16,6 +16,7 @@ int32_t gotoLastLine(char* start, char* code);
int getThisBlockDeepth(char* start, char* code, int* offset);
int32_t pikaVM_runAsmLine(PikaObj* self,
Parameters* globals,
Parameters* locals,
char* pikaAsm,
int32_t lineAddr);