aboutsummaryrefslogtreecommitdiff
path: root/gas/config/xtensa-istack.h
diff options
context:
space:
mode:
authorBob Wilson <bob.wilson@acm.org>2008-11-04 23:11:02 +0000
committerBob Wilson <bob.wilson@acm.org>2008-11-04 23:11:02 +0000
commit19e8f41aa49baed9fd1f4a154e3611bb19de0442 (patch)
tree0df808cc4ca68628c4076fe7afd4f7f28a810327 /gas/config/xtensa-istack.h
parentd3fd534293b3e22ff1aac0e141bb22e99fbbe3c2 (diff)
downloadgdb-19e8f41aa49baed9fd1f4a154e3611bb19de0442.zip
gdb-19e8f41aa49baed9fd1f4a154e3611bb19de0442.tar.gz
gdb-19e8f41aa49baed9fd1f4a154e3611bb19de0442.tar.bz2
2008-11-04 Sterling Augustine <sterling@tensilica.com>
* config/tc-xtensa.c (xtensa_j_opcode): New. (xg_instruction_matches_option_term): Handle "FREEREG" option. (xg_build_to_insn): Likewise. Update renamed tls_reloc reference. (md_begin): Initialize xtensa_j_opcode. (md_assemble): Update renamed tls_reloc reference. Handle "j.l". (xg_assemble_vliw_tokens): Save free_reg info in the frag. (tinsn_immed_from_frag): Get free_reg info back out of the frag. (vinsn_to_insnbuf): Update renamed tls_reloc references. Distinguish extra argument for "FREEREG" from extra TLS argument. * config/tc-xtensa.h (struct xtensa_frag_type): Add free_reg field. * config/xtensa-istack.h (struct tinsn_struct): Rename tls_reloc field to extra_arg. * config/xtensa-relax.c (widen_spec_list): Add rules to relax "j.l". (build_transition): Handle "FREEREG" operand. * config/xtensa-relax.h (enum op_type): Add OP_FREEREG. 2008-11-04 Bob Wilson <bob.wilson@acm.org> * gas/xtensa/all.exp: Run jlong test. * gas/xtensa/jlong.d: New. * gas/xtensa/jlong.s: New.
Diffstat (limited to 'gas/config/xtensa-istack.h')
-rw-r--r--gas/config/xtensa-istack.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/gas/config/xtensa-istack.h b/gas/config/xtensa-istack.h
index 71d9114..3b5b7c2 100644
--- a/gas/config/xtensa-istack.h
+++ b/gas/config/xtensa-istack.h
@@ -49,11 +49,19 @@ typedef struct tinsn_struct
bfd_boolean loc_directive_seen;
struct dwarf2_line_info debug_line;
- expressionS tls_reloc;
+ /* This field is used for two types of special pseudo ops:
+ 1. TLS-related operations. Eg: callx8.tls
+ 2. j.l label, a2
+
+ For the tls-related operations, it will hold a tls-related opcode
+ and info to be used in a fixup. For j.l it will hold a
+ register to be used during relaxation. */
+ expressionS extra_arg;
/* Filled out by relaxation_requirements: */
enum xtensa_relax_statesE subtype;
int literal_space;
+
/* Filled out by vinsn_to_insnbuf: */
symbolS *symbol;
offsetT offset;