This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[committed] ia64 gas patch


This fixes a bug reported on the ia64 linux kernel mailing list.  For
this testcase
(p10)   itc.i r18
(p11)   itc.d r18
(p6)    br.cond.spnt.many page_fault
gas was inserting two stop bits in between the itc.i and itc.d
instructions.  There should have only been one stop bit emitted here.

The itc.i instruction must be last in its instruction group, and it must
be in a M slot, which forces us to use a template that contains a stop
bit inside it.  Unfortunately, we fail to clear the bit that indicates a
stop bit is required after this instruction, thus prompting us to emit a
second spurious stop bit at the end of the bundle.  This is easily fixed
by clearing the field that indicates a stop bit is required after this
instruction.

This patch was tested against the binutils testsuite, there were no
regressions.  This patch was also tested with a linux kernel build. 
There was only one change.  The extra stop bit in the code above
disappeared, which is exactly what I wanted.
-- 
Jim Wilson, GNU Tools Support, http://www.specifix.com

Attachment: patch.last.stop
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]