Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 27 Apr 2002 12:51:44 -0700
From:      Marcel Moolenaar <marcel@xcllnt.net>
To:        bug-binutils@gnu.org
Cc:        ia64@freebsd.org
Subject:   ia64: incorrect encoding of branch whether hints for indirect calls.
Message-ID:  <20020427195144.GA628@dhcp01.pn.xcllnt.net>

next in thread | raw e-mail | index | archive | help
Guys,

I run into the following, non-critical AFAICT, encoding bug in the
encoding of indirect call instructions (format B5). The branch
whether hint (BWH) is 3 bits, starting at bit 32. It is treated
as if it was only 2 bits starting at bit 33. This is currently
valid because there's a one to one mapping. The bug is in the
value of bit 32. The current encoding does not set bit 32 and
thus encodes the existing values using the currently unused bit
combinations.

See also:
	SDM v2.0, volume 3, page 3:317, tables 4-50 and 4-51.

Current Itanium implementations don't raise an exception. I haven't
tried it on Itanium 2. Note that it does confuse ski(1). It decodes
an indirect call as:
	br.call.bwh0.many b0=b6;;

objdump(1) gives:
	br.call.sptk.many b0=b6;;

Note that ski(1) ignores the hint, so it's not complaining...

FYI,

-- 
 Marcel Moolenaar	  USPA: A-39004		 marcel@xcllnt.net

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ia64" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020427195144.GA628>