Skip to content

Commit

Permalink
gas/
Browse files Browse the repository at this point in the history
2013-03-26  Douglas B Rupp  <rupp@gnat.com>

	* config/tc-ia64.c (emit_one_bundle): Move last_slot adjustment
	after fixup.

gas/testsuite/
2013-03-26  Douglas B Rupp  <rupp@adacore.com

	* gas/ia64/ia64.exp: Add new test reloc-mlx
	* gas/ia64/reloc-mlx.[sd]: New test for X-unit reloc.
	* gas/ia64/pcrel.d: Fix output for X-unit reloc.
  • Loading branch information
gingold-adacore committed Mar 26, 2013
1 parent ce96de2 commit e388654
Show file tree
Hide file tree
Showing 7 changed files with 43 additions and 14 deletions.
5 changes: 5 additions & 0 deletions gas/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
2013-03-26 Douglas B Rupp <rupp@gnat.com>

* config/tc-ia64.c (emit_one_bundle): Move last_slot adjustment
after fixup.

2013-03-21 Will Newton <will.newton@linaro.org>

* config/tc-arm.c (encode_thumb32_addr_mode): Emit an error for all
Expand Down
22 changes: 12 additions & 10 deletions gas/config/tc-ia64.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/* tc-ia64.c -- Assembler for the HP/Intel IA-64 architecture.
Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
2008, 2009, 2011, 2012 Free Software Foundation, Inc.
2008, 2009, 2011, 2012, 2013 Free Software Foundation, Inc.
Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
This file is part of GAS, the GNU Assembler.
Expand Down Expand Up @@ -6934,15 +6934,6 @@ emit_one_bundle (void)
md.slot[curr].unwind_record = NULL;
}

if (required_unit == IA64_UNIT_L)
{
know (i == 1);
/* skip one slot for long/X-unit instructions */
++i;
}
--md.num_slots_in_use;
last_slot = i;

for (j = 0; j < md.slot[curr].num_fixups; ++j)
{
ifix = md.slot[curr].fixup + j;
Expand All @@ -6955,6 +6946,17 @@ emit_one_bundle (void)

end_of_insn_group = md.slot[curr].end_of_insn_group;

/* This adjustment to "i" must occur after the fix, otherwise the fix
is assigned to the wrong slot, and the VMS linker complains. */
if (required_unit == IA64_UNIT_L)
{
know (i == 1);
/* skip one slot for long/X-unit instructions */
++i;
}
--md.num_slots_in_use;
last_slot = i;

/* clear slot: */
ia64_free_opcode (md.slot[curr].idesc);
memset (md.slot + curr, 0, sizeof (md.slot[curr]));
Expand Down
6 changes: 6 additions & 0 deletions gas/testsuite/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
2013-03-26 Douglas B Rupp <rupp@adacore.com

* gas/ia64/ia64.exp: Add new test reloc-mlx
* gas/ia64/reloc-mlx.[sd]: New test for X-unit reloc.
* gas/ia64/pcrel.d: Fix output for X-unit reloc.

2013-03-21 Will Newton <will.newton@linaro.org>

* gas/arm/thumb2_relax.d: Strip out invalid pc-relative strs.
Expand Down
1 change: 1 addition & 0 deletions gas/testsuite/gas/ia64/ia64.exp
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ if [istarget "ia64-*"] then {
run_dump_test "dependency-1"

run_dump_test "reloc"
run_dump_test "reloc-mlx"
run_list_test "reloc-bad" ""
run_dump_test "pcrel"

Expand Down
8 changes: 4 additions & 4 deletions gas/testsuite/gas/ia64/pcrel.d
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ OFFSET[[:space:]]+TYPE[[:space:]]+VALUE[[:space:]]*

RELOCATION RECORDS FOR \[\.movl\]:
OFFSET[[:space:]]+TYPE[[:space:]]+VALUE[[:space:]]*
0+12[[:space:]]+PCREL64I[[:space:]]+esym
0+22[[:space:]]+PCREL64I[[:space:]]+esym\+0x0+20
0+32[[:space:]]+PCREL64I[[:space:]]+esym
0+42[[:space:]]+PCREL64I[[:space:]]+esym-0x0+20
0+11[[:space:]]+PCREL64I[[:space:]]+esym
0+21[[:space:]]+PCREL64I[[:space:]]+esym\+0x0+20
0+31[[:space:]]+PCREL64I[[:space:]]+esym
0+41[[:space:]]+PCREL64I[[:space:]]+esym-0x0+20

RELOCATION RECORDS FOR \[\.data8\]:
OFFSET[[:space:]]+TYPE[[:space:]]+VALUE[[:space:]]*
Expand Down
8 changes: 8 additions & 0 deletions gas/testsuite/gas/ia64/reloc-mlx.d
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#objdump: -r
#name: ia64 mlx reloc

.*: +file format .*

RELOCATION RECORDS FOR \[\.text\]:
OFFSET[[:space:]]+TYPE[[:space:]]+VALUE[[:space:]]*
0+1[[:space:]]+PCREL60B[[:space:]]+bar
7 changes: 7 additions & 0 deletions gas/testsuite/gas/ia64/reloc-mlx.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
.text
.proc foo#
foo:
.mlx
mov r25 = r0
brl.call.sptk.many b0 = bar#
.endp foo#

0 comments on commit e388654

Please sign in to comment.