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