Illegal instruction After base addr alterd

James E Wilson wilson@specifixinc.com
Fri Apr 8 03:44:00 GMT 2005


On Thu, 2005-04-07 at 20:03, Zhenyu Guo wrote:
> 	  . = 0x5000000000000000 + SIZEOF_HEADERS; <<-- used to be
> 0x4000000000000000 

IA-64 addresses have 4-bits for segment selection, and 60-bits of offset
within a segment.  Changing the 0x4 to a 0x5 means you are moving the
code to a different segment.  I don't think that is wise.  I don't know
offhand exactly how the kernel handles the 16 segments, but something
like 0x48... might be more likely to work than 0x5...

There is an IA-64 linux kernel book written by David Mosberger that
might explain some of this stuff.  I don't know for sure though, as I
don't have a copy.
-- 
Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com




More information about the Binutils mailing list