aboutsummaryrefslogtreecommitdiff
path: root/gas/config
diff options
context:
space:
mode:
authorPaul Brook <paul@codesourcery.com>2006-09-16 16:24:28 +0000
committerPaul Brook <paul@codesourcery.com>2006-09-16 16:24:28 +0000
commit4fa3602bd53183badf1d259128a5f951f32db8cb (patch)
treeace6b6dea4677f55a342aca81e295234d671eefe /gas/config
parent97725dc4f67140bd0b914a4cb9b92fe94799509c (diff)
downloadgdb-4fa3602bd53183badf1d259128a5f951f32db8cb.zip
gdb-4fa3602bd53183badf1d259128a5f951f32db8cb.tar.gz
gdb-4fa3602bd53183badf1d259128a5f951f32db8cb.tar.bz2
2006-09-16 Paul Brook <paul@codesourcery.com>
gas/ * config/tc-arm.c (s_arm_unwind_movsp): Add offset argument. * doc/c-arm.texi (movsp): Document offset argument. gas/testsuite/ * gas/arm/unwind.s: Test two argument form of .movsp. * gas/arm/unwind.d: Update expected output. * gas/arm/unwind_vxworks.d: Ditto.
Diffstat (limited to 'gas/config')
-rw-r--r--gas/config/tc-arm.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
index e8fe7cf..f203e79 100644
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
@@ -3628,6 +3628,7 @@ s_arm_unwind_movsp (int ignored ATTRIBUTE_UNUSED)
{
int reg;
valueT op;
+ int offset;
reg = arm_reg_parse (&input_line_pointer, REG_TYPE_RN);
if (reg == FAIL)
@@ -3636,6 +3637,16 @@ s_arm_unwind_movsp (int ignored ATTRIBUTE_UNUSED)
ignore_rest_of_line ();
return;
}
+
+ /* Optional constant. */
+ if (skip_past_comma (&input_line_pointer) != FAIL)
+ {
+ if (immediate_for_directive (&offset) == FAIL)
+ return;
+ }
+ else
+ offset = 0;
+
demand_empty_rest_of_line ();
if (reg == REG_SP || reg == REG_PC)
@@ -3653,7 +3664,7 @@ s_arm_unwind_movsp (int ignored ATTRIBUTE_UNUSED)
/* Record the information for later. */
unwind.fp_reg = reg;
- unwind.fp_offset = unwind.frame_size;
+ unwind.fp_offset = unwind.frame_size - offset;
unwind.sp_restored = 1;
}