[Top][All Lists]

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

Re: [Lightning] About 32 and 64 bits registers

From: Paulo Cesar Pereira de Andrade
Subject: Re: [Lightning] About 32 and 64 bits registers
Date: Tue, 24 Aug 2010 17:08:22 -0300
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv: Gecko/20100809 Mandriva/3.1.2-3mdv2011.0 (2011.0) Thunderbird/3.1.2

On 24-08-2010 04:02, Paolo Bonzini wrote:
On 08/24/2010 05:18 AM, Paulo César Pereira de Andrade wrote:

Back to the issue of 32/64 bits registers, I think the proper solution
probably would be more like:

jit_movi_i vs jit_movi_l vs jit_movi_ui vs jit_movi_ul

Now that the _{u,}l versions exist, maybe it would not be wise to
remove them, but just make them an alias, but, the 'i' should be
understood as (i)mmediate, and the ui as (u)nsigned (i)mmediate.
Same thing would apply to branches, e.g. jit_bltr_i would mean
jit_branch_if_less_than(label, register, immediate)

No, there is a misunderstanding. jit_bltr_i means

  Oops, yes, jit_blti_{i,ui,l,ul,p}. The real problem is with
jit_movi_{i,ui,l,ul,p}, that, like a load, must sign/zero extend
the register, or weird things may happen. Branches may become
tricky, this is why I am making the test cases, as one may depend
of behavior on overflow.

if Less Than Register
operand size = Integer

In general all operations are
: jit_XXXr_TT register <- register OP register, signed type TT
: jit_XXXi_TT register <- register OP immediate, signed type TT
: jit_XXXr_uTT register <- register OP register, unsigned type TT
: jit_XXXi_uTT register <- register OP immediate, unsigned type TT

Your other patches are fine and I'll merge them soon.

  Thanks, as said in the other email I will remake them, and resend



reply via email to

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