summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@codesourcery.com>2007-07-03 07:54:19 +0000
committerNathan Sidwell <nathan@codesourcery.com>2007-07-03 07:54:19 +0000
commitee5dec125ddf74bfbe0e77f17b3e207019edcd1c (patch)
tree61b5792fa1271339dc816dcf949d905cf41119ed
parentd058b81b19dc4312567c4245c9e533c9c728e299 (diff)
downloadcygnal-ee5dec125ddf74bfbe0e77f17b3e207019edcd1c.tar.gz
cygnal-ee5dec125ddf74bfbe0e77f17b3e207019edcd1c.tar.bz2
cygnal-ee5dec125ddf74bfbe0e77f17b3e207019edcd1c.zip
gas/testsuite/
* gas/m68k/mcf-coproc.d: New. * gas/m68k/mcf-coproc.s: New. * gas/m68k/all.exp: Add it. gas/ * config/tc-m68k.c (m68k_ip): Add j & K operand types. (install_operand): Add E encoding. (md_begin): Check and skip initial '.' arg character. (get_num): Add 0..511 case. include/ * opcode/m68k.h: Document j K & E. opcodes/ * m68k-dis.c (fetch_arg): Add E. Replace length switch with direct masking. (print_ins_arg): Add j & K operand types. (match_insn_m68k): Check and skip initial '.' arg character. (m68k_scan_mask): Likewise. * m68k-opc.c (m68k_opcodes): Add coprocessor instructions.
-rw-r--r--include/ChangeLog4
-rw-r--r--include/opcode/m68k.h12
2 files changed, 14 insertions, 2 deletions
diff --git a/include/ChangeLog b/include/ChangeLog
index 8fa288e4a..275d7291d 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,7 @@
+2007-07-03 Nathan Sidwell <nathan@codesourcery.com>
+
+ * opcode/m68k.h: Document j K & E.
+
2007-06-29 M R Swami Reddy <MR.Swami.Reddy@nsc.com>
* dis-asm.h (print_insn_cr16): New prototype.
diff --git a/include/opcode/m68k.h b/include/opcode/m68k.h
index 60bfb3a1b..2dd6d3fed 100644
--- a/include/opcode/m68k.h
+++ b/include/opcode/m68k.h
@@ -96,10 +96,15 @@ struct m68k_opcode_alias
The args field is a string containing two characters for each
operand of the instruction. The first specifies the kind of
- operand; the second, the place it is stored. */
+ operand; the second, the place it is stored.
+
+ If the first char of args is '.', it indicates that the opcode is
+ two words. This is only necessary when the match field does not
+ have any bits set in the second opcode word. Such a '.' is skipped
+ for operand processing. */
/* Kinds of operands:
- Characters used: AaBbCcDdEeFfGgHIiJkLlMmnOopQqRrSsTtU VvWwXxYyZz01234|*~%;@!&$?/<>#^+-
+ Characters used: AaBbCcDdEeFfGgHIiJjKkLlMmnOopQqRrSsTtUuVvWwXxYyZz01234|*~%;@!&$?/<>#^+-
D data register only. Stored as 3 bits.
A address register only. Stored as 3 bits.
@@ -234,6 +239,8 @@ struct m68k_opcode_alias
y (modes 2,5)
z (modes 2,5,7.2)
x mov3q immediate operand.
+ j coprocessor ET operand.
+ K coprocessor command number.
4 (modes 2,3,4,5)
*/
@@ -301,6 +308,7 @@ struct m68k_opcode_alias
7 second word, shifted 7
8 second word, shifted 10
9 second word, shifted 5
+ E second word, shifted 9
D store in both place 1 and place 3; for divul and divsl.
B first word, low byte, for branch displacements
W second word (entire), for branch displacements