Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/external/gpl3/gcc/dist/gcc/config/vax Annotation for the Pro...
details: https://anonhg.NetBSD.org/src/rev/c050002cc579
branches: trunk
changeset: 327902:c050002cc579
user: joerg <joerg%NetBSD.org@localhost>
date: Thu Mar 20 16:53:55 2014 +0000
description:
Annotation for the Processor Status Word. Sensible DWARF frame layout.
diffstat:
external/gpl3/gcc/dist/gcc/config/vax/vax.c | 26 +++++++++++++++-----------
external/gpl3/gcc/dist/gcc/config/vax/vax.h | 3 +++
external/gpl3/gcc/dist/gcc/config/vax/vax.md | 1 +
3 files changed, 19 insertions(+), 11 deletions(-)
diffs (77 lines):
diff -r 6a7eaba74233 -r c050002cc579 external/gpl3/gcc/dist/gcc/config/vax/vax.c
--- a/external/gpl3/gcc/dist/gcc/config/vax/vax.c Thu Mar 20 15:21:46 2014 +0000
+++ b/external/gpl3/gcc/dist/gcc/config/vax/vax.c Thu Mar 20 16:53:55 2014 +0000
@@ -162,9 +162,13 @@
HOST_WIDE_INT size;
rtx insn;
+ offset = 20;
for (regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++)
if (df_regs_ever_live_p (regno) && !call_used_regs[regno])
- mask |= 1 << regno;
+ {
+ mask |= 1 << regno;
+ offset += 4;
+ }
insn = emit_insn (gen_procedure_entry_mask (GEN_INT (mask)));
RTX_FRAME_RELATED_P (insn) = 1;
@@ -186,11 +190,17 @@
The rest of the prologue will adjust the SP for the local frame. */
- vax_add_reg_cfa_offset (insn, 4, arg_pointer_rtx);
- vax_add_reg_cfa_offset (insn, 8, frame_pointer_rtx);
- vax_add_reg_cfa_offset (insn, 12, pc_rtx);
+ add_reg_note (insn, REG_CFA_DEF_CFA,
+ plus_constant (Pmode, frame_pointer_rtx, offset));
+ insn = emit_insn (gen_blockage ());
+ RTX_FRAME_RELATED_P (insn) = 1;
- offset = 16;
+ vax_add_reg_cfa_offset (insn, 4, gen_rtx_REG (Pmode, PSW_REGNUM));
+ vax_add_reg_cfa_offset (insn, 8, arg_pointer_rtx);
+ vax_add_reg_cfa_offset (insn, 12, frame_pointer_rtx);
+ vax_add_reg_cfa_offset (insn, 16, pc_rtx);
+
+ offset = 20;
for (regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++)
if (mask & (1 << regno))
{
@@ -198,12 +208,6 @@
offset += 4;
}
- /* Because add_reg_note pushes the notes, adding this last means that
- it will be processed first. This is required to allow the other
- notes be interpreted properly. */
- add_reg_note (insn, REG_CFA_DEF_CFA,
- plus_constant (Pmode, frame_pointer_rtx, offset));
-
/* Allocate the local stack frame. */
size = get_frame_size ();
size -= STARTING_FRAME_OFFSET;
diff -r 6a7eaba74233 -r c050002cc579 external/gpl3/gcc/dist/gcc/config/vax/vax.h
--- a/external/gpl3/gcc/dist/gcc/config/vax/vax.h Thu Mar 20 15:21:46 2014 +0000
+++ b/external/gpl3/gcc/dist/gcc/config/vax/vax.h Thu Mar 20 16:53:55 2014 +0000
@@ -156,6 +156,9 @@
/* Specify the registers used for certain standard purposes.
The values of these macros are register numbers. */
+/* VAX PSW for DWARF-2 */
+#define PSW_REGNUM VAX_PSW_REGNUM
+
/* VAX pc is overloaded on a register. */
#define PC_REGNUM VAX_PC_REGNUM
diff -r 6a7eaba74233 -r c050002cc579 external/gpl3/gcc/dist/gcc/config/vax/vax.md
--- a/external/gpl3/gcc/dist/gcc/config/vax/vax.md Thu Mar 20 15:21:46 2014 +0000
+++ b/external/gpl3/gcc/dist/gcc/config/vax/vax.md Thu Mar 20 16:53:55 2014 +0000
@@ -40,6 +40,7 @@
(VAX_FP_REGNUM 13) ; Register 13 contains the frame pointer
(VAX_SP_REGNUM 14) ; Register 14 contains the stack pointer
(VAX_PC_REGNUM 15) ; Register 15 contains the program counter
+ (VAX_PSW_REGNUM 16) ; Program Status Word
]
)
Home |
Main Index |
Thread Index |
Old Index