s390: larl for Simode on 64-bit
DJ Delorie
dj@redhat.com
Thu Jul 9 03:26:00 GMT 2015
> So in effect, we have two pointer sizes, 64 being the default, but
> we can also get a 32 bit pointer via the syntax above? Wow, I'm
> surprised that works.
Yup, been that way for many years.
> And the only time we'd be able to use larl is a dereference of a
> pointer declared with the syntax above. Right
larl would be used to load the address of an object to *initialize*
such a pointer, but yes. Regular pointers still use larl but as a
DImode operation. I.e. larl will always load a 64-bit value into a
register, even if gcc will only use the 32 LSBs.
> OK for the trunk with a simple testcase. I think you can just scan
> the assembler output for the larl instruction.
Will do, but it's part of a bigger patch. I just wanted to make sure
there wasn't some side-effect of larl that precluded this use.
More information about the Gcc
mailing list