From f0e8d0bae403e33b8a3e8de5817d8f920e063f84 Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Wed, 15 Jul 2020 08:55:53 +0200 Subject: [PATCH] x86: move putop() case labels to restore alphabetic sorting ... as far as non-fall-through behavior permits. --- opcodes/ChangeLog | 4 ++ opcodes/i386-dis.c | 97 +++++++++++++++++++++++----------------------- 2 files changed, 52 insertions(+), 49 deletions(-) diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index f5907bc802..e4e26a18d6 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,7 @@ +2020-07-15 Jan Beulich + + * i386-dis.c (putop): Move 'V' and 'W' handling. + 2020-07-15 Jan Beulich * i386-dis.c (dis386): Adjust 'V' description. Use P-based diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index 2742cf23be..cd8a9a8d75 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; -- 2.34.1