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>