aboutsummaryrefslogtreecommitdiff
path: root/gas/config/tc-arm.h
diff options
context:
space:
mode:
authorPaul Brook <paul@codesourcery.com>2005-09-06 16:59:24 +0000
committerPaul Brook <paul@codesourcery.com>2005-09-06 16:59:24 +0000
commit0110f2b896d40a2ab1d19b85f7990d1c1a45792a (patch)
tree0b9fef94c8cfa8d6ff26146fd8578e43db60f1b6 /gas/config/tc-arm.h
parent9a64e435419869030e27d54f0433810b8b56d1ac (diff)
downloadgdb-0110f2b896d40a2ab1d19b85f7990d1c1a45792a.zip
gdb-0110f2b896d40a2ab1d19b85f7990d1c1a45792a.tar.gz
gdb-0110f2b896d40a2ab1d19b85f7990d1c1a45792a.tar.bz2
2005-09-06 Paul Brook <paul@codesourcery.com>
gas/ * config/tc-arm.c (arm_it): Add relax field. (T16_32_TAB): Add addi, addis, add_pc, add_sp, dec_sp, inc_sp, b, bcond, ldr_pc, ldr_pc2, ldr_sp, str_sp, subi, subis. (do_t_add_sub, do_t_addr, do_t_branch, do_t_ldst, do_t_mov_cmp): Allow relaxation. (output_relax_insn): New function. (put_thumb32_insn): New function. (output_inst): Use new functions. (md_assemble): Don't throw error on relaxable instructions. (insns): Change "b" entry from TCE(...) to tCE(...). (md_estimate_size_before_relax): Return 2. (md_convert_frag, relax_immediate, relax_adr, relax_addsub, relax_branch, arm_relax_frag): New functions. (arm_force_relocation): Return 0 for Thumb-2 immediate operand relocations. * config/tc-arm.h (md_convert_frag): Remove definition. (md_relax_frag): Define. (arm_relax_frag): Add prototype. gas/testsuite/ * gas/arm/thumb2_relax.d: New test. * gas/arm/thumb2_relax.s: New test. * gas/arm/thumb32.d: Adjust expected results to include relaxation. * gas/arm/thumb32.s: Tweak for better coverage of relaxable instructions. Remove load/store tests.
Diffstat (limited to 'gas/config/tc-arm.h')
-rw-r--r--gas/config/tc-arm.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/gas/config/tc-arm.h b/gas/config/tc-arm.h
index 1def078..c2ae6d6 100644
--- a/gas/config/tc-arm.h
+++ b/gas/config/tc-arm.h
@@ -79,7 +79,9 @@ struct fix;
#define TC_FORCE_RELOCATION(FIX) arm_force_relocation (FIX)
-#define md_convert_frag(b, s, f) { as_fatal (_("arm convert_frag\n")); }
+#define md_relax_frag(segment, fragp, stretch) \
+ arm_relax_frag(segment, fragp, stretch)
+extern int arm_relax_frag (asection *, struct frag *, long);
#define md_cleanup() arm_cleanup ()