r_memset(label, 0, sizeof(label));
r_snprintf(label, sizeof(label) - 1, "L%07ld__%s:", numname, alphaname);
- return rvm_codegen_addlabel_s(cg, label);
+ return rvm_codegen_addlabel_default_s(cg, label);
}
ruleuid = exp.rulepref->ruleuid;
}
exp.start = rvm_codegen_getcodesize(co->cg);
- exp.startidx = rvm_codegen_addlabel(co->cg, name, namesize);
+ exp.startidx = rvm_codegen_addlabel_default(co->cg, name, namesize);
exp.endidx = rpa_codegen_invalid_add_numlabel_s(co->cg, "__end", exp.start);
exp.successidx = rpa_codegen_invalid_add_numlabel_s(co->cg, "__success", exp.start);
exp.failidx = rpa_codegen_invalid_add_numlabel_s(co->cg, "__fail", exp.start);
rvm_codegen_addins(co->cg, rvm_asm(RVM_MOV, R3, R0, XX, 0)); // |
rvm_codegen_addins(co->cg, rvm_asm(RVM_MOV, R_TOP, R_OTP, XX, 0)); // |
rvm_codegen_index_addrelocins(co->cg, RVM_RELOC_BRANCH, exp.loopidx, rvm_asm(RVM_B, DA, XX, XX, 0)); // |
- rvm_codegen_redefinelabel(co->cg, exp.failidx); // |
+ rvm_codegen_redefinelabel_default(co->cg, exp.failidx); // |
rvm_codegen_addins(co->cg, rvm_asm(RVM_MOV, R_REC, R1, XX, 0)); // <-------------------------------------
rvm_codegen_addins(co->cg, rvm_asm(RVM_MOVS, R0, DA, XX, -1));
rvm_codegen_addins(co->cg, rvm_asm(RVM_BX, LR, XX, XX, 0));
/*
* END FAILED:
*/
- rvm_codegen_redefinelabel(co->cg, exp.endidx);
+ rvm_codegen_redefinelabel_default(co->cg, exp.endidx);
rvm_codegen_addins(co->cg, rvm_asm(RVM_MOV, R3, R_LOO, XX, 0)); // Save LOO to R3 before restoring the old one
rvm_codegen_addins(co->cg, rvm_asm(RVM_POP, R0, XX, XX, 0)); // Pop the accumulated ret, use it to save the status for return
rvm_codegen_addins(co->cg, rvm_asm(RVM_POPM, DA, XX, XX, BIT(R_REC)|BIT(R_LOO)|BIT(R_TOP)|BIT(LR)));
ruleuid = exp.rulepref->ruleuid;
}
exp.start = rvm_codegen_getcodesize(co->cg);
- exp.startidx = rvm_codegen_addlabel(co->cg, name, namesize);
+ exp.startidx = rvm_codegen_addlabel_default(co->cg, name, namesize);
exp.endidx = rpa_codegen_invalid_add_numlabel_s(co->cg, "__end", exp.start);
exp.dataidx = rpa_compiler_addblob(co, exp.start, ruleuid, flags, name, namesize);
rvm_codegen_addins(co->cg, rvm_asm(RVM_MOV, R_REC, R1, XX, 0));
rvm_codegen_addins(co->cg, rvm_asm(RVM_MOVS, R0, DA, XX, -1));
rvm_codegen_addins(co->cg, rvm_asm(RVM_BX, LR, XX, XX, 0));
- rvm_codegen_redefinelabel(co->cg, exp.endidx);
+ rvm_codegen_redefinelabel_default(co->cg, exp.endidx);
rvm_codegen_addins(co->cg, rvm_asm(RVM_POP, LR, XX, XX, 0));
rvm_codegen_addins(co->cg, rvm_asm(RVM_POP, R_TOP, XX, XX, 0));
rvm_codegen_addins(co->cg, rvm_asm(RVM_POP, R_REC, XX, XX, 0));
rvm_codegen_addins(co->cg, rvm_asm(RVM_MOV, R_REC, R1, XX, 0));
rvm_codegen_addins(co->cg, rvm_asm(RVM_MOVS, R0, DA, XX, -1));
rvm_codegen_addins(co->cg, rvm_asm(RVM_BX, LR, XX, XX, 0));
- rvm_codegen_redefinelabel(co->cg, exp.endidx);
+ rvm_codegen_redefinelabel_default(co->cg, exp.endidx);
rvm_codegen_addins(co->cg, rvm_asm(RVM_POP, LR, XX, XX, 0));
rvm_codegen_addins(co->cg, rvm_asm(RVM_POP, R_TOP, XX, XX, 0));
rvm_codegen_addins(co->cg, rvm_asm(RVM_POP, R_REC, XX, XX, 0));
rvm_codegen_addins(co->cg, rvm_asm(RVM_POP, R0, XX, XX, 0));
rvm_codegen_addins(co->cg, rvm_asm(RVM_SUBS, R0, R_TOP, R1, 0));
rvm_codegen_addins(co->cg, rvm_asm(RVM_BX, LR, XX, XX, 0));
- rvm_codegen_redefinelabel(co->cg, exp.endidx);
+ rvm_codegen_redefinelabel_default(co->cg, exp.endidx);
rvm_codegen_addins(co->cg, rvm_asm(RVM_POP, LR, XX, XX, 0));
rvm_codegen_addins(co->cg, rvm_asm(RVM_POP, R_TOP, XX, XX, 0));
rvm_codegen_addins(co->cg, rvm_asm(RVM_POP, R_REC, XX, XX, 0));
rvm_codegen_addins(co->cg, rvm_asm(RVM_POP, R_TOP, XX, XX, 0));
rvm_codegen_addins(co->cg, rvm_asm(RVM_MOVS, R0, DA, XX, -1));
rvm_codegen_addins(co->cg, rvm_asm(RVM_BX, LR, XX, XX, 0));
- rvm_codegen_redefinelabel(co->cg, exp.endidx);
+ rvm_codegen_redefinelabel_default(co->cg, exp.endidx);
rvm_codegen_addins(co->cg, rvm_asm(RVM_POP, LR, XX, XX, 0));
rvm_codegen_addins(co->cg, rvm_asm(RVM_POP, R1, XX, XX, 0));
rvm_codegen_addins(co->cg, rvm_asm(RVM_POP, R0, XX, XX, 0));
rvm_codegen_addins(co->cg, rvm_asm(RVM_SUBS, R0, R_TOP, R1, 0));
rvm_codegen_addins(co->cg, rvm_asm(RVM_BX, LR, XX, XX, 0));
- rvm_codegen_redefinelabel(co->cg, exp.endidx);
+ rvm_codegen_redefinelabel_default(co->cg, exp.endidx);
rvm_codegen_addins(co->cg, rvm_asm(RVM_POP, LR, XX, XX, 0));
rvm_codegen_addins(co->cg, rvm_asm(RVM_POP, R_TOP, XX, XX, 0));
rvm_codegen_addins(co->cg, rvm_asm(RVM_POP, R_REC, XX, XX, 0));
rvm_codegen_addins(co->cg, rvm_asm(RVM_SUBS, R0, R_TOP, R1, 0));
rvm_codegen_addins(co->cg, rvm_asm(RVM_MOV, R_LOO, R0, XX, 0));
rvm_codegen_addins(co->cg, rvm_asm(RVM_BX, LR, XX, XX, 0));
- rvm_codegen_redefinelabel(co->cg, exp.endidx);
+ rvm_codegen_redefinelabel_default(co->cg, exp.endidx);
rvm_codegen_addins(co->cg, rvm_asm(RVM_POP, LR, XX, XX, 0));
rvm_codegen_addins(co->cg, rvm_asm(RVM_POP, R_TOP, XX, XX, 0));
rvm_codegen_addins(co->cg, rvm_asm(RVM_POP, R_REC, XX, XX, 0));
rvm_codegen_addins(co->cg, rvm_asm(RVM_POP, R_TOP, XX, XX, 0));
rvm_codegen_addins(co->cg, rvm_asm(RVM_MOVS, R0, DA, XX, -1));
rvm_codegen_addins(co->cg, rvm_asm(RVM_BX, LR, XX, XX, 0));
- rvm_codegen_redefinelabel(co->cg, exp.endidx);
+ rvm_codegen_redefinelabel_default(co->cg, exp.endidx);
rvm_codegen_addins(co->cg, rvm_asm(RVM_POP, LR, XX, XX, 0));
rvm_codegen_addins(co->cg, rvm_asm(RVM_POP, R1, XX, XX, 0));
rvm_codegen_addins(co->cg, rvm_asm(RVM_SUBS, R0, R_TOP, R1, 0));
rvm_codegen_addins(co->cg, rvm_asm(RVM_POP, R_REC, XX, XX, 0));
rvm_codegen_addins(co->cg, rvm_asm(RVM_MOVS, R0, DA, XX, -1));
rvm_codegen_addins(co->cg, rvm_asm(RVM_BX, LR, XX, XX, 0));
- rvm_codegen_redefinelabel(co->cg, exp.endidx);
+ rvm_codegen_redefinelabel_default(co->cg, exp.endidx);
rvm_codegen_addins(co->cg, rvm_asm(RVM_POP, LR, XX, XX, 0));
rvm_codegen_addins(co->cg, rvm_asm(RVM_POP, R_TOP, XX, XX, 0));
rvm_codegen_addins(co->cg, rvm_asm(RVM_POP, R0, XX, XX, 0));
rvm_codegen_addins(co->cg, rvm_asm(RVM_POP, R_REC, XX, XX, 0));
rvm_codegen_addins(co->cg, rvm_asm(RVM_MOVS, R0, DA, XX, -1));
rvm_codegen_addins(co->cg, rvm_asm(RVM_BX, LR, XX, XX, 0));
- rvm_codegen_redefinelabel(co->cg, exp.endidx);
+ rvm_codegen_redefinelabel_default(co->cg, exp.endidx);
rvm_codegen_addins(co->cg, rvm_asm(RVM_POP, LR, XX, XX, 0));
rvm_codegen_addins(co->cg, rvm_asm(RVM_POP, R_TOP, XX, XX, 0));
rvm_codegen_addins(co->cg, rvm_asm(RVM_POP, R0, XX, XX, 0));
const rchar *ruleend = "rpa_matchabc_end";
ruleidx = rvm_codegen_addstring_s(co->cg, NULL, rule);
- rvm_codegen_addlabel_s(co->cg, rule);
+ rvm_codegen_addlabel_default_s(co->cg, rule);
rvm_codegen_index_addrelocins(co->cg, RVM_RELOC_STRING, ruleidx, rvm_asm(RPA_EMITSTART, DA, R_TOP, XX, 0));
rvm_codegen_addins(co->cg, rvm_asm(RVM_PUSHM, DA, XX, XX, BIT(R_TOP)|BIT(LR)));
rvm_codegen_addins(co->cg, rvm_asm(RVM_SUBS, R0, R_TOP, R1, 0));
rvm_codegen_index_addrelocins(co->cg, RVM_RELOC_STRING, ruleidx, rvm_asm(RPA_EMITEND, DA, R1, R0, 0));
rvm_codegen_addins(co->cg, rvm_asm(RVM_BX, LR, XX, XX, 0));
- rvm_codegen_addlabel_s(co->cg, ruleend);
+ rvm_codegen_addlabel_default_s(co->cg, ruleend);
rvm_codegen_addins(co->cg, rvm_asm(RVM_POPM, DA, XX, XX, BIT(R_TOP)|BIT(LR)));
rvm_codegen_addins(co->cg, rvm_asm(RVM_MOV, R0, DA, XX, -1));
rvm_codegen_addins(co->cg, rvm_asm(RVM_BX, LR, XX, XX, 0));
const rchar *ruleend = "rpa_matchxyz_end";
ruleidx = rvm_codegen_addstring_s(co->cg, NULL, rule);
- rvm_codegen_addlabel_s(co->cg, rule);
+ rvm_codegen_addlabel_default_s(co->cg, rule);
rvm_codegen_index_addrelocins(co->cg, RVM_RELOC_STRING, ruleidx, rvm_asm(RPA_EMITSTART, DA, R_TOP, XX, 0));
rvm_codegen_addins(co->cg, rvm_asm(RVM_PUSHM, DA, XX, XX, BIT(R_TOP)|BIT(LR)));
rvm_codegen_addins(co->cg, rvm_asm(RVM_SUBS, R0, R_TOP, R1, 0));
rvm_codegen_index_addrelocins(co->cg, RVM_RELOC_STRING, ruleidx, rvm_asm(RPA_EMITEND, DA, R1, R0, 0));
rvm_codegen_addins(co->cg, rvm_asm(RVM_BX, LR, XX, XX, 0));
- rvm_codegen_addlabel_s(co->cg, ruleend);
+ rvm_codegen_addlabel_default_s(co->cg, ruleend);
rvm_codegen_addins(co->cg, rvm_asm(RVM_POPM, DA, XX, XX, BIT(R_TOP)|BIT(LR)));
rvm_codegen_addins(co->cg, rvm_asm(RVM_MOV, R0, DA, XX, -1));
rvm_codegen_addins(co->cg, rvm_asm(RVM_BX, LR, XX, XX, 0));
const rchar *ruleend = "rpa_matchabc_end";
ruleidx = rvm_codegen_addstring_s(co->cg, NULL, rule);
- rvm_codegen_addlabel_s(co->cg, rule);
+ rvm_codegen_addlabel_default_s(co->cg, rule);
rvm_codegen_index_addrelocins(co->cg, RVM_RELOC_STRING, ruleidx, rvm_asm(RPA_EMITSTART, DA, R_TOP, XX, 0));
rvm_codegen_addins(co->cg, rvm_asm(RVM_PUSHM, DA, XX, XX, BIT(R_TOP)|BIT(LR)));
rvm_codegen_addins(co->cg, rvm_asm(RVM_SUBS, R0, R_TOP, R1, 0));
rvm_codegen_index_addrelocins(co->cg, RVM_RELOC_STRING, ruleidx, rvm_asm(RPA_EMITEND, DA, R1, R0, 0));
rvm_codegen_addins(co->cg, rvm_asm(RVM_BX, LR, XX, XX, 0));
- rvm_codegen_addlabel_s(co->cg, ruleend);
+ rvm_codegen_addlabel_default_s(co->cg, ruleend);
rvm_codegen_addins(co->cg, rvm_asm(RVM_POPM, DA, XX, XX, BIT(R_TOP)|BIT(LR)));
rvm_codegen_addins(co->cg, rvm_asm(RVM_MOV, R0, DA, XX, -1));
rvm_codegen_addins(co->cg, rvm_asm(RVM_BX, LR, XX, XX, 0));
const rchar *ruleend = "rpa_matchxyz_end";
ruleidx = rvm_codegen_addstring_s(co->cg, NULL, rule);
- rvm_codegen_addlabel_s(co->cg, rule);
+ rvm_codegen_addlabel_default_s(co->cg, rule);
rvm_codegen_index_addrelocins(co->cg, RVM_RELOC_STRING, ruleidx, rvm_asm(RPA_EMITSTART, DA, R_TOP, XX, 0));
rvm_codegen_addins(co->cg, rvm_asm(RVM_PUSHM, DA, XX, XX, BIT(R_TOP)|BIT(LR)));
rvm_codegen_addins(co->cg, rvm_asm(RVM_SUBS, R0, R_TOP, R1, 0));
rvm_codegen_index_addrelocins(co->cg, RVM_RELOC_STRING, ruleidx, rvm_asm(RPA_EMITEND, DA, R1, R0, 0));
rvm_codegen_addins(co->cg, rvm_asm(RVM_BX, LR, XX, XX, 0));
- rvm_codegen_addlabel_s(co->cg, ruleend);
+ rvm_codegen_addlabel_default_s(co->cg, ruleend);
rvm_codegen_addins(co->cg, rvm_asm(RVM_POPM, DA, XX, XX, BIT(R_TOP)|BIT(LR)));
rvm_codegen_addins(co->cg, rvm_asm(RVM_MOV, R0, DA, XX, -1));
rvm_codegen_addins(co->cg, rvm_asm(RVM_BX, LR, XX, XX, 0));