diff options
author | Paul Brook <paul@codesourcery.com> | 2006-09-16 16:24:28 +0000 |
---|---|---|
committer | Paul Brook <paul@codesourcery.com> | 2006-09-16 16:24:28 +0000 |
commit | 4fa3602bd53183badf1d259128a5f951f32db8cb (patch) | |
tree | ace6b6dea4677f55a342aca81e295234d671eefe /gas/config | |
parent | 97725dc4f67140bd0b914a4cb9b92fe94799509c (diff) | |
download | gdb-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.c | 13 |
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; } |