Problem in split_basic_block
Jim Wilson
wilson@tuliptree.org
Sun Aug 10 08:06:00 GMT 2003
Richard Kenner wrote:
> Interesting. I don't know the ia64 instruction set, but I'd always
> thought of the addp4 stuff as a horrible kludge. I'm kind of curious
> about this myself now.
The upper three bits of an IA-64 address indicate the segment (region).
This is somewhat similar to the VAX I believe. If you don't want
segments you can define them in the obvious way to get a flat address space.
addp4 does a 32-bit add and then copies the 2 most significant bits of
the 32-bit result (31 and 30) into the 2 most significant bits of the
target register (63 and 62). This gives you access to 4 segments (regions).
You really should have some understanding of the IA-64 ISA if you are
trying to do a port. IA-64 architecture manuals are available here:
http://developer.intel.com/design/itanium/manuals.htm
See Vol 2 Section 4.1.9 32-bit Virtual Addressing. This documents how
to do zero-extend, sign-extend, or pointer-swizzling addressing via
addp4. All 3 are supported by the architecture.
--
Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com
More information about the Gcc
mailing list