* doc/internals.texi (Relaxing with a table) <after relaxation>:
authorHans-Peter Nilsson <hp@axis.com>
Sun, 31 Dec 2000 19:54:58 +0000 (19:54 +0000)
committerHans-Peter Nilsson <hp@axis.com>
Sun, 31 Dec 2000 19:54:58 +0000 (19:54 +0000)
Point out caveats with generating fixups for the opcode in a frag.

gas/ChangeLog
gas/doc/internals.texi

index ba31aa60988c00a43e54af1483ffeef6bd15031d..7432c9f46da7182c6431e9a059826ce9ff52614b 100644 (file)
@@ -1,3 +1,8 @@
+2000-12-31  Hans-Peter Nilsson  <hp@bitrange.com>
+
+       * doc/internals.texi (Relaxing with a table) <after relaxation>:
+       Point out caveats with generating fixups for the opcode in a frag.
+
 Sat Dec 30 19:02:48 MET 2000  Jan Hubicka  <jh@suse.cz>
 
        * configure.in: Add support for x86_64 and x86_64-*-linux-gnu*
index fa99bc61826377d77386690681e5072e0f97d316..a42bc0f50bd40fb4e02a80c30609edda1fe00232 100644 (file)
@@ -1601,6 +1601,16 @@ called to convert the frag to an @code{rs_fill} frag with no variant part.
 Sometimes changing addressing modes may also require rewriting the instruction.
 It can be accessed via @code{fr_opcode} or @code{fr_fix}.
 
+If you generate frags separately for the basic insn opcode and any relaxable
+operands, do not call @code{fix_new} thinking you can emit fixups for the
+opcode field from the relaxable frag.  It is not garanteed to be the same frag.
+If you need to emit fixups for the opcode field from inspection of the
+relaxable frag, then you need to generate a common frag for both the basic
+opcode and relaxable fields, or you need to provide the frag for the opcode to
+pass to @code{fix_new}.  The latter can be done for example by defining
+@code{TC_FRAG_TYPE} to include a pointer to it and defining @code{TC_FRAG_INIT}
+to set the pointer.
+
 Sometimes @code{fr_var} is increased instead, and @code{frag_wane} is not
 called.  I'm not sure, but I think this is to keep @code{fr_fix} referring to
 an earlier byte, and @code{fr_subtype} set to @code{rs_machine_dependent} so
This page took 0.046046 seconds and 4 git commands to generate.