This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[vms/committed]: enforce RA value for .frame
- From: Tristan Gingold <gingold at adacore dot com>
- To: binutils Development <binutils at sourceware dot org>
- Date: Wed, 23 Nov 2011 12:27:24 +0100
- Subject: [vms/committed]: enforce RA value for .frame
Hi,
the .frame pseudo discarded the RA value, because it is fixed. This patch now enforces that the RA is correct.
Tristan.
gas/
2011-11-23 Tristan Gingold <gingold@adacore.com>
* config/tc-alpha.c (s_alpha_frame): Emit a warning if bad value
of RA.
(s_alpha_pdesc): Adjust comment.
Index: config/tc-alpha.c
===================================================================
RCS file: /cvs/src/src/gas/config/tc-alpha.c,v
retrieving revision 1.100
diff -c -r1.100 tc-alpha.c
*** config/tc-alpha.c 21 Oct 2011 13:24:26 -0000 1.100
--- config/tc-alpha.c 23 Nov 2011 11:24:29 -0000
***************
*** 4435,4440 ****
--- 4435,4441 ----
s_alpha_frame (int ignore ATTRIBUTE_UNUSED)
{
long val;
+ int ra;
alpha_evax_proc->framereg = tc_get_register (1);
***************
*** 4450,4456 ****
alpha_evax_proc->framesize = val;
! (void) tc_get_register (1);
SKIP_WHITESPACE ();
if (*input_line_pointer++ != ',')
{
--- 4451,4460 ----
alpha_evax_proc->framesize = val;
! ra = tc_get_register (1);
! if (ra != AXP_REG_RA)
! as_warn (_("Bad RA (%d) register for .frame"), ra);
!
SKIP_WHITESPACE ();
if (*input_line_pointer++ != ',')
{
***************
*** 4473,4479 ****
(FAKE_LABEL_NAME, now_seg, (valueT) frag_now_fix (), frag_now);
}
! /* Parse .pdesc <entry_name>.
Insert a procedure descriptor. */
static void
--- 4477,4483 ----
(FAKE_LABEL_NAME, now_seg, (valueT) frag_now_fix (), frag_now);
}
! /* Parse .pdesc <entry_name>,{null|stack|reg}
Insert a procedure descriptor. */
static void