diff options
author | Jan Beulich <jbeulich@suse.com> | 2020-07-15 08:55:53 +0200 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2020-07-15 08:55:53 +0200 |
commit | f0e8d0bae403e33b8a3e8de5817d8f920e063f84 (patch) | |
tree | 2b6cc8e17ad3a1fda68419a99969eb9ab179d83c | |
parent | c3f5525ff1aca37c64365fb3493e86cae5472ad2 (diff) | |
download | gdb-f0e8d0bae403e33b8a3e8de5817d8f920e063f84.zip gdb-f0e8d0bae403e33b8a3e8de5817d8f920e063f84.tar.gz gdb-f0e8d0bae403e33b8a3e8de5817d8f920e063f84.tar.bz2 |
x86: move putop() case labels to restore alphabetic sorting
... as far as non-fall-through behavior permits.
-rw-r--r-- | opcodes/ChangeLog | 4 | ||||
-rw-r--r-- | opcodes/i386-dis.c | 97 |
2 files changed, 52 insertions, 49 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index f5907bc..e4e26a1 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,5 +1,9 @@ 2020-07-15 Jan Beulich <jbeulich@suse.com> + * i386-dis.c (putop): Move 'V' and 'W' handling. + +2020-07-15 Jan Beulich <jbeulich@suse.com> + * i386-dis.c (dis386): Adjust 'V' description. Use P-based construct for push/pop of register. (putop): Honor cond when handling 'P'. Drop handling of plain diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index 2742cf2..cd8a9a8 100644 --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -10742,22 +10742,6 @@ putop (const char *in_template, int sizeflag) if (!(rex & REX_W)) used_prefixes |= (prefixes & PREFIX_DATA); break; - case 'V': - if (l == 0) - abort (); - else if (l == 1 && last[0] == 'L') - { - if (rex & REX_W) - { - *obufp++ = 'a'; - *obufp++ = 'b'; - *obufp++ = 's'; - } - } - else - abort (); - /* Fall through. */ - goto case_S; case 'S': if (l == 0) { @@ -10793,6 +10777,54 @@ putop (const char *in_template, int sizeflag) else abort (); break; + case 'V': + if (l == 0) + abort (); + else if (l == 1 && last[0] == 'L') + { + if (rex & REX_W) + { + *obufp++ = 'a'; + *obufp++ = 'b'; + *obufp++ = 's'; + } + } + else + abort (); + goto case_S; + case 'W': + if (l == 0) + { + /* operand size flag for cwtl, cbtw */ + USED_REX (REX_W); + if (rex & REX_W) + { + if (intel_syntax) + *obufp++ = 'd'; + else + *obufp++ = 'l'; + } + else if (sizeflag & DFLAG) + *obufp++ = 'w'; + else + *obufp++ = 'b'; + if (!(rex & REX_W)) + used_prefixes |= (prefixes & PREFIX_DATA); + } + else if (l == 1) + { + if (!need_vex) + abort (); + if (last[0] == 'X') + *obufp++ = vex.w ? 'd': 's'; + else if (last[0] == 'B') + *obufp++ = vex.w ? 'w': 'b'; + else + abort (); + } + else + abort (); + break; case 'X': if (l != 0) abort (); @@ -10864,39 +10896,6 @@ putop (const char *in_template, int sizeflag) else abort (); break; - case 'W': - if (l == 0) - { - /* operand size flag for cwtl, cbtw */ - USED_REX (REX_W); - if (rex & REX_W) - { - if (intel_syntax) - *obufp++ = 'd'; - else - *obufp++ = 'l'; - } - else if (sizeflag & DFLAG) - *obufp++ = 'w'; - else - *obufp++ = 'b'; - if (!(rex & REX_W)) - used_prefixes |= (prefixes & PREFIX_DATA); - } - else if (l == 1) - { - if (!need_vex) - abort (); - if (last[0] == 'X') - *obufp++ = vex.w ? 'd': 's'; - else if (last[0] == 'B') - *obufp++ = vex.w ? 'w': 'b'; - else - abort (); - } - else - abort (); - break; case '^': if (intel_syntax) break; |