diff mbox

[1/2] tcg: add TCGMemOp short constants for single byte loads

Message ID 1386770856-6304-1-git-send-email-aurelien@aurel32.net
State New
Headers show

Commit Message

Aurelien Jarno Dec. 11, 2013, 2:07 p.m. UTC
Cc: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
---
 tcg/tcg.h |    6 ++++++
 1 file changed, 6 insertions(+)

Comments

Richard Henderson Dec. 11, 2013, 7:07 p.m. UTC | #1
On 12/11/2013 06:07 AM, Aurelien Jarno wrote:
> Cc: Richard Henderson <rth@twiddle.net>
> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
> ---
>  tcg/tcg.h |    6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/tcg/tcg.h b/tcg/tcg.h
> index 0d9bd29..c83d625 100644
> --- a/tcg/tcg.h
> +++ b/tcg/tcg.h
> @@ -230,20 +230,26 @@ typedef enum TCGMemOp {
>      MO_SL    = MO_SIGN | MO_32,
>      MO_Q     = MO_64,
>  
> +    MO_LEUB  = MO_LE | MO_UB,
>      MO_LEUW  = MO_LE | MO_UW,
>      MO_LEUL  = MO_LE | MO_UL,
> +    MO_LESB  = MO_LE | MO_SB,
>      MO_LESW  = MO_LE | MO_SW,
>      MO_LESL  = MO_LE | MO_SL,
>      MO_LEQ   = MO_LE | MO_Q,
>  

If you insist, for token pasting usage.  So far I've been using just MO_UB and
MO_SB for in situations where we want a 1-byte memory op, without the XE
prefix, since the endianness doesn't matter.


r~
Aurelien Jarno Dec. 12, 2013, 1:33 p.m. UTC | #2
On Wed, Dec 11, 2013 at 11:07:20AM -0800, Richard Henderson wrote:
> On 12/11/2013 06:07 AM, Aurelien Jarno wrote:
> > Cc: Richard Henderson <rth@twiddle.net>
> > Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
> > ---
> >  tcg/tcg.h |    6 ++++++
> >  1 file changed, 6 insertions(+)
> > 
> > diff --git a/tcg/tcg.h b/tcg/tcg.h
> > index 0d9bd29..c83d625 100644
> > --- a/tcg/tcg.h
> > +++ b/tcg/tcg.h
> > @@ -230,20 +230,26 @@ typedef enum TCGMemOp {
> >      MO_SL    = MO_SIGN | MO_32,
> >      MO_Q     = MO_64,
> >  
> > +    MO_LEUB  = MO_LE | MO_UB,
> >      MO_LEUW  = MO_LE | MO_UW,
> >      MO_LEUL  = MO_LE | MO_UL,
> > +    MO_LESB  = MO_LE | MO_SB,
> >      MO_LESW  = MO_LE | MO_SW,
> >      MO_LESL  = MO_LE | MO_SL,
> >      MO_LEQ   = MO_LE | MO_Q,
> >  
> 
> If you insist, for token pasting usage.  So far I've been using just MO_UB and
> MO_SB for in situations where we want a 1-byte memory op, without the XE
> prefix, since the endianness doesn't matter.

Indeed adding this is useless. That said a common problem with this
short MO aliases is that there is no consistency in the naming, on one
side with the endianness for bytes, and on the other side with the
signedness for quad words. The same way, if we wan to use MO aliases for
the stores, we end-up specifying a useless endianness.

Anyway I'll drop that for now and submit a new version of the MIPS
patch.
diff mbox

Patch

diff --git a/tcg/tcg.h b/tcg/tcg.h
index 0d9bd29..c83d625 100644
--- a/tcg/tcg.h
+++ b/tcg/tcg.h
@@ -230,20 +230,26 @@  typedef enum TCGMemOp {
     MO_SL    = MO_SIGN | MO_32,
     MO_Q     = MO_64,
 
+    MO_LEUB  = MO_LE | MO_UB,
     MO_LEUW  = MO_LE | MO_UW,
     MO_LEUL  = MO_LE | MO_UL,
+    MO_LESB  = MO_LE | MO_SB,
     MO_LESW  = MO_LE | MO_SW,
     MO_LESL  = MO_LE | MO_SL,
     MO_LEQ   = MO_LE | MO_Q,
 
+    MO_BEUB  = MO_BE | MO_UB,
     MO_BEUW  = MO_BE | MO_UW,
     MO_BEUL  = MO_BE | MO_UL,
+    MO_BESB  = MO_BE | MO_SB,
     MO_BESW  = MO_BE | MO_SW,
     MO_BESL  = MO_BE | MO_SL,
     MO_BEQ   = MO_BE | MO_Q,
 
+    MO_TEUB  = MO_TE | MO_UB,
     MO_TEUW  = MO_TE | MO_UW,
     MO_TEUL  = MO_TE | MO_UL,
+    MO_TESB  = MO_TE | MO_SB,
     MO_TESW  = MO_TE | MO_SW,
     MO_TESL  = MO_TE | MO_SL,
     MO_TEQ   = MO_TE | MO_Q,