This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[PATCH 0/4] MIPS/GAS o32 SVR4 PIC JAL macro delay slot fix
- From: "Maciej W. Rozycki" <macro at codesourcery dot com>
- To: binutils at sourceware dot org
- Cc: Richard Sandiford <rdsandiford at googlemail dot com>, Catherine Moore <clm at codesourcery dot com>, gnu-mips-sgxx at codesourcery dot com
- Date: Tue, 20 Jul 2010 12:42:24 +0100 (BST)
- Subject: [PATCH 0/4] MIPS/GAS o32 SVR4 PIC JAL macro delay slot fix
Hi,
While testing microMIPS changes I have noticed one of the JAL macro
variants used for o32 SVR4 PIC calls fails to emit a NOP between the jump
and the following reload of the GOT pointer when used in a noreorder
block. This causes the reload to happen incorrectly in the delay slot of
the jump, defeating its purpose. The other macro variant has the required
piece of code already in place.
As this problem affects microMIPS code in the same way, I have updated
the SVR4 PIC JAL test case for multi-arch support and reused it in the
same way with the noreorder mode active. This in turn requires a small
change to generic GAS test framework TCL code so that dumps that are
duplicated across a couple of subarchitectures do not need to be
physically copied in the tree (waste of space and unnecessary maintenance
burden). I hope the latter change looks reasonable and is acceptable.
The end result can be treated as four functionally self-contained changes
so I am sending them as four distinct patches. I won't provide the
corresponding microMIPS change separately though as it affects new code so
I have integrated it into the microMIPS patch proper.
All these changes have passed regression testing on mips-sde-elf and
mips-linux-gnu targets.
Maciej