Commit 749278c5 by Iain Sandoe Committed by Iain Sandoe

rs6000.c (rs6000_init_dwarf_reg_sizes_extra): Ensure that altivec registers are…

rs6000.c (rs6000_init_dwarf_reg_sizes_extra): Ensure that altivec registers are correctly sized on Darwin.

gcc:

	* config/rs6000/rs6000.c (rs6000_init_dwarf_reg_sizes_extra): Ensure
	that altivec registers are correctly sized on Darwin.

From-SVN: r203018
parent 23b740db
2013-09-29 Iain Sandoe <iain@codesourcery.com> 2013-09-29 Iain Sandoe <iain@codesourcery.com>
* config/rs6000/rs6000.c (rs6000_init_dwarf_reg_sizes_extra): Ensure
that altivec registers are correctly sized on Darwin.
2013-09-29 Iain Sandoe <iain@codesourcery.com>
* config/t-darwin (darwin.o, darwin-c.o, darwin-f.o, * config/t-darwin (darwin.o, darwin-c.o, darwin-f.o,
darwin-driver.o): Use COMPILE and POSTCOMPILE. darwin-driver.o): Use COMPILE and POSTCOMPILE.
* config/x-darwin (host-darwin.o): Likewise. * config/x-darwin (host-darwin.o): Likewise.
......
...@@ -29050,6 +29050,27 @@ rs6000_init_dwarf_reg_sizes_extra (tree address) ...@@ -29050,6 +29050,27 @@ rs6000_init_dwarf_reg_sizes_extra (tree address)
emit_move_insn (adjust_address (mem, mode, offset), value); emit_move_insn (adjust_address (mem, mode, offset), value);
} }
} }
if (TARGET_MACHO && ! TARGET_ALTIVEC)
{
int i;
enum machine_mode mode = TYPE_MODE (char_type_node);
rtx addr = expand_expr (address, NULL_RTX, VOIDmode, EXPAND_NORMAL);
rtx mem = gen_rtx_MEM (BLKmode, addr);
rtx value = gen_int_mode (16, mode);
/* On Darwin, libgcc may be built to run on both G3 and G4/5.
The unwinder still needs to know the size of Altivec registers. */
for (i = FIRST_ALTIVEC_REGNO; i < LAST_ALTIVEC_REGNO+1; i++)
{
int column = DWARF_REG_TO_UNWIND_COLUMN (i);
HOST_WIDE_INT offset
= DWARF_FRAME_REGNUM (column) * GET_MODE_SIZE (mode);
emit_move_insn (adjust_address (mem, mode, offset), value);
}
}
} }
/* Map internal gcc register numbers to DWARF2 register numbers. */ /* Map internal gcc register numbers to DWARF2 register numbers. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment