pike.git / src / code / arm32.c

version» Context lines:

pike.git/src/code/arm32.c:897:    e = e->next;    }       free_list(l->list);   }      void arm32_init_interpreter_state(void) {    ARM_ASSERT(sizeof(struct svalue) == 8);    ARM_ASSERT(OFFSETOF(pike_frame, num_locals) % 4 == 0);    ARM_ASSERT(OFFSETOF(pike_frame, num_locals) + 2 == OFFSETOF(pike_frame, num_args)); -  -  instrs[F_CATCH - F_OFFSET].address = inter_return_opcode_F_CATCH; +    }      MACRO void ra_init(void) { -  /* FIXME: this ought to happen in init_interpreter_state, only, but it is currently overwritten -  * later */ -  instrs[F_CATCH - F_OFFSET].address = inter_return_opcode_F_CATCH; -  +     /* all register r0 through r10 are unused */    compiler_state.free = RBIT(0)|RBIT(1)|RBIT(2)|RBIT(3)|RBIT(4)|RBIT(12);    compiler_state.dirt = 0;    compiler_state.push_addr = -1;    compiler_state.flags = 0;   }      MACRO void assert_no_temp_regs(void) {    assert(compiler_state.free == (RBIT(0)|RBIT(1)|RBIT(2)|RBIT(3)|RBIT(4)|RBIT(12)));   }
pike.git/src/code/arm32.c:1526:    arm32_load_fp_reg();    if (compiler_flags & FLAG_LOCALS_LOADED)    arm32_load_locals_reg();    }   }      MACRO void arm32_call_c_opcode(unsigned int opcode) {    void *addr = instrs[opcode-F_OFFSET].address;    int flags = instrs[opcode-F_OFFSET].flags;    +  if (opcode == F_CATCH) +  addr = inter_return_opcode_F_CATCH; +     record_opcode(opcode, 1);       arm32_maybe_update_pc();       arm32_call(addr);       if (flags & I_UPDATE_SP) {    compiler_state.flags &= ~FLAG_SP_LOADED;    }    if (flags & I_UPDATE_M_SP) {}