On 5/21/07, Aurelien Jarno <[EMAIL PROTECTED]> wrote:
dyngen currently does not support passing 64-bit values to PARAM1 and PARAM2, they are limited to 32-bit. This patch creates a new op_set64 function to set a register with a 64-bit value, by passing high and low word in PARAM1 and PARAM2. The same thing is done for the op_save_btarget and op_save_pc instructions. Unfortunately it is not possible to pass the value via T0, T1 or T2, and then move it to btarget or pc, because those functions are used in save_cpu_state where T0, T1 or T2 may already be used.
I don't know MIPS, but perhaps you could try this trick used in Sparc: static inline void gen_jmp_im(target_ulong pc) { #ifdef TARGET_SPARC64 if (pc == (uint32_t)pc) { gen_op_jmp_im(pc); } else { gen_op_jmp_im64(pc >> 32, pc); } #else gen_op_jmp_im(pc); #endif }