Is there a function in cgen for parsing short integers?

Dave Brolley brolley@redhat.com
Fri Apr 18 15:24:00 GMT 2008


You need to define your own parse handler for this operand. Take a look 
at the operand 'hi16' in cgen/cpu/openrisc.cpu and its parse handler 
'parse_hi16' in cgen/cpu/openrisc.opc. At the end, this particular 
handler chooses to extend the sign from bit 16. You could issue your 
error/warning at this point in the case of overflow.

I hope this helps,
Dave

Mehak Mahajan wrote:
> Hi,
>
> I am porting cgen to a 16 bit architecture. The immediates are 16 bits 
> long. I am also parsing all hex numbers as signed numbers. Hence 
> 0xFFFF will be -1.
> When I parse -1, I get 0xFFFFFFFF, since cgen_parse_signed_integer 
> accepts a long.
> My problem is that since the max size of immediate can only be 16 
> bits, I want to flag an error if the user enters an immediate like 
> 0xFFFFFFFF. However, since -1 is parsed as a long, there is no way for 
> me to restrict the length of the immediates to 16 bits.
>
> Is there an equivalent function for parsing short integers as well?
>
> Cheers,
> Mehak



More information about the Cgen mailing list