C_U15CON /* 15 bit unsigned constant */
C_S16CON /* 16 bit signed constant */
C_U16CON /* 16 bit unsigned constant */
+ C_16CON /* Any constant which fits into 16 bits. Can be signed or unsigned */
+ C_U31CON /* 31 bit unsigned constant */
+ C_S32CON /* 32 bit signed constant */
+ C_U32CON /* 32 bit unsigned constant */
C_32CON /* Any constant which fits into 32 bits. Can be signed or unsigned */
C_S34CON /* 34 bit signed constant */
C_64CON /* Any constant which fits into 64 bits. Can be signed or unsigned */
C_ADDCON = C_S16CON
C_ANDCON = C_U16CON
C_LCON = C_32CON
-
- /* Aliased names which may be generated by ppc64map for the optab. */
- C_S32CON = C_32CON
- C_U32CON = C_32CON
)
const (
case sbits <= 16:
return C_U16CON
case sbits <= 31:
- return C_U32CON
+ return C_U31CON
case sbits <= 32:
return C_U32CON
case sbits <= 33:
return cmp(C_U5CON, b)
case C_U15CON:
return cmp(C_U8CON, b)
- case C_U16CON:
- return cmp(C_U15CON, b)
-
case C_S16CON:
return cmp(C_U15CON, b)
- case C_32CON:
+ case C_U16CON:
+ return cmp(C_U15CON, b)
+ case C_16CON:
return cmp(C_S16CON, b) || cmp(C_U16CON, b)
+ case C_U31CON:
+ return cmp(C_U16CON, b)
+ case C_U32CON:
+ return cmp(C_U31CON, b)
+ case C_S32CON:
+ return cmp(C_U31CON, b) || cmp(C_S16CON, b)
+ case C_32CON:
+ return cmp(C_S32CON, b) || cmp(C_U32CON, b)
case C_S34CON:
return cmp(C_32CON, b)
case C_64CON:
{obj.Addr{Type: obj.TYPE_CONST, Name: obj.NAME_NONE, Offset: 32}, C_U8CON},
{obj.Addr{Type: obj.TYPE_CONST, Name: obj.NAME_NONE, Offset: 1 << 14}, C_U15CON},
{obj.Addr{Type: obj.TYPE_CONST, Name: obj.NAME_NONE, Offset: 1 << 15}, C_U16CON},
- {obj.Addr{Type: obj.TYPE_CONST, Name: obj.NAME_NONE, Offset: 1 + 1<<16}, C_U32CON},
+ {obj.Addr{Type: obj.TYPE_CONST, Name: obj.NAME_NONE, Offset: 1 + 1<<16}, C_U31CON},
+ {obj.Addr{Type: obj.TYPE_CONST, Name: obj.NAME_NONE, Offset: 1 << 31}, C_U32CON},
{obj.Addr{Type: obj.TYPE_CONST, Name: obj.NAME_NONE, Offset: 1 << 32}, C_S34CON},
{obj.Addr{Type: obj.TYPE_CONST, Name: obj.NAME_NONE, Offset: 1 << 33}, C_64CON},
{obj.Addr{Type: obj.TYPE_CONST, Name: obj.NAME_NONE, Offset: -1}, C_S16CON},
{obj.Addr{Type: obj.TYPE_CONST, Name: obj.NAME_NONE, Offset: -0x10001}, C_S32CON},
+ {obj.Addr{Type: obj.TYPE_CONST, Name: obj.NAME_NONE, Offset: 0x10001}, C_U31CON},
{obj.Addr{Type: obj.TYPE_CONST, Name: obj.NAME_NONE, Offset: -(1 << 33)}, C_S34CON},
{obj.Addr{Type: obj.TYPE_CONST, Name: obj.NAME_NONE, Offset: -(1 << 34)}, C_64CON},