qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH, MIPS64] 64-bit addressing fixes


From: Blue Swirl
Subject: Re: [Qemu-devel] [PATCH, MIPS64] 64-bit addressing fixes
Date: Mon, 21 May 2007 16:52:05 +0300

On 5/21/07, Aurelien Jarno <address@hidden> 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
}




reply via email to

[Prev in Thread] Current Thread [Next in Thread]