On Apr 24, 2014, at 1:49 AM, Tim Northover <[email protected]> wrote:

> On 24 April 2014 00:35, Jim Grosbach <[email protected]> wrote:
>> I share Eric’s concern here. As I recall, the spec from ARM was very clear 
>> on this point, requiring a modifier to specify anything other than a 64-bit 
>> GPR. Matching the behavior of GCC is not a sufficient reason to change that 
>> unless the specification changed as well.
> 
> Unfortunately, that spec doesn't seem to have made it to GCC, either
> in code or in documentation form.

I don’t think that’s true, actually. Rather, someone decided to change it. The 
word we got was, which I was told mirrored the GCC implementation at the time, 
"Note that general register operands will be output using their 64-bit x 
register name, whatever the size of the variable, unless the asm operand is 
prefixed by the %w modifier."

> Personally, I don't think GPR64 has any more claim to being general
> purpose than GPR32. The options I'd favour are to *require* an operand
> modifier in all cases (I'm always in favour of explicit assembly), or
> what GCC actually does by inferring the size. The first is clearly not
> viable though.

As Eric says, this is a 64-bit arch, so having ‘r’ mean 64 bits seems 
reasonable. I also quite agree that this is a very good place to be strict. 
Requiring the modifier has helped us catch many bugs that otherwise would have 
taken who knows how long to track down.

-Jim
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to