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

List:       pcc-list
Subject:    Re: long long to int/short/char conversions for powerpc
From:       Gregory McGarry <greg () bitlynx ! com>
Date:       2007-11-14 4:05:30
Message-ID: D4EBAD3C-B52F-4F78-9F6E-56D4B94AE03D () bitlynx ! com
[Download RAW message or body]

> This adds conversions from (unsigned) long long to the other integer
> types. Does it look sensible?
>
> +/* convert (u)long long to (u)char */
> +{ SCONV,	INAREG,
> +	SBREG,	TLONGLONG|TULONGLONG,
> +	SAREG,	TCHAR|TUCHAR,
> +		NAREG|NASL|NSPECIAL,	RESC1,
> +		"	andi. A1,AL,255" COM "(u)long long to (u)char\n",
> +},

The value must be sign extended for signed char.

> +/* convert (u)long long to (u)short */
> +{ SCONV,	INAREG,
> +	SBREG,	TLONGLONG|TULONGLONG,
> +	SAREG,	TSHORT|TUSHORT,
> +		NAREG|NASL|NSPECIAL,	RESC1,
> +		"	andi. A1,AL,65535" COM "(u)long long to (u)short\n",
> +},

The value must be sign extended for signed short.

> +/* (u)long long to (u)char */
> +{ SCONV,	INAREG,
> +	SOREG,	TLONGLONG|TULONGLONG,
> +	SAREG,	TCHAR|TUCHAR,
> +		NASL|NAREG|NSPECIAL,	RESC1,
> +		"	lwz A1,AL" COM "(u)long long to (u)char\n"
> +		"	andi. A1,A1,255\n",
> +},

The value must be sign extended for signed char.

> +/* (u)long long to (u)short */
> +{ SCONV,	INAREG,
> +	SOREG,	TLONGLONG|TULONGLONG,
> +	SAREG,	TSHORT|TUSHORT,
> +		NASL|NAREG|NSPECIAL,	RESC1,
> +		"	lwz A1,AL" COM "(u)long long to (u)short\n"
> +		"	andi. A1,A1,65535\n",
> +},

The value must be sign extended for signed short.


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

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