RPA Toolkit
Moving away from RPA_BXL... 3
[rpatk.git] / testrpa2 / rpacompiler-rule.c
index 3685b7c..fcc9306 100644 (file)
@@ -42,49 +42,49 @@ void code_rpa_matchmnode(rpa_compiler_t *co, rpastat_t *stat)
 {
        rvm_codegen_addins(co->cg, rvm_asm(RPA_SETRECLEN, DA, XX, XX, 0));
        rvm_codegen_addins(co->cg, rvm_asm(RVM_MOV, R_TOP, DA, XX, 0));
-       rvm_codegen_addrelocins_s(co->cg, RVM_RELOC_JUMP, "rpa_matchabc", rvm_asm(RPA_BXLNAN, DA, XX, XX, 0));
+       rpa_compiler_reference_nan_s(co,"rpa_matchabc");
        VMTEST_REG(co->cg, 0, 3, "RPA_MNODE_NAN 'abc'");
        VMTEST_STATUS(co->cg, 0, "RPA_MNODE_NAN STATUS");
 
        rvm_codegen_addins(co->cg, rvm_asm(RPA_SETRECLEN, DA, XX, XX, 0));
        rvm_codegen_addins(co->cg, rvm_asm(RVM_MOV, R_TOP, DA, XX, 0));
-       rvm_codegen_addrelocins_s(co->cg, RVM_RELOC_JUMP, "rpa_matchxyz", rvm_asm(RPA_BXLNAN, DA, XX, XX, 0));
+       rpa_compiler_reference_nan_s(co,"rpa_matchxyz");
        VMTEST_REG(co->cg, 0, -1, "RPA_MNODE_NAN 'xyz'");
        VMTEST_STATUS(co->cg, RVM_STATUS_N, "RPA_MNODE_NAN STATUS");
 
        rvm_codegen_addins(co->cg, rvm_asm(RPA_SETRECLEN, DA, XX, XX, 0));
        rvm_codegen_addins(co->cg, rvm_asm(RVM_MOV, R_TOP, DA, XX, 0));
-       rvm_codegen_addrelocins_s(co->cg, RVM_RELOC_JUMP, "rpa_matchabc", rvm_asm(RPA_BXLOPT, DA, XX, XX, 0));
+       rpa_compiler_reference_opt_s(co,"rpa_matchabc");
        VMTEST_REG(co->cg, 0, 3, "RPA_MNODE_OPT 'abc'");
        VMTEST_STATUS(co->cg, 0, "RPA_MNODE_OPT STATUS");
 
        rvm_codegen_addins(co->cg, rvm_asm(RPA_SETRECLEN, DA, XX, XX, 0));
        rvm_codegen_addins(co->cg, rvm_asm(RVM_MOV, R_TOP, DA, XX, 0));
-       rvm_codegen_addrelocins_s(co->cg, RVM_RELOC_JUMP, "rpa_matchxyz", rvm_asm(RPA_BXLOPT, DA, XX, XX, 0));
+       rpa_compiler_reference_opt_s(co,"rpa_matchxyz");
        VMTEST_REG(co->cg, 0, 0, "RPA_MNODE_OPT 'xyz'");
        VMTEST_STATUS(co->cg, RVM_STATUS_Z, "RPA_MNODE_OPT STATUS");
 
        rvm_codegen_addins(co->cg, rvm_asm(RPA_SETRECLEN, DA, XX, XX, 0));
        rvm_codegen_addins(co->cg, rvm_asm(RVM_MOV, R_TOP, DA, XX, 0));
-       rvm_codegen_addrelocins_s(co->cg, RVM_RELOC_JUMP, "rpa_matchabc", rvm_asm(RPA_BXLMUL, DA, XX, XX, 0));
+       rpa_compiler_reference_mul_s(co,"rpa_matchabc");
        VMTEST_REG(co->cg, 0, 12, "RPA_MNODE_MUL 'abc'");
        VMTEST_STATUS(co->cg, 0, "RPA_MNODE_MUL STATUS");
 
        rvm_codegen_addins(co->cg, rvm_asm(RPA_SETRECLEN, DA, XX, XX, 0));
        rvm_codegen_addins(co->cg, rvm_asm(RVM_MOV, R_TOP, DA, XX, 0));
-       rvm_codegen_addrelocins_s(co->cg, RVM_RELOC_JUMP, "rpa_matchxyz", rvm_asm(RPA_BXLMUL, DA, XX, XX, 0));
+       rpa_compiler_reference_mul_s(co,"rpa_matchxyz");
        VMTEST_REG(co->cg, 0, -1, "RPA_MNODE_MUL 'xyz'");
        VMTEST_STATUS(co->cg, RVM_STATUS_N, "RPA_MNODE_MUL STATUS");
 
        rvm_codegen_addins(co->cg, rvm_asm(RPA_SETRECLEN, DA, XX, XX, 0));
        rvm_codegen_addins(co->cg, rvm_asm(RVM_MOV, R_TOP, DA, XX, 0));
-       rvm_codegen_addrelocins_s(co->cg, RVM_RELOC_JUMP, "rpa_matchabc", rvm_asm(RPA_BXLMOP, DA, XX, XX, 0));
+       rpa_compiler_reference_mop_s(co,"rpa_matchabc");
        VMTEST_REG(co->cg, 0, 12, "RPA_MNODE_MOP 'abc'");
        VMTEST_STATUS(co->cg, 0, "RPA_MNODE_MOP STATUS");
 
        rvm_codegen_addins(co->cg, rvm_asm(RPA_SETRECLEN, DA, XX, XX, 0));
        rvm_codegen_addins(co->cg, rvm_asm(RVM_MOV, R_TOP, DA, XX, 0));
-       rvm_codegen_addrelocins_s(co->cg, RVM_RELOC_JUMP, "rpa_matchxyz", rvm_asm(RPA_BXLMOP, DA, XX, XX, 0));
+       rpa_compiler_reference_mop_s(co,"rpa_matchxyz");
        VMTEST_REG(co->cg, 0, 0, "RPA_MNODE_MOP 'xyz'");
        VMTEST_STATUS(co->cg, RVM_STATUS_Z, "RPA_MNODE_MOP STATUS");
 
@@ -110,13 +110,8 @@ int main(int argc, char *argv[])
        rvm_codegen_addins(co->cg, rvm_asml(RVM_MOV, R_TOP, DA, XX, -1));
        rvm_codegen_addins(co->cg, rvm_asml(RVM_MOV, FP, DA, XX, 0));
        rvm_codegen_addins(co->cg, rvm_asml(RVM_MOV, SP, DA, XX, 0));
-
-       rvm_codegen_addrelocins_s(co->cg, RVM_RELOC_JUMP, "rpacompiler_mnode_nan", rvm_asm(RPA_SETBXLNAN, DA, XX, XX, 0));
-       rvm_codegen_addrelocins_s(co->cg, RVM_RELOC_JUMP, "rpacompiler_mnode_mul", rvm_asm(RPA_SETBXLMUL, DA, XX, XX, 0));
-       rvm_codegen_addrelocins_s(co->cg, RVM_RELOC_JUMP, "rpacompiler_mnode_opt", rvm_asm(RPA_SETBXLOPT, DA, XX, XX, 0));
-       rvm_codegen_addrelocins_s(co->cg, RVM_RELOC_JUMP, "rpacompiler_mnode_mop", rvm_asm(RPA_SETBXLMOP, DA, XX, XX, 0));
-
        rvm_codegen_addins(co->cg, rvm_asm(RPA_SHIFT, XX, XX, XX, 0));
+
        code_rpa_matchmnode(co, stat);
        rvm_codegen_addins(co->cg, rvm_asm(RVM_NOP, XX, XX, XX, 0xabc));
        rvm_codegen_addins(co->cg, rvm_asm(RVM_EXT, XX, XX, XX, 0));