[prev in list] [next in list] [prev in thread] [next in thread] 

List:       qemu-devel
Subject:    Re: [Qemu-devel] [PATCH, MIPS64] 64-bit addressing fixes
From:       "Blue Swirl" <blauwirbel () gmail ! com>
Date:       2007-05-21 13:52:05
Message-ID: f43fc5580705210652v33d15b01u9e6330a737f35ce9 () mail ! gmail ! com
[Download RAW message or body]

On 5/21/07, Aurelien Jarno <aurelien@aurel32.net> 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
}


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic