}
        ;
 
-       init_reg_param(®_params[0], "a0", 32, PARAM_OUT);
-       init_reg_param(®_params[1], "a1", 32, PARAM_OUT);
-       init_reg_param(®_params[2], "a2", 32, PARAM_OUT);
-       init_reg_param(®_params[3], "a3", 32, PARAM_OUT);
-       init_reg_param(®_params[4], "t0", 32, PARAM_OUT);
-       init_reg_param(®_params[5], "t1", 32, PARAM_IN);
-       init_reg_param(®_params[6], "t4", 32, PARAM_OUT);
-       init_reg_param(®_params[7], "t5", 32, PARAM_OUT);
-       init_reg_param(®_params[8], "t6", 32, PARAM_OUT);
-       init_reg_param(®_params[9], "t7", 32, PARAM_OUT);
+       init_reg_param(®_params[0], "r4", 32, PARAM_OUT);
+       init_reg_param(®_params[1], "r5", 32, PARAM_OUT);
+       init_reg_param(®_params[2], "r6", 32, PARAM_OUT);
+       init_reg_param(®_params[3], "r7", 32, PARAM_OUT);
+       init_reg_param(®_params[4], "r8", 32, PARAM_OUT);
+       init_reg_param(®_params[5], "r9", 32, PARAM_IN);
+       init_reg_param(®_params[6], "r12", 32, PARAM_OUT);
+       init_reg_param(®_params[7], "r13", 32, PARAM_OUT);
+       init_reg_param(®_params[8], "r14", 32, PARAM_OUT);
+       init_reg_param(®_params[9], "r15", 32, PARAM_OUT);
 
        while (count > 0) {
                uint32_t thisrun_count = (count > buffer_size) ? buffer_size : count;
 
        mips32_info.common_magic = MIPS32_COMMON_MAGIC;
        mips32_info.isa_mode = MIPS32_ISA_MIPS32;
 
-       init_reg_param(®_params[0], "a0", 32, PARAM_IN_OUT);
-       init_reg_param(®_params[1], "a1", 32, PARAM_OUT);
-       init_reg_param(®_params[2], "a2", 32, PARAM_OUT);
+       init_reg_param(®_params[0], "r4", 32, PARAM_IN_OUT);
+       init_reg_param(®_params[1], "r5", 32, PARAM_OUT);
+       init_reg_param(®_params[2], "r6", 32, PARAM_OUT);
 
        int row_offset = offset % row_size;
        uint8_t *new_buffer = NULL;