diff options
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 28 | ||||
-rw-r--r-- | gas/config/tc-i386.c | 538 | ||||
-rw-r--r-- | gas/config/tc-i386.h | 12 | ||||
-rw-r--r-- | gas/testsuite/ChangeLog | 13 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/i386.exp | 2 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/intel.d | 287 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/intelbad.l | 61 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/intelbad.s | 91 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/intelok.d | 105 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/intelok.s | 105 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/opcode.d | 186 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-opcode.d | 533 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86_64.d | 10 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86_64.s | 6 |
14 files changed, 1330 insertions, 647 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 22643dc..73398b3 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,31 @@ +2004-11-04 Jan Beulich <jbeulich@novell.com> + + * config/tc-i386.c (set_intel_syntax): Allow % in symbol names when + intel syntax and no register prefix, allow $ in symbol names when + intel syntax. + (set_16bit_gcc_code_flag): Replace literal 'l' by LONG_MNEM_SUFFIX. + (intel_float_operand): Add fourth return value indicating math control + operations. Make classification more precise. + (md_assemble): Complain if memory operand of mov[sz]x has no size + specified. + (parse_insn): Translate word operands to floating point instructions + operating on integers as well as control instructions to short ones + as expected by AT&T syntax. Translate 'd' suffix to short one only for + floating point instructions operating on non-integer operands. + (match_template): Remove fldcw special case. Adjust q-suffix handling + to permit it on fild/fistp/fisttp in AT&T mode. + (process_suffix): Don't guess DefaultSize insns' suffix from + stackop_size for certain floating point control instructions. Guess + suffix for branch and [ls][gi]dt based on flag_code. Split error + messages for Intel and AT&T syntax, and make the condition more strict + for the former. Adjust suppressing of generation of operand size + overrides. + (intel parser): Allow the full set of MASM operators. Add FWORD, TBYTE, + OWORD, and XMMWORD operand size specifiers (TBYTE replaces XWORD). Add + more error checking. + * config/tc-i386.h (BYTE_PTR WORD_PTR DWORD_PTR QWORD_PTR XWORD_PTR + SHORT OFFSET_FLAT FLAT NONE_FOUND): Remove unused defines. + 2004-11-03 Hans-Peter Nilsson <hp@axis.com> * symbols.c (colon) [!WORKING_DOT_WORD]: Don't declare diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index b2f42dc..606d16b 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -782,7 +782,7 @@ set_16bit_gcc_code_flag (new_code_flag) flag_code = new_code_flag; cpu_arch_flags &= ~(Cpu64 | CpuNo64); cpu_arch_flags |= (flag_code == CODE_64BIT ? Cpu64 : CpuNo64); - stackop_size = 'l'; + stackop_size = LONG_MNEM_SUFFIX; } static void @@ -815,6 +815,9 @@ set_intel_syntax (syntax_flag) && (bfd_get_symbol_leading_char (stdoutput) != '\0')); else allow_naked_reg = (ask_naked_reg < 0); + + identifier_chars['%'] = intel_syntax && allow_naked_reg ? '%' : 0; + identifier_chars['$'] = intel_syntax ? '$' : 0; } static void @@ -1280,13 +1283,54 @@ static int intel_float_operand (mnemonic) const char *mnemonic; { - if (mnemonic[0] == 'f' && mnemonic[1] == 'i') - return 2; - - if (mnemonic[0] == 'f') - return 1; + /* Note that the value returned is meaningful only for opcodes with (memory) + operands, hence the code here is free to improperly handle opcodes that + have no operands (for better performance and smaller code). */ + + if (mnemonic[0] != 'f') + return 0; /* non-math */ + + switch (mnemonic[1]) + { + /* fclex, fdecstp, fdisi, femms, feni, fincstp, finit, fsetpm, and + the fs segment override prefix not currently handled because no + call path can make opcodes without operands get here */ + case 'i': + return 2 /* integer op */; + case 'l': + if (mnemonic[2] == 'd' && (mnemonic[3] == 'c' || mnemonic[3] == 'e')) + return 3; /* fldcw/fldenv */ + break; + case 'n': + if (mnemonic[2] != 'o' /* fnop */) + return 3; /* non-waiting control op */ + break; + case 'r': + if (mnemonic[2] == 's') + return 3; /* frstor/frstpm */ + break; + case 's': + if (mnemonic[2] == 'a') + return 3; /* fsave */ + if (mnemonic[2] == 't') + { + switch (mnemonic[3]) + { + case 'c': /* fstcw */ + case 'd': /* fstdw */ + case 'e': /* fstenv */ + case 's': /* fsts[gw] */ + return 3; + } + } + break; + case 'x': + if (mnemonic[2] == 'r' || mnemonic[2] == 's') + return 0; /* fxsave/fxrstor are not really math ops */ + break; + } - return 0; + return 1; } /* This is the guts of the machine-dependent assembler. LINE points to a @@ -1358,7 +1402,20 @@ md_assemble (line) "word ptr" or "byte ptr" on the source operand, but we'll use the suffix later to choose the destination register. */ if ((i.tm.base_opcode & ~9) == 0x0fb6) - i.suffix = 0; + { + if (i.reg_operands < 2 + && !i.suffix + && (~i.tm.opcode_modifier + & (No_bSuf + | No_wSuf + | No_lSuf + | No_sSuf + | No_xSuf + | No_qSuf))) + as_bad (_("ambiguous operand size for `%s'"), i.tm.name); + + i.suffix = 0; + } } if (i.tm.opcode_modifier & FWait) @@ -1580,6 +1637,9 @@ parse_insn (line, mnemonic) switch (mnem_p[-1]) { case WORD_MNEM_SUFFIX: + if (intel_syntax && (intel_float_operand (mnemonic) & 2)) + i.suffix = SHORT_MNEM_SUFFIX; + else case BYTE_MNEM_SUFFIX: case QWORD_MNEM_SUFFIX: i.suffix = mnem_p[-1]; @@ -1600,7 +1660,7 @@ parse_insn (line, mnemonic) case 'd': if (intel_syntax) { - if (intel_float_operand (mnemonic)) + if (intel_float_operand (mnemonic) == 1) i.suffix = SHORT_MNEM_SUFFIX; else i.suffix = LONG_MNEM_SUFFIX; @@ -2020,9 +2080,10 @@ match_template () t = current_templates->start; if (i.suffix == QWORD_MNEM_SUFFIX && flag_code != CODE_64BIT - && (!intel_syntax - || (!(t->opcode_modifier & IgnoreSize) - && ! intel_float_operand (t->name))) + && (intel_syntax + ? !(t->opcode_modifier & IgnoreSize) + && !intel_float_operand (t->name) + : intel_float_operand (t->name) != 2) && (!(t->operand_types[0] & (RegMMX | RegXMM)) || !(t->operand_types[t->operands > 1] & (RegMMX | RegXMM))) && (t->base_opcode != 0x0fc7 @@ -2037,11 +2098,7 @@ match_template () /* Check the suffix, except for some instructions in intel mode. */ if ((t->opcode_modifier & suffix_check) && !(intel_syntax - && (t->opcode_modifier & IgnoreSize)) - && !(intel_syntax - && t->base_opcode == 0xd9 - && (t->extension_opcode == 5 /* 0xd9,5 "fldcw" */ - || t->extension_opcode == 7))) /* 0xd9,7 "f{n}stcw" */ + && (t->opcode_modifier & IgnoreSize))) continue; /* Do not verify operands when there are none. */ @@ -2256,22 +2313,75 @@ process_suffix (void) else abort (); } - else if ((i.tm.opcode_modifier & DefaultSize) && !i.suffix) + else if ((i.tm.opcode_modifier & DefaultSize) + && !i.suffix + /* exclude fldenv/frstor/fsave/fstenv */ + && (i.tm.opcode_modifier & No_sSuf)) { i.suffix = stackop_size; if (i.suffix == QWORD_MNEM_SUFFIX && (i.tm.opcode_modifier & No_qSuf)) i.suffix = LONG_MNEM_SUFFIX; } + else if (intel_syntax + && !i.suffix + && ((i.tm.operand_types[0] & JumpAbsolute) + || (i.tm.opcode_modifier & (JumpByte|JumpInterSegment)) + || (i.tm.base_opcode == 0x0f01 /* [ls][gi]dt */ + && i.tm.extension_opcode <= 3))) + { + switch (flag_code) + { + case CODE_64BIT: + if (!(i.tm.opcode_modifier & No_qSuf)) + { + i.suffix = QWORD_MNEM_SUFFIX; + break; + } + case CODE_32BIT: + if (!(i.tm.opcode_modifier & No_lSuf)) + i.suffix = LONG_MNEM_SUFFIX; + break; + case CODE_16BIT: + if (!(i.tm.opcode_modifier & No_wSuf)) + i.suffix = WORD_MNEM_SUFFIX; + break; + } + } - /* Change the opcode based on the operand size given by i.suffix; - We need not change things for byte insns. */ - if (!i.suffix && (i.tm.opcode_modifier & W)) + if (!i.suffix) { - as_bad (_("no instruction mnemonic suffix given and no register operands; can't size instruction")); - return 0; + if (!intel_syntax) + { + if (i.tm.opcode_modifier & W) + { + as_bad (_("no instruction mnemonic suffix given and no register operands; can't size instruction")); + return 0; + } + } + else + { + unsigned int suffixes = ~i.tm.opcode_modifier + & (No_bSuf + | No_wSuf + | No_lSuf + | No_sSuf + | No_xSuf + | No_qSuf); + + if ((i.tm.opcode_modifier & W) + || ((suffixes & (suffixes - 1)) + && !(i.tm.opcode_modifier & (DefaultSize | IgnoreSize)))) + { + as_bad (_("ambiguous operand size for `%s'"), i.tm.name); + return 0; + } + } } + /* Change the opcode based on the operand size given by i.suffix; + We don't need to change things for byte insns. */ + if (i.suffix && i.suffix != BYTE_MNEM_SUFFIX) { /* It's not a byte, select word/dword operation. */ @@ -2287,7 +2397,8 @@ process_suffix (void) size prefix, except for instructions that will ignore this prefix anyway. */ if (i.suffix != QWORD_MNEM_SUFFIX - && !(i.tm.opcode_modifier & IgnoreSize) + && i.suffix != LONG_DOUBLE_MNEM_SUFFIX + && !(i.tm.opcode_modifier & (IgnoreSize | FloatMF)) && ((i.suffix == LONG_MNEM_SUFFIX) == (flag_code == CODE_16BIT) || (flag_code == CODE_64BIT && (i.tm.opcode_modifier & JumpByte)))) @@ -5336,15 +5447,17 @@ tc_gen_reloc (section, fixp) Initial production is 'expr'. - addOp + | - | & | \| | << | >> + addOp + | - alpha [a-zA-Z] + binOp & | AND | \| | OR | ^ | XOR + byteRegister AL | AH | BL | BH | CL | CH | DL | DH constant digits [[ radixOverride ]] - dataType BYTE | WORD | DWORD | QWORD | XWORD + dataType BYTE | WORD | DWORD | FWORD | QWORD | TBYTE | OWORD | XMMWORD digits decdigit | digits decdigit @@ -5352,13 +5465,18 @@ tc_gen_reloc (section, fixp) decdigit [0-9] - e05 e05 addOp e06 + e04 e04 addOp e05 + | e05 + + e05 e05 binOp e06 | e06 e06 e06 mulOp e09 | e09 e09 OFFSET e10 + | ~ e10 + | NOT e10 | e09 PTR e10 | e09 : e10 | e10 @@ -5373,10 +5491,9 @@ tc_gen_reloc (section, fixp) | id | $ | register - | ~ - => expr SHORT e05 - | e05 + => expr SHORT e04 + | e04 gpRegister AX | EAX | BX | EBX | CX | ECX | DX | EDX | BP | EBP | SP | ESP | DI | EDI | SI | ESI @@ -5388,7 +5505,7 @@ tc_gen_reloc (section, fixp) | id alpha | id decdigit - mulOp * | / | MOD + mulOp * | / | % | MOD | << | SHL | >> | SHR quote " | ' @@ -5398,7 +5515,7 @@ tc_gen_reloc (section, fixp) segmentRegister CS | DS | ES | FS | GS | SS - specialRegister CR0 | CR2 | CR3 + specialRegister CR0 | CR2 | CR3 | CR4 | DR0 | DR1 | DR2 | DR3 | DR6 | DR7 | TR3 | TR4 | TR5 | TR6 | TR7 @@ -5406,12 +5523,17 @@ tc_gen_reloc (section, fixp) done by calling parse_register) and eliminate immediate left recursion to implement a recursive-descent parser. - expr SHORT e05 - | e05 + expr SHORT e04 + | e04 + + e04 e05 e04' + + e04' addOp e05 e04' + | Empty e05 e06 e05' - e05' addOp e06 e05' + e05' binOp e06 e05' | Empty e06 e09 e06' @@ -5420,6 +5542,8 @@ tc_gen_reloc (section, fixp) | Empty e09 OFFSET e10 e09' + | ~ e10 + | NOT e10 | e10 e09' e09' PTR e10 e09' @@ -5436,13 +5560,15 @@ tc_gen_reloc (section, fixp) | BYTE | WORD | DWORD + | FWORD | QWORD - | XWORD + | TBYTE + | OWORD + | XMMWORD | . | $ | register | id - | ~ | constant */ /* Parsing structure for the intel syntax parser. Used to implement the @@ -5476,21 +5602,26 @@ static struct intel_token cur_token, prev_token; #define T_REG 2 #define T_BYTE 3 #define T_WORD 4 -#define T_DWORD 5 -#define T_QWORD 6 -#define T_XWORD 7 +#define T_DWORD 5 +#define T_FWORD 6 +#define T_QWORD 7 +#define T_TBYTE 8 +#define T_XMMWORD 9 #undef T_SHORT -#define T_SHORT 8 -#define T_OFFSET 9 -#define T_PTR 10 -#define T_ID 11 -#define T_SHIFTOP 12 +#define T_SHORT 10 +#define T_OFFSET 11 +#define T_PTR 12 +#define T_ID 13 +#define T_SHL 14 +#define T_SHR 15 /* Prototypes for intel parser functions. */ static int intel_match_token PARAMS ((int code)); static void intel_get_token PARAMS ((void)); static void intel_putback_token PARAMS ((void)); static int intel_expr PARAMS ((void)); +static int intel_e04 PARAMS ((void)); +static int intel_e04_1 PARAMS ((void)); static int intel_e05 PARAMS ((void)); static int intel_e05_1 PARAMS ((void)); static int intel_e06 PARAMS ((void)); @@ -5534,9 +5665,15 @@ i386_intel_operand (operand_string, got_a_float) if (ret) { + if (cur_token.code != T_NIL) + { + as_bad (_("invalid operand for '%s' ('%s' unexpected)"), + current_templates->start->name, cur_token.str); + ret = 0; + } /* If we found a memory reference, hand it over to i386_displacement to fill in the rest of the operand fields. */ - if (intel_parser.is_mem) + else if (intel_parser.is_mem) { if ((i.mem_operands == 1 && (current_templates->start->opcode_modifier & IsString) == 0) @@ -5560,7 +5697,7 @@ i386_intel_operand (operand_string, got_a_float) } /* Constant and OFFSET expressions are handled by i386_immediate. */ - else if (intel_parser.op_modifier == OFFSET_FLAT + else if (intel_parser.op_modifier == T_OFFSET || intel_parser.reg == NULL) ret = i386_immediate (intel_parser.disp); } @@ -5571,28 +5708,59 @@ i386_intel_operand (operand_string, got_a_float) return ret; } -/* expr SHORT e05 - | e05 */ +/* expr SHORT e04 + | e04 */ static int intel_expr () { - /* expr SHORT e05 */ + /* expr SHORT e04 */ if (cur_token.code == T_SHORT) { - intel_parser.op_modifier = SHORT; + intel_parser.op_modifier = T_SHORT; intel_match_token (T_SHORT); - return (intel_e05 ()); + return (intel_e04 ()); + } + + /* expr e04 */ + else + return intel_e04 (); +} + +/* e04 e06 e04' + + e04' addOp e06 e04' + | Empty */ +static int +intel_e04 () +{ + return (intel_e05 () && intel_e04_1 ()); +} + +static int +intel_e04_1 () +{ + /* e04' addOp e05 e04' */ + if (cur_token.code == '+' || cur_token.code == '-') + { + char str[2]; + + str[0] = cur_token.code; + str[1] = 0; + strcat (intel_parser.disp, str); + intel_match_token (cur_token.code); + + return (intel_e05 () && intel_e04_1 ()); } - /* expr e05 */ + /* e04' Empty */ else - return intel_e05 (); + return 1; } /* e05 e06 e05' - e05' addOp e06 e05' + e05' binOp e06 e05' | Empty */ static int intel_e05 () @@ -5603,12 +5771,14 @@ intel_e05 () static int intel_e05_1 () { - /* e05' addOp e06 e05' */ - if (cur_token.code == '+' || cur_token.code == '-' - || cur_token.code == '&' || cur_token.code == '|' - || cur_token.code == T_SHIFTOP) + /* e05' binOp e06 e05' */ + if (cur_token.code == '&' || cur_token.code == '|' || cur_token.code == '^') { - strcat (intel_parser.disp, cur_token.str); + char str[2]; + + str[0] = cur_token.code; + str[1] = 0; + strcat (intel_parser.disp, str); intel_match_token (cur_token.code); return (intel_e06 () && intel_e05_1 ()); @@ -5633,9 +5803,27 @@ static int intel_e06_1 () { /* e06' mulOp e09 e06' */ - if (cur_token.code == '*' || cur_token.code == '/') + if (cur_token.code == '*' || cur_token.code == '/' || cur_token.code == '%') { - strcat (intel_parser.disp, cur_token.str); + char str[2]; + + str[0] = cur_token.code; + str[1] = 0; + strcat (intel_parser.disp, str); + intel_match_token (cur_token.code); + + return (intel_e09 () && intel_e06_1 ()); + } + else if (cur_token.code == T_SHL) + { + strcat (intel_parser.disp, "<<"); + intel_match_token (cur_token.code); + + return (intel_e09 () && intel_e06_1 ()); + } + else if (cur_token.code == T_SHR) + { + strcat (intel_parser.disp, ">>"); intel_match_token (cur_token.code); return (intel_e09 () && intel_e06_1 ()); @@ -5649,6 +5837,10 @@ intel_e06_1 () /* e09 OFFSET e10 e09' | e10 e09' + e09 ~ e10 e09' + | NOT e10 e09' + | e10 e09' + e09' PTR e10 e09' | : e10 e09' | Empty */ @@ -5659,12 +5851,25 @@ intel_e09 () if (cur_token.code == T_OFFSET) { intel_parser.is_mem = 0; - intel_parser.op_modifier = OFFSET_FLAT; + intel_parser.op_modifier = T_OFFSET; intel_match_token (T_OFFSET); return (intel_e10 () && intel_e09_1 ()); } + /* e09 NOT e10 e09' */ + else if (cur_token.code == '~') + { + char str[2]; + + str[0] = cur_token.code; + str[1] = 0; + strcat (intel_parser.disp, str); + intel_match_token (cur_token.code); + + return (intel_e10 () && intel_e09_1 ()); + } + /* e09 e10 e09' */ else return (intel_e10 () && intel_e09_1 ()); @@ -5676,35 +5881,76 @@ intel_e09_1 () /* e09' PTR e10 e09' */ if (cur_token.code == T_PTR) { + char suffix; + if (prev_token.code == T_BYTE) - i.suffix = BYTE_MNEM_SUFFIX; + suffix = BYTE_MNEM_SUFFIX; else if (prev_token.code == T_WORD) { - if (intel_parser.got_a_float == 2) /* "fi..." */ - i.suffix = SHORT_MNEM_SUFFIX; + if (current_templates->start->name[0] == 'l' + && current_templates->start->name[2] == 's' + && current_templates->start->name[3] == 0) + suffix = BYTE_MNEM_SUFFIX; /* so it will cause an error */ + else if (intel_parser.got_a_float == 2) /* "fi..." */ + suffix = SHORT_MNEM_SUFFIX; else - i.suffix = WORD_MNEM_SUFFIX; + suffix = WORD_MNEM_SUFFIX; } else if (prev_token.code == T_DWORD) { - if (intel_parser.got_a_float == 1) /* "f..." */ - i.suffix = SHORT_MNEM_SUFFIX; + if (current_templates->start->name[0] == 'l' + && current_templates->start->name[2] == 's' + && current_templates->start->name[3] == 0) + suffix = WORD_MNEM_SUFFIX; + else if (flag_code == CODE_16BIT + && (current_templates->start->opcode_modifier + & (Jump|JumpDword|JumpInterSegment))) + suffix = LONG_DOUBLE_MNEM_SUFFIX; + else if (intel_parser.got_a_float == 1) /* "f..." */ + suffix = SHORT_MNEM_SUFFIX; else - i.suffix = LONG_MNEM_SUFFIX; + suffix = LONG_MNEM_SUFFIX; + } + + else if (prev_token.code == T_FWORD) + { + if (current_templates->start->name[0] == 'l' + && current_templates->start->name[2] == 's' + && current_templates->start->name[3] == 0) + suffix = LONG_MNEM_SUFFIX; + else if (!intel_parser.got_a_float) + { + if (flag_code == CODE_16BIT) + add_prefix (DATA_PREFIX_OPCODE); + suffix = LONG_DOUBLE_MNEM_SUFFIX; + } + else + suffix = BYTE_MNEM_SUFFIX; /* so it will cause an error */ } else if (prev_token.code == T_QWORD) { if (intel_parser.got_a_float == 1) /* "f..." */ - i.suffix = LONG_MNEM_SUFFIX; + suffix = LONG_MNEM_SUFFIX; else - i.suffix = QWORD_MNEM_SUFFIX; + suffix = QWORD_MNEM_SUFFIX; } - else if (prev_token.code == T_XWORD) - i.suffix = LONG_DOUBLE_MNEM_SUFFIX; + else if (prev_token.code == T_TBYTE) + { + if (intel_parser.got_a_float == 1) + suffix = LONG_DOUBLE_MNEM_SUFFIX; + else + suffix = BYTE_MNEM_SUFFIX; /* so it will cause an error */ + } + + else if (prev_token.code == T_XMMWORD) + { + /* XXX ignored for now, but accepted since gcc uses it */ + suffix = 0; + } else { @@ -5712,6 +5958,16 @@ intel_e09_1 () return 0; } + if (current_templates->start->base_opcode == 0x8d /* lea */) + ; + else if (!i.suffix) + i.suffix = suffix; + else if (i.suffix != suffix) + { + as_bad (_("Conflicting operand modifiers")); + return 0; + } + intel_match_token (T_PTR); return (intel_e10 () && intel_e09_1 ()); @@ -5722,7 +5978,7 @@ intel_e09_1 () { /* Mark as a memory operand only if it's not already known to be an offset expression. */ - if (intel_parser.op_modifier != OFFSET_FLAT) + if (intel_parser.op_modifier != T_OFFSET) intel_parser.is_mem = 1; return (intel_match_token (':') && intel_e10 () && intel_e09_1 ()); @@ -5754,7 +6010,7 @@ intel_e10_1 () /* Mark as a memory operand only if it's not already known to be an offset expression. If it's an offset expression, we need to keep the brace in. */ - if (intel_parser.op_modifier != OFFSET_FLAT) + if (intel_parser.op_modifier != T_OFFSET) intel_parser.is_mem = 1; else strcat (intel_parser.disp, "["); @@ -5767,7 +6023,7 @@ intel_e10_1 () if (intel_expr () && intel_match_token (']')) { /* Preserve brackets when the operand is an offset expression. */ - if (intel_parser.op_modifier == OFFSET_FLAT) + if (intel_parser.op_modifier == T_OFFSET) strcat (intel_parser.disp, "]"); return intel_e10_1 (); @@ -5786,13 +6042,15 @@ intel_e10_1 () | BYTE | WORD | DWORD + | FWORD | QWORD - | XWORD + | TBYTE + | OWORD + | XMMWORD | $ | . | register | id - | ~ | constant */ static int intel_e11 () @@ -5812,15 +6070,6 @@ intel_e11 () return 0; } - /* e11 ~ expr */ - else if (cur_token.code == '~') - { - strcat (intel_parser.disp, "~"); - intel_match_token ('~'); - - return (intel_e11 ()); - } - /* e11 [ expr ] */ else if (cur_token.code == '[') { @@ -5829,16 +6078,14 @@ intel_e11 () /* Mark as a memory operand only if it's not already known to be an offset expression. If it's an offset expression, we need to keep the brace in. */ - if (intel_parser.op_modifier != OFFSET_FLAT) + if (intel_parser.op_modifier != T_OFFSET) intel_parser.is_mem = 1; else strcat (intel_parser.disp, "["); /* Operands for jump/call inside brackets denote absolute addresses. */ - if (current_templates->start->opcode_modifier & Jump - || current_templates->start->opcode_modifier & JumpDword - || current_templates->start->opcode_modifier & JumpByte - || current_templates->start->opcode_modifier & JumpInterSegment) + if (current_templates->start->opcode_modifier + & (Jump|JumpDword|JumpByte|JumpInterSegment)) i.types[this_operand] |= JumpAbsolute; /* Add a '+' to the displacement string if necessary. */ @@ -5849,7 +6096,7 @@ intel_e11 () if (intel_expr () && intel_match_token (']')) { /* Preserve brackets when the operand is an offset expression. */ - if (intel_parser.op_modifier == OFFSET_FLAT) + if (intel_parser.op_modifier == T_OFFSET) strcat (intel_parser.disp, "]"); return 1; @@ -5861,13 +6108,18 @@ intel_e11 () /* e11 BYTE | WORD | DWORD + | FWORD | QWORD - | XWORD */ + | TBYTE + | OWORD + | XMMWORD */ else if (cur_token.code == T_BYTE || cur_token.code == T_WORD || cur_token.code == T_DWORD + || cur_token.code == T_FWORD || cur_token.code == T_QWORD - || cur_token.code == T_XWORD) + || cur_token.code == T_TBYTE + || cur_token.code == T_XMMWORD) { intel_match_token (cur_token.code); @@ -5876,14 +6128,14 @@ intel_e11 () /* e11 $ | . */ - else if (cur_token.code == '$' || cur_token.code == '.') + else if (cur_token.code == '.') { strcat (intel_parser.disp, cur_token.str); intel_match_token (cur_token.code); /* Mark as a memory operand only if it's not already known to be an offset expression. */ - if (intel_parser.op_modifier != OFFSET_FLAT) + if (intel_parser.op_modifier != T_OFFSET) intel_parser.is_mem = 1; return 1; @@ -5980,7 +6232,7 @@ intel_e11 () /* Offset modifier. Add the register to the displacement string to be parsed as an immediate expression after we're done. */ - else if (intel_parser.op_modifier == OFFSET_FLAT) + else if (intel_parser.op_modifier == T_OFFSET) strcat (intel_parser.disp, reg->reg_name); /* It's neither base nor index nor offset. */ @@ -5995,7 +6247,7 @@ intel_e11 () when we're parsing offset operands), we may need to remove any preceding '+' from the displacement string. */ if (*intel_parser.disp != '\0' - && intel_parser.op_modifier != OFFSET_FLAT) + && intel_parser.op_modifier != T_OFFSET) { char *s = intel_parser.disp; s += strlen (s) - 1; @@ -6011,13 +6263,19 @@ intel_e11 () { /* Add the identifier to the displacement string. */ strcat (intel_parser.disp, cur_token.str); - intel_match_token (T_ID); /* The identifier represents a memory reference only if it's not - preceded by an offset modifier. */ - if (intel_parser.op_modifier != OFFSET_FLAT) - intel_parser.is_mem = 1; + preceded by an offset modifier and if it's not an equate. */ + if (intel_parser.op_modifier != T_OFFSET) + { + symbolS *symbolP; + + symbolP = symbol_find(cur_token.str); + if (!symbolP || S_GET_SEGMENT(symbolP) != absolute_section) + intel_parser.is_mem = 1; + } + intel_match_token (T_ID); return 1; } @@ -6183,22 +6441,6 @@ intel_get_token () new_token.code = T_ID; } - else if (strchr ("<>", *intel_parser.op_string) - && *intel_parser.op_string == *(intel_parser.op_string + 1)) - { - new_token.code = T_SHIFTOP; - new_token.str[0] = *intel_parser.op_string; - new_token.str[1] = *intel_parser.op_string; - new_token.str[2] = '\0'; - } - - else if (strchr ("+-/*&|:[]()~", *intel_parser.op_string)) - { - new_token.code = *intel_parser.op_string; - new_token.str[0] = *intel_parser.op_string; - new_token.str[1] = '\0'; - } - else if ((*intel_parser.op_string == REGISTER_PREFIX || allow_naked_reg) && ((reg = parse_register (intel_parser.op_string, &end_op)) != NULL)) { @@ -6223,8 +6465,8 @@ intel_get_token () Otherwise, it's operator '.' followed by an expression. */ if ((*q == '.' || *q == '$') && !is_identifier_char (*(q + 1))) { - new_token.code = *q; - new_token.str[0] = *q; + new_token.code = '.'; + new_token.str[0] = '.'; new_token.str[1] = '\0'; } else @@ -6233,7 +6475,28 @@ intel_get_token () *p++ = *q++; *p = '\0'; - if (strcasecmp (new_token.str, "BYTE") == 0) + if (strcasecmp (new_token.str, "NOT") == 0) + new_token.code = '~'; + + else if (strcasecmp (new_token.str, "MOD") == 0) + new_token.code = '%'; + + else if (strcasecmp (new_token.str, "AND") == 0) + new_token.code = '&'; + + else if (strcasecmp (new_token.str, "OR") == 0) + new_token.code = '|'; + + else if (strcasecmp (new_token.str, "XOR") == 0) + new_token.code = '^'; + + else if (strcasecmp (new_token.str, "SHL") == 0) + new_token.code = T_SHL; + + else if (strcasecmp (new_token.str, "SHR") == 0) + new_token.code = T_SHR; + + else if (strcasecmp (new_token.str, "BYTE") == 0) new_token.code = T_BYTE; else if (strcasecmp (new_token.str, "WORD") == 0) @@ -6242,11 +6505,20 @@ intel_get_token () else if (strcasecmp (new_token.str, "DWORD") == 0) new_token.code = T_DWORD; + else if (strcasecmp (new_token.str, "FWORD") == 0) + new_token.code = T_FWORD; + else if (strcasecmp (new_token.str, "QWORD") == 0) new_token.code = T_QWORD; - else if (strcasecmp (new_token.str, "XWORD") == 0) - new_token.code = T_XWORD; + else if (strcasecmp (new_token.str, "TBYTE") == 0 + /* XXX remove (gcc still uses it) */ + || strcasecmp (new_token.str, "XWORD") == 0) + new_token.code = T_TBYTE; + + else if (strcasecmp (new_token.str, "XMMWORD") == 0 + || strcasecmp (new_token.str, "OWORD") == 0) + new_token.code = T_XMMWORD; else if (strcasecmp (new_token.str, "PTR") == 0) new_token.code = T_PTR; @@ -6274,6 +6546,22 @@ intel_get_token () } } + else if (strchr ("+-/*%|&^:[]()~", *intel_parser.op_string)) + { + new_token.code = *intel_parser.op_string; + new_token.str[0] = *intel_parser.op_string; + new_token.str[1] = '\0'; + } + + else if (strchr ("<>", *intel_parser.op_string) + && *intel_parser.op_string == *(intel_parser.op_string + 1)) + { + new_token.code = *intel_parser.op_string == '<' ? T_SHL : T_SHR; + new_token.str[0] = *intel_parser.op_string; + new_token.str[1] = *intel_parser.op_string; + new_token.str[2] = '\0'; + } + else as_bad (_("Unrecognized token `%s'"), intel_parser.op_string); diff --git a/gas/config/tc-i386.h b/gas/config/tc-i386.h index d5d0ca8..3b377cc 100644 --- a/gas/config/tc-i386.h +++ b/gas/config/tc-i386.h @@ -141,18 +141,6 @@ extern const char extra_symbol_chars[]; #define END_OF_INSN '\0' -/* Intel Syntax */ -/* Values 0-4 map onto scale factor */ -#define BYTE_PTR 0 -#define WORD_PTR 1 -#define DWORD_PTR 2 -#define QWORD_PTR 3 -#define XWORD_PTR 4 -#define SHORT 5 -#define OFFSET_FLAT 6 -#define FLAT 7 -#define NONE_FOUND 8 - typedef struct { /* instruction name sans width suffix ("mov" for movl insns) */ diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 9ee7fb9..fd8f478 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,16 @@ +2004-11-04 Jan Beulich <jbeulich@novell.com> + * gas/i386/i386.exp: Execute new tests intelbad and intelok. + * gas/i386/intelbad.[sl]: New test to check for various things not + permitted in Intel mode. + * gas/i386/intel.d, gas/i386/opcode.d, gas/i386/x86-64-opcode.d: + Adjust for change to segment register store. + * gas/i386/intelok.[sd]: New test to check various Intel mode specific + things get handled correctly. + * gas/i386/x86_64.[sd]: Remove unsupported constructs referring to + 'high' and 'low' parts of an operand, which the parser previously + accepted while neither telling that it's not supported nor that it + ignored the remainder of the line following these supposed keywords. + 2004-10-28 Tomer Levi <Tomer.Levi@nsc.com> * gas/crx/cop_insn.d: Regenerate (after a bug fix in Assembler). diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp index 2fe7ffb..1846268 100644 --- a/gas/testsuite/gas/i386/i386.exp +++ b/gas/testsuite/gas/i386/i386.exp @@ -47,6 +47,8 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_32_check]] run_dump_test "opcode" run_dump_test "intel" run_dump_test "intel16" + run_list_test "intelbad" "" + run_dump_test "intelok" run_dump_test "prefix" run_dump_test "amd" run_dump_test "katmai" diff --git a/gas/testsuite/gas/i386/intel.d b/gas/testsuite/gas/i386/intel.d index 66fd1d7..24f4536 100644 --- a/gas/testsuite/gas/i386/intel.d +++ b/gas/testsuite/gas/i386/intel.d @@ -480,151 +480,152 @@ Disassembly of section .text: 7be: 66 87 90 90 90 90 90 [ ]*xchg %dx,0x90909090\(%eax\) 7c5: 66 89 90 90 90 90 90 [ ]*mov %dx,0x90909090\(%eax\) 7cc: 66 8b 90 90 90 90 90 [ ]*mov 0x90909090\(%eax\),%dx - 7d3: 66 8c 90 90 90 90 90 [ ]*movw %ss,0x90909090\(%eax\) - 7da: 66 8d 90 90 90 90 90 [ ]*lea 0x90909090\(%eax\),%dx - 7e1: 66 8f 80 90 90 90 90 [ ]*popw 0x90909090\(%eax\) - 7e8: 66 91 [ ]*xchg %ax,%cx - 7ea: 66 92 [ ]*xchg %ax,%dx - 7ec: 66 93 [ ]*xchg %ax,%bx - 7ee: 66 94 [ ]*xchg %ax,%sp - 7f0: 66 95 [ ]*xchg %ax,%bp - 7f2: 66 96 [ ]*xchg %ax,%si - 7f4: 66 97 [ ]*xchg %ax,%di - 7f6: 66 98 [ ]*cbtw - 7f8: 66 99 [ ]*cwtd - 7fa: 66 9a 90 90 90 90 [ ]*lcallw \$0x9090,\$0x9090 - 800: 66 9c [ ]*pushfw - 802: 66 9d [ ]*popfw - 804: 66 a1 90 90 90 90 [ ]*mov 0x90909090,%ax - 80a: 66 a3 90 90 90 90 [ ]*mov %ax,0x90909090 - 810: 66 a5 [ ]*movsw %ds:\(%esi\),%es:\(%edi\) - 812: 66 a7 [ ]*cmpsw %es:\(%edi\),%ds:\(%esi\) - 814: 66 a9 90 90 [ ]*test \$0x9090,%ax - 818: 66 ab [ ]*stos %ax,%es:\(%edi\) - 81a: 66 ad [ ]*lods %ds:\(%esi\),%ax - 81c: 66 af [ ]*scas %es:\(%edi\),%ax - 81e: 66 b8 90 90 [ ]*mov \$0x9090,%ax - 822: 66 b9 90 90 [ ]*mov \$0x9090,%cx - 826: 66 ba 90 90 [ ]*mov \$0x9090,%dx - 82a: 66 bb 90 90 [ ]*mov \$0x9090,%bx - 82e: 66 bc 90 90 [ ]*mov \$0x9090,%sp - 832: 66 bd 90 90 [ ]*mov \$0x9090,%bp - 836: 66 be 90 90 [ ]*mov \$0x9090,%si - 83a: 66 bf 90 90 [ ]*mov \$0x9090,%di - 83e: 66 c1 90 90 90 90 90 90 [ ]*rclw \$0x90,0x90909090\(%eax\) - 846: 66 c2 90 90 [ ]*retw \$0x9090 - 84a: 66 c3 [ ]*retw - 84c: 66 c4 90 90 90 90 90 [ ]*les 0x90909090\(%eax\),%dx - 853: 66 c5 90 90 90 90 90 [ ]*lds 0x90909090\(%eax\),%dx - 85a: 66 c7 80 90 90 90 90 90 90 [ ]*movw \$0x9090,0x90909090\(%eax\) - 863: 66 c8 90 90 90 [ ]*enterw \$0x9090,\$0x90 - 868: 66 c9 [ ]*leavew - 86a: 66 ca 90 90 [ ]*lretw \$0x9090 - 86e: 66 cb [ ]*lretw - 870: 66 cf [ ]*iretw - 872: 66 d1 90 90 90 90 90 [ ]*rclw 0x90909090\(%eax\) - 879: 66 d3 90 90 90 90 90 [ ]*rclw %cl,0x90909090\(%eax\) - 880: 66 e5 90 [ ]*in \$0x90,%ax - 883: 66 e7 90 [ ]*out %ax,\$0x90 - 886: 66 e8 8f 90 [ ]*callw (0x)?9919.* - 88a: 66 ea 90 90 90 90 [ ]*ljmpw \$0x9090,\$0x9090 - 890: 66 ed [ ]*in \(%dx\),%ax - 892: 66 ef [ ]*out %ax,\(%dx\) - 894: 66 f7 90 90 90 90 90 [ ]*notw 0x90909090\(%eax\) - 89b: 66 ff 90 90 90 90 90 [ ]*callw \*0x90909090\(%eax\) - 8a2: 66 0f 02 90 90 90 90 90 [ ]*lar 0x90909090\(%eax\),%dx - 8aa: 66 0f 03 90 90 90 90 90 [ ]*lsl 0x90909090\(%eax\),%dx - 8b2: 66 0f 40 90 90 90 90 90 [ ]*cmovo 0x90909090\(%eax\),%dx - 8ba: 66 0f 41 90 90 90 90 90 [ ]*cmovno 0x90909090\(%eax\),%dx - 8c2: 66 0f 42 90 90 90 90 90 [ ]*cmovb 0x90909090\(%eax\),%dx - 8ca: 66 0f 43 90 90 90 90 90 [ ]*cmovae 0x90909090\(%eax\),%dx - 8d2: 66 0f 44 90 90 90 90 90 [ ]*cmove 0x90909090\(%eax\),%dx - 8da: 66 0f 45 90 90 90 90 90 [ ]*cmovne 0x90909090\(%eax\),%dx - 8e2: 66 0f 46 90 90 90 90 90 [ ]*cmovbe 0x90909090\(%eax\),%dx - 8ea: 66 0f 47 90 90 90 90 90 [ ]*cmova 0x90909090\(%eax\),%dx - 8f2: 66 0f 48 90 90 90 90 90 [ ]*cmovs 0x90909090\(%eax\),%dx - 8fa: 66 0f 49 90 90 90 90 90 [ ]*cmovns 0x90909090\(%eax\),%dx - 902: 66 0f 4a 90 90 90 90 90 [ ]*cmovp 0x90909090\(%eax\),%dx - 90a: 66 0f 4b 90 90 90 90 90 [ ]*cmovnp 0x90909090\(%eax\),%dx - 912: 66 0f 4c 90 90 90 90 90 [ ]*cmovl 0x90909090\(%eax\),%dx - 91a: 66 0f 4d 90 90 90 90 90 [ ]*cmovge 0x90909090\(%eax\),%dx - 922: 66 0f 4e 90 90 90 90 90 [ ]*cmovle 0x90909090\(%eax\),%dx - 92a: 66 0f 4f 90 90 90 90 90 [ ]*cmovg 0x90909090\(%eax\),%dx - 932: 66 0f a0 [ ]*pushw %fs - 935: 66 0f a1 [ ]*popw %fs - 938: 66 0f a3 90 90 90 90 90 [ ]*bt %dx,0x90909090\(%eax\) - 940: 66 0f a4 90 90 90 90 90 90 [ ]*shld \$0x90,%dx,0x90909090\(%eax\) - 949: 66 0f a5 90 90 90 90 90 [ ]*shld %cl,%dx,0x90909090\(%eax\) - 951: 66 0f a8 [ ]*pushw %gs - 954: 66 0f a9 [ ]*popw %gs - 957: 66 0f ab 90 90 90 90 90 [ ]*bts %dx,0x90909090\(%eax\) - 95f: 66 0f ac 90 90 90 90 90 90 [ ]*shrd \$0x90,%dx,0x90909090\(%eax\) - 968: 66 0f ad 90 90 90 90 90 [ ]*shrd %cl,%dx,0x90909090\(%eax\) - 970: 66 0f af 90 90 90 90 90 [ ]*imul 0x90909090\(%eax\),%dx - 978: 66 0f b1 90 90 90 90 90 [ ]*cmpxchg %dx,0x90909090\(%eax\) - 980: 66 0f b2 90 90 90 90 90 [ ]*lss 0x90909090\(%eax\),%dx - 988: 66 0f b3 90 90 90 90 90 [ ]*btr %dx,0x90909090\(%eax\) - 990: 66 0f b4 90 90 90 90 90 [ ]*lfs 0x90909090\(%eax\),%dx - 998: 66 0f b5 90 90 90 90 90 [ ]*lgs 0x90909090\(%eax\),%dx - 9a0: 66 0f b6 90 90 90 90 90 [ ]*movzbw 0x90909090\(%eax\),%dx - 9a8: 66 0f bb 90 90 90 90 90 [ ]*btc %dx,0x90909090\(%eax\) - 9b0: 66 0f bc 90 90 90 90 90 [ ]*bsf 0x90909090\(%eax\),%dx - 9b8: 66 0f bd 90 90 90 90 90 [ ]*bsr 0x90909090\(%eax\),%dx - 9c0: 66 0f be 90 90 90 90 90 [ ]*movsbw 0x90909090\(%eax\),%dx - 9c8: 66 0f c1 90 90 90 90 90 [ ]*xadd %dx,0x90909090\(%eax\) + 7d3: 8c 90 90 90 90 90 [ ]*mov[l ] %ss,0x90909090\(%eax\) + 7d9: 66 8d 90 90 90 90 90 [ ]*lea 0x90909090\(%eax\),%dx + 7e0: 66 8f 80 90 90 90 90 [ ]*popw 0x90909090\(%eax\) + 7e7: 66 91 [ ]*xchg %ax,%cx + 7e9: 66 92 [ ]*xchg %ax,%dx + 7eb: 66 93 [ ]*xchg %ax,%bx + 7ed: 66 94 [ ]*xchg %ax,%sp + 7ef: 66 95 [ ]*xchg %ax,%bp + 7f1: 66 96 [ ]*xchg %ax,%si + 7f3: 66 97 [ ]*xchg %ax,%di + 7f5: 66 98 [ ]*cbtw + 7f7: 66 99 [ ]*cwtd + 7f9: 66 9a 90 90 90 90 [ ]*lcallw \$0x9090,\$0x9090 + 7ff: 66 9c [ ]*pushfw + 801: 66 9d [ ]*popfw + 803: 66 a1 90 90 90 90 [ ]*mov 0x90909090,%ax + 809: 66 a3 90 90 90 90 [ ]*mov %ax,0x90909090 + 80f: 66 a5 [ ]*movsw %ds:\(%esi\),%es:\(%edi\) + 811: 66 a7 [ ]*cmpsw %es:\(%edi\),%ds:\(%esi\) + 813: 66 a9 90 90 [ ]*test \$0x9090,%ax + 817: 66 ab [ ]*stos %ax,%es:\(%edi\) + 819: 66 ad [ ]*lods %ds:\(%esi\),%ax + 81b: 66 af [ ]*scas %es:\(%edi\),%ax + 81d: 66 b8 90 90 [ ]*mov \$0x9090,%ax + 821: 66 b9 90 90 [ ]*mov \$0x9090,%cx + 825: 66 ba 90 90 [ ]*mov \$0x9090,%dx + 829: 66 bb 90 90 [ ]*mov \$0x9090,%bx + 82d: 66 bc 90 90 [ ]*mov \$0x9090,%sp + 831: 66 bd 90 90 [ ]*mov \$0x9090,%bp + 835: 66 be 90 90 [ ]*mov \$0x9090,%si + 839: 66 bf 90 90 [ ]*mov \$0x9090,%di + 83d: 66 c1 90 90 90 90 90 90 [ ]*rclw \$0x90,0x90909090\(%eax\) + 845: 66 c2 90 90 [ ]*retw \$0x9090 + 849: 66 c3 [ ]*retw + 84b: 66 c4 90 90 90 90 90 [ ]*les 0x90909090\(%eax\),%dx + 852: 66 c5 90 90 90 90 90 [ ]*lds 0x90909090\(%eax\),%dx + 859: 66 c7 80 90 90 90 90 90 90 [ ]*movw \$0x9090,0x90909090\(%eax\) + 862: 66 c8 90 90 90 [ ]*enterw \$0x9090,\$0x90 + 867: 66 c9 [ ]*leavew + 869: 66 ca 90 90 [ ]*lretw \$0x9090 + 86d: 66 cb [ ]*lretw + 86f: 66 cf [ ]*iretw + 871: 66 d1 90 90 90 90 90 [ ]*rclw 0x90909090\(%eax\) + 878: 66 d3 90 90 90 90 90 [ ]*rclw %cl,0x90909090\(%eax\) + 87f: 66 e5 90 [ ]*in \$0x90,%ax + 882: 66 e7 90 [ ]*out %ax,\$0x90 + 885: 66 e8 8f 90 [ ]*callw (0x)?9918.* + 889: 66 ea 90 90 90 90 [ ]*ljmpw \$0x9090,\$0x9090 + 88f: 66 ed [ ]*in \(%dx\),%ax + 891: 66 ef [ ]*out %ax,\(%dx\) + 893: 66 f7 90 90 90 90 90 [ ]*notw 0x90909090\(%eax\) + 89a: 66 ff 90 90 90 90 90 [ ]*callw \*0x90909090\(%eax\) + 8a1: 66 0f 02 90 90 90 90 90 [ ]*lar 0x90909090\(%eax\),%dx + 8a9: 66 0f 03 90 90 90 90 90 [ ]*lsl 0x90909090\(%eax\),%dx + 8b1: 66 0f 40 90 90 90 90 90 [ ]*cmovo 0x90909090\(%eax\),%dx + 8b9: 66 0f 41 90 90 90 90 90 [ ]*cmovno 0x90909090\(%eax\),%dx + 8c1: 66 0f 42 90 90 90 90 90 [ ]*cmovb 0x90909090\(%eax\),%dx + 8c9: 66 0f 43 90 90 90 90 90 [ ]*cmovae 0x90909090\(%eax\),%dx + 8d1: 66 0f 44 90 90 90 90 90 [ ]*cmove 0x90909090\(%eax\),%dx + 8d9: 66 0f 45 90 90 90 90 90 [ ]*cmovne 0x90909090\(%eax\),%dx + 8e1: 66 0f 46 90 90 90 90 90 [ ]*cmovbe 0x90909090\(%eax\),%dx + 8e9: 66 0f 47 90 90 90 90 90 [ ]*cmova 0x90909090\(%eax\),%dx + 8f1: 66 0f 48 90 90 90 90 90 [ ]*cmovs 0x90909090\(%eax\),%dx + 8f9: 66 0f 49 90 90 90 90 90 [ ]*cmovns 0x90909090\(%eax\),%dx + 901: 66 0f 4a 90 90 90 90 90 [ ]*cmovp 0x90909090\(%eax\),%dx + 909: 66 0f 4b 90 90 90 90 90 [ ]*cmovnp 0x90909090\(%eax\),%dx + 911: 66 0f 4c 90 90 90 90 90 [ ]*cmovl 0x90909090\(%eax\),%dx + 919: 66 0f 4d 90 90 90 90 90 [ ]*cmovge 0x90909090\(%eax\),%dx + 921: 66 0f 4e 90 90 90 90 90 [ ]*cmovle 0x90909090\(%eax\),%dx + 929: 66 0f 4f 90 90 90 90 90 [ ]*cmovg 0x90909090\(%eax\),%dx + 931: 66 0f a0 [ ]*pushw %fs + 934: 66 0f a1 [ ]*popw %fs + 937: 66 0f a3 90 90 90 90 90 [ ]*bt %dx,0x90909090\(%eax\) + 93f: 66 0f a4 90 90 90 90 90 90 [ ]*shld \$0x90,%dx,0x90909090\(%eax\) + 948: 66 0f a5 90 90 90 90 90 [ ]*shld %cl,%dx,0x90909090\(%eax\) + 950: 66 0f a8 [ ]*pushw %gs + 953: 66 0f a9 [ ]*popw %gs + 956: 66 0f ab 90 90 90 90 90 [ ]*bts %dx,0x90909090\(%eax\) + 95e: 66 0f ac 90 90 90 90 90 90 [ ]*shrd \$0x90,%dx,0x90909090\(%eax\) + 967: 66 0f ad 90 90 90 90 90 [ ]*shrd %cl,%dx,0x90909090\(%eax\) + 96f: 66 0f af 90 90 90 90 90 [ ]*imul 0x90909090\(%eax\),%dx + 977: 66 0f b1 90 90 90 90 90 [ ]*cmpxchg %dx,0x90909090\(%eax\) + 97f: 66 0f b2 90 90 90 90 90 [ ]*lss 0x90909090\(%eax\),%dx + 987: 66 0f b3 90 90 90 90 90 [ ]*btr %dx,0x90909090\(%eax\) + 98f: 66 0f b4 90 90 90 90 90 [ ]*lfs 0x90909090\(%eax\),%dx + 997: 66 0f b5 90 90 90 90 90 [ ]*lgs 0x90909090\(%eax\),%dx + 99f: 66 0f b6 90 90 90 90 90 [ ]*movzbw 0x90909090\(%eax\),%dx + 9a7: 66 0f bb 90 90 90 90 90 [ ]*btc %dx,0x90909090\(%eax\) + 9af: 66 0f bc 90 90 90 90 90 [ ]*bsf 0x90909090\(%eax\),%dx + 9b7: 66 0f bd 90 90 90 90 90 [ ]*bsr 0x90909090\(%eax\),%dx + 9bf: 66 0f be 90 90 90 90 90 [ ]*movsbw 0x90909090\(%eax\),%dx + 9c7: 66 0f c1 90 90 90 90 90 [ ]*xadd %dx,0x90909090\(%eax\) -0+9d0 <gs_foo>: - 9d0: c3 [ ]*ret +0+9cf <gs_foo>: + 9cf: c3 [ ]*ret -0+9d1 <short_foo>: - 9d1: c3 [ ]*ret +0+9d0 <short_foo>: + 9d0: c3 [ ]*ret -0+9d2 <bar>: - 9d2: e8 f9 ff ff ff [ ]*call 9d0 <gs_foo> - 9d7: e8 f5 ff ff ff [ ]*call 9d1 <short_foo> - 9dc: dd 1c d0 [ ]*fstpl \(%eax,%edx,8\) - 9df: b9 00 00 00 00 [ ]*mov \$0x0,%ecx - 9e4: 88 04 16 [ ]*mov %al,\(%esi,%edx,1\) - 9e7: 88 04 32 [ ]*mov %al,\(%edx,%esi,1\) - 9ea: 88 04 56 [ ]*mov %al,\(%esi,%edx,2\) - 9ed: 88 04 56 [ ]*mov %al,\(%esi,%edx,2\) - 9f0: eb 0c [ ]*jmp 9fe <rot5> - 9f2: 6c [ ]*insb \(%dx\),%es:\(%edi\) - 9f3: 66 0f c1 90 90 90 90 90 [ ]*xadd %dx,0x90909090\(%eax\) - 9fb: 83 e0 f8 [ ]*and \$0xfffffff8,%eax +0+9d1 <bar>: + 9d1: e8 f9 ff ff ff [ ]*call 9cf <gs_foo> + 9d6: e8 f5 ff ff ff [ ]*call 9d0 <short_foo> + 9db: dd 1c d0 [ ]*fstpl \(%eax,%edx,8\) + 9de: b9 00 00 00 00 [ ]*mov \$0x0,%ecx + 9e3: 88 04 16 [ ]*mov %al,\(%esi,%edx,1\) + 9e6: 88 04 32 [ ]*mov %al,\(%edx,%esi,1\) + 9e9: 88 04 56 [ ]*mov %al,\(%esi,%edx,2\) + 9ec: 88 04 56 [ ]*mov %al,\(%esi,%edx,2\) + 9ef: eb 0c [ ]*jmp 9fd <rot5> + 9f1: 6c [ ]*insb \(%dx\),%es:\(%edi\) + 9f2: 66 0f c1 90 90 90 90 90 [ ]*xadd %dx,0x90909090\(%eax\) + 9fa: 83 e0 f8 [ ]*and \$0xfffffff8,%eax -0+9fe <rot5>: - 9fe: 8b 44 ce 04 [ ]*mov 0x4\(%esi,%ecx,8\),%eax - a02: 6c [ ]*insb \(%dx\),%es:\(%edi\) - a03: 0c 90 [ ]*or \$0x90,%al - a05: 0d 90 90 90 90 [ ]*or \$0x90909090,%eax - a0a: 0e [ ]*push %cs - a0b: 8b 04 5d 00 00 00 00 [ ]*mov 0x0\(,%ebx,2\),%eax - a12: 10 14 85 90 90 90 90 [ ]*adc %dl,0x90909090\(,%eax,4\) - a19: 2f [ ]*das - a1a: ea 90 90 90 90 90 90 [ ]*ljmp \$0x9090,\$0x90909090 - a21: 66 a5 [ ]*movsw %ds:\(%esi\),%es:\(%edi\) - a23: 70 90 [ ]*jo 9b5 <foo\+0x9b5> - a25: 75 fe [ ]*jne a25 <rot5\+0x27> - a27: 0f 6f 35 28 00 00 00 [ ]*movq 0x28,%mm6 - a2e: 03 3c c3 [ ]*add \(%ebx,%eax,8\),%edi - a31: 0f 6e 44 c3 04 [ ]*movd 0x4\(%ebx,%eax,8\),%mm0 - a36: 03 bc cb 00 80 00 00 [ ]*add 0x8000\(%ebx,%ecx,8\),%edi - a3d: 0f 6e 8c cb 04 80 00 00 [ ]*movd 0x8004\(%ebx,%ecx,8\),%mm1 - a45: 0f 6e 94 c3 04 00 01 00 [ ]*movd 0x10004\(%ebx,%eax,8\),%mm2 - a4d: 03 bc c3 00 00 01 00 [ ]*add 0x10000\(%ebx,%eax,8\),%edi - a54: 66 8b 04 43 [ ]*mov \(%ebx,%eax,2\),%ax - a58: 66 8b 8c 4b 00 20 00 00 [ ]*mov 0x2000\(%ebx,%ecx,2\),%cx - a60: 66 8b 84 43 00 40 00 00 [ ]*mov 0x4000\(%ebx,%eax,2\),%ax - a68: ff e0 [ ]*jmp \*%eax - a6a: ff 20 [ ]*jmp \*\(%eax\) - a6c: ff 25 d2 09 00 00 [ ]*jmp \*0x9d2 - a72: e9 5b ff ff ff [ ]*jmp 9d2 <bar> - a77: b8 12 00 00 00 [ ]*mov \$0x12,%eax - a7c: 25 ff ff fb ff [ ]*and \$0xfffbffff,%eax - a81: 25 ff ff fb ff [ ]*and \$0xfffbffff,%eax - a86: b0 11 [ ]*mov \$0x11,%al - a88: b0 11 [ ]*mov \$0x11,%al - a8a: b3 47 [ ]*mov \$0x47,%bl - a8c: b3 47 [ ]*mov \$0x47,%bl +0+9fd <rot5>: + 9fd: 8b 44 ce 04 [ ]*mov 0x4\(%esi,%ecx,8\),%eax + a01: 6c [ ]*insb \(%dx\),%es:\(%edi\) + a02: 0c 90 [ ]*or \$0x90,%al + a04: 0d 90 90 90 90 [ ]*or \$0x90909090,%eax + a09: 0e [ ]*push %cs + a0a: 8b 04 5d 00 00 00 00 [ ]*mov 0x0\(,%ebx,2\),%eax + a11: 10 14 85 90 90 90 90 [ ]*adc %dl,0x90909090\(,%eax,4\) + a18: 2f [ ]*das + a19: ea 90 90 90 90 90 90 [ ]*ljmp \$0x9090,\$0x90909090 + a20: 66 a5 [ ]*movsw %ds:\(%esi\),%es:\(%edi\) + a22: 70 90 [ ]*jo 9b4 <foo\+0x9b4> + a24: 75 fe [ ]*jne a24 <rot5\+0x27> + a26: 0f 6f 35 28 00 00 00 [ ]*movq 0x28,%mm6 + a2d: 03 3c c3 [ ]*add \(%ebx,%eax,8\),%edi + a30: 0f 6e 44 c3 04 [ ]*movd 0x4\(%ebx,%eax,8\),%mm0 + a35: 03 bc cb 00 80 00 00 [ ]*add 0x8000\(%ebx,%ecx,8\),%edi + a3c: 0f 6e 8c cb 04 80 00 00 [ ]*movd 0x8004\(%ebx,%ecx,8\),%mm1 + a44: 0f 6e 94 c3 04 00 01 00 [ ]*movd 0x10004\(%ebx,%eax,8\),%mm2 + a4c: 03 bc c3 00 00 01 00 [ ]*add 0x10000\(%ebx,%eax,8\),%edi + a53: 66 8b 04 43 [ ]*mov \(%ebx,%eax,2\),%ax + a57: 66 8b 8c 4b 00 20 00 00 [ ]*mov 0x2000\(%ebx,%ecx,2\),%cx + a5f: 66 8b 84 43 00 40 00 00 [ ]*mov 0x4000\(%ebx,%eax,2\),%ax + a67: ff e0 [ ]*jmp \*%eax + a69: ff 20 [ ]*jmp \*\(%eax\) + a6b: ff 25 d1 09 00 00 [ ]*jmp \*0x9d1 + a71: e9 5b ff ff ff [ ]*jmp 9d1 <bar> + a76: b8 12 00 00 00 [ ]*mov \$0x12,%eax + a7b: 25 ff ff fb ff [ ]*and \$0xfffbffff,%eax + a80: 25 ff ff fb ff [ ]*and \$0xfffbffff,%eax + a85: b0 11 [ ]*mov \$0x11,%al + a87: b0 11 [ ]*mov \$0x11,%al + a89: b3 47 [ ]*mov \$0x47,%bl + a8b: b3 47 [ ]*mov \$0x47,%bl + a8d: 00 00 .* [ ]*... diff --git a/gas/testsuite/gas/i386/intelbad.l b/gas/testsuite/gas/i386/intelbad.l new file mode 100644 index 0000000..45c21d2 --- /dev/null +++ b/gas/testsuite/gas/i386/intelbad.l @@ -0,0 +1,61 @@ +.*: Assembler messages: +.*:4: (Warning|Error): .* +.*:5: Error: .* +.*:6: Error: .* +.*:7: Error: .* +.*:10: Error: .* +.*:13: Error: .* +.*:15: Error: .* +.*:18: Error: .* +.*:20: Error: .* +.*:21: Error: .* +.*:22: Error: .* +.*:23: Error: .* +.*:24: Error: .* +.*:25: Error: .* +.*:26: Error: .* +.*:27: Error: .* +.*:28: Error: .* +.*:29: Error: .* +.*:30: Error: .* +.*:31: Error: .* +.*:32: Error: .* +.*:33: Error: .* +.*:34: Error: .* +.*:35: Error: .* +.*:36: Error: .* +.*:37: Error: .* +.*:38: Error: .* +.*:39: Error: .* +.*:40: Error: .* +.*:41: Error: .* +.*:42: Error: .* +.*:43: Error: .* +.*:44: Error: .* +.*:45: Error: .* +.*:46: Error: .* +.*:47: Error: .* +.*:48: Error: .* +.*:49: Error: .* +.*:50: Error: .* +.*:51: Error: .* +.*:52: Error: .* +.*:53: Error: .* +.*:54: Error: .* +.*:55: Error: .* +.*:56: (Warning|Error): .* +.*:57: Error: .* +.*:58: Error: .* +.*:59: Error: .* +.*:60: Error: .* +.*:61: Error: .* +.*:62: Error: .* +.*:67: Error: .* +.*:73: Error: .* +.*:74: Error: .* +.*:75: Error: .* +.*:77: Error: .* +.*:78: Error: .* +.*:89: Error: .* +.*:90: Error: .* +.*:91: Error: .* diff --git a/gas/testsuite/gas/i386/intelbad.s b/gas/testsuite/gas/i386/intelbad.s new file mode 100644 index 0000000..c4b03f3 --- /dev/null +++ b/gas/testsuite/gas/i386/intelbad.s @@ -0,0 +1,91 @@ + .intel_syntax noprefix + .text +start: + add eax, byte ptr [eax] + add eax, qword ptr [eax] + add [eax], 1 + add qword ptr [eax], 1 + addpd xmm0, dword ptr [eax] + addpd xmm0, qword ptr [eax] + addpd xmm0, tbyte ptr [eax] + addps xmm0, dword ptr [eax] + addps xmm0, qword ptr [eax] + addps xmm0, tbyte ptr [eax] + addsd xmm0, dword ptr [eax] + addsd xmm0, tbyte ptr [eax] + addsd xmm0, xmmword ptr [eax] + addss xmm0, qword ptr [eax] + addss xmm0, tbyte ptr [eax] + addss xmm0, xmmword ptr [eax] + call byte ptr [eax] + call qword ptr [eax] + call tbyte ptr [eax] + call xword ptr [eax] + cmps [esi], es:[edi] + cmps dword ptr [esi], word ptr es:[edi] + cmpxchg8b dword ptr [eax] + fadd [eax] + fadd word ptr [eax] + fadd tbyte ptr [eax] + fbld byte ptr [eax] + fbld word ptr [eax] + fbstp dword ptr [eax] + fbstp qword ptr [eax] + fiadd [eax] + fiadd byte ptr [eax] + fild [eax] + fild byte ptr [eax] + fild tbyte ptr [eax] + fist [eax] + fist byte ptr [eax] + fist qword ptr [eax] + fistp [eax] + fistp byte ptr [eax] + fisttp [eax] + fisttp byte ptr [eax] + fld [eax] + fld word ptr [eax] + fldcw dword ptr [eax] + fst [eax] + fst word ptr [eax] + fst tbyte ptr [eax] + fstp [eax] + fstp word ptr [eax] + ins es:[edi], dx + lds ax, word ptr [eax] + lds eax, dword ptr [eax] + lods [esi] + movs es:[edi], [esi] + movs dword ptr es:[edi], word ptr [esi] + movsx eax, [eax] + movsx eax, dword ptr [eax] + outs dx, [esi] + paddb mm0, dword ptr [eax] + paddb mm0, xmmword ptr [eax] + paddb xmm0, dword ptr [eax] + paddb xmm0, qword ptr [eax] + pinsrw mm0, byte ptr [eax], 3 + pinsrw mm0, dword ptr [eax], 3 + pinsrw mm0, qword ptr [eax], 3 + pinsrw xmm0, dword ptr [eax], 7 + pinsrw xmm0, qword ptr [eax], 7 + pinsrw xmm0, xmmword ptr [eax], 7 + push byte ptr [eax] + push qword ptr [eax] + scas es:[edi] +#XXX? shl eax + stos es:[edi] + xlat word ptr [ebx] +#XXX? xlatb [ebx] + + # expressions +#XXX? push ~ 1 +#XXX? push 1 % 1 +#XXX? push 1 << 1 +#XXX? push 1 >> 1 +#XXX? push 1 & 1 +#XXX? push 1 ^ 1 +#XXX? push 1 | 1 + push 1 1 + push 1 + + push 1 * * 1 diff --git a/gas/testsuite/gas/i386/intelok.d b/gas/testsuite/gas/i386/intelok.d new file mode 100644 index 0000000..186c73c --- /dev/null +++ b/gas/testsuite/gas/i386/intelok.d @@ -0,0 +1,105 @@ +#as: -J +#objdump: -dwMintel +#name: i386 intel-ok + +.*: +file format .* + +Disassembly of section .text: + +0+000 <start>: +[ ]*[0-9a-f]+:[ ]+02 00[ ]+add[ ]+al,(BYTE PTR )?\[eax\] +[ ]*[0-9a-f]+: 02 00[ ]+add[ ]+al,(BYTE PTR )?\[eax\] +[ ]*[0-9a-f]+: 66 03 00[ ]+add[ ]+ax,(WORD PTR )?\[eax\] +[ ]*[0-9a-f]+: 66 03 00[ ]+add[ ]+ax,(WORD PTR )?\[eax\] +[ ]*[0-9a-f]+: 03 00[ ]+add[ ]+eax,(DWORD PTR )?\[eax\] +[ ]*[0-9a-f]+: 03 00[ ]+add[ ]+eax,(DWORD PTR )?\[eax\] +[ ]*[0-9a-f]+: 80 00 01[ ]+add[ ]+BYTE PTR \[eax\],0x1 +[ ]*[0-9a-f]+: 83 00 01[ ]+add[ ]+DWORD PTR \[eax\],0x1 +[ ]*[0-9a-f]+: 66 83 00 01[ ]+add[ ]+WORD PTR \[eax\],0x1 +[ ]*[0-9a-f]+: 66 0f 58 00[ ]+addpd[ ]+xmm0,XMMWORD PTR \[eax\] +[ ]*[0-9a-f]+: 66 0f 58 00[ ]+addpd[ ]+xmm0,XMMWORD PTR \[eax\] +[ ]*[0-9a-f]+: 0f 58 00[ ]+addps[ ]+xmm0,XMMWORD PTR \[eax\] +[ ]*[0-9a-f]+: 0f 58 00[ ]+addps[ ]+xmm0,XMMWORD PTR \[eax\] +[ ]*[0-9a-f]+: f2 0f 58 00[ ]+addsd[ ]+xmm0,QWORD PTR \[eax\] +[ ]*[0-9a-f]+: f2 0f 58 00[ ]+addsd[ ]+xmm0,QWORD PTR \[eax\] +[ ]*[0-9a-f]+: f3 0f 58 00[ ]+addss[ ]+xmm0,DWORD PTR \[eax\] +[ ]*[0-9a-f]+: f3 0f 58 00[ ]+addss[ ]+xmm0,DWORD PTR \[eax\] +[ ]*[0-9a-f]+: 66 ff 10[ ]+call[ ]+WORD PTR \[eax\] +[ ]*[0-9a-f]+: ff 10[ ]+call[ ]+DWORD PTR \[eax\] +[ ]*[0-9a-f]+: ff 18[ ]+call[ ]+FWORD PTR \[eax\] +[ ]*[0-9a-f]+: a6[ ]+cmps[ ]+(BYTE PTR )(ds:)?\[esi\],(\1)?es:\[edi\] +[ ]*[0-9a-f]+: a7[ ]+cmps[ ]+(DWORD PTR )(ds:)?\[esi\],(\1)?es:\[edi\] +[ ]*[0-9a-f]+: 66 a7[ ]+cmps[ ]+(WORD PTR )(ds:)?\[esi\],(\1)?es:\[edi\] +[ ]*[0-9a-f]+: 0f c7 08[ ]+cmpxchg8b[ ]+(QWORD PTR )?\[eax\] +[ ]*[0-9a-f]+: d8 00[ ]+fadd[ ]+DWORD PTR \[eax\] +[ ]*[0-9a-f]+: dc 00[ ]+fadd[ ]+QWORD PTR \[eax\] +[ ]*[0-9a-f]+: df 20[ ]+fbld[ ]+(TBYTE PTR )?\[eax\] +[ ]*[0-9a-f]+: df 30[ ]+fbstp[ ]+(TBYTE PTR )?\[eax\] +[ ]*[0-9a-f]+: da 00[ ]+fiadd[ ]+DWORD PTR \[eax\] +[ ]*[0-9a-f]+: de 00[ ]+fiadd[ ]+WORD PTR \[eax\] +[ ]*[0-9a-f]+: db 00[ ]+fild[ ]+DWORD PTR \[eax\] +[ ]*[0-9a-f]+: df 28[ ]+fild[ ]+QWORD PTR \[eax\] +[ ]*[0-9a-f]+: df 00[ ]+fild[ ]+WORD PTR \[eax\] +[ ]*[0-9a-f]+: db 10[ ]+fist[ ]+DWORD PTR \[eax\] +[ ]*[0-9a-f]+: df 10[ ]+fist[ ]+WORD PTR \[eax\] +[ ]*[0-9a-f]+: db 18[ ]+fistp[ ]+DWORD PTR \[eax\] +[ ]*[0-9a-f]+: df 38[ ]+fistp[ ]+QWORD PTR \[eax\] +[ ]*[0-9a-f]+: df 18[ ]+fistp[ ]+WORD PTR \[eax\] +[ ]*[0-9a-f]+: db 08[ ]+fisttp[ ]+DWORD PTR \[eax\] +[ ]*[0-9a-f]+: dd 08[ ]+fisttp[ ]+QWORD PTR \[eax\] +[ ]*[0-9a-f]+: df 08[ ]+fisttp[ ]+WORD PTR \[eax\] +[ ]*[0-9a-f]+: d9 00[ ]+fld[ ]+DWORD PTR \[eax\] +[ ]*[0-9a-f]+: dd 00[ ]+fld[ ]+QWORD PTR \[eax\] +[ ]*[0-9a-f]+: db 28[ ]+fld[ ]+TBYTE PTR \[eax\] +[ ]*[0-9a-f]+: d9 28[ ]+fldcw[ ]+(WORD PTR )?\[eax\] +[ ]*[0-9a-f]+: d9 20[ ]+fldenvd?[ ]+\[eax\] +[ ]*[0-9a-f]+: d9 20[ ]+fldenvd?[ ]+\[eax\] +[ ]*[0-9a-f]+: 66 d9 20[ ]+fldenvw[ ]+\[eax\] +[ ]*[0-9a-f]+: d9 10[ ]+fst[ ]+DWORD PTR \[eax\] +[ ]*[0-9a-f]+: dd 10[ ]+fst[ ]+QWORD PTR \[eax\] +[ ]*[0-9a-f]+: d9 18[ ]+fstp[ ]+DWORD PTR \[eax\] +[ ]*[0-9a-f]+: dd 18[ ]+fstp[ ]+QWORD PTR \[eax\] +[ ]*[0-9a-f]+: db 38[ ]+fstp[ ]+TBYTE PTR \[eax\] +[ ]*[0-9a-f]+: 66 c5 00[ ]+lds[ ]+ax,(DWORD PTR )?\[eax\] +[ ]*[0-9a-f]+: c5 00[ ]+lds[ ]+eax,(FWORD PTR )?\[eax\] +[ ]*[0-9a-f]+: 66 c5 00[ ]+lds[ ]+ax,(DWORD PTR )?\[eax\] +[ ]*[0-9a-f]+: c5 00[ ]+lds[ ]+eax,(FWORD PTR )?\[eax\] +[ ]*[0-9a-f]+: 8d 00[ ]+lea[ ]+eax,\[eax\] +[ ]*[0-9a-f]+: 8d 00[ ]+lea[ ]+eax,\[eax\] +[ ]*[0-9a-f]+: 8d 00[ ]+lea[ ]+eax,\[eax\] +[ ]*[0-9a-f]+: 8d 00[ ]+lea[ ]+eax,\[eax\] +[ ]*[0-9a-f]+: 8d 00[ ]+lea[ ]+eax,\[eax\] +[ ]*[0-9a-f]+: 8d 00[ ]+lea[ ]+eax,\[eax\] +[ ]*[0-9a-f]+: 8d 00[ ]+lea[ ]+eax,\[eax\] +[ ]*[0-9a-f]+: 8d 00[ ]+lea[ ]+eax,\[eax\] +[ ]*[0-9a-f]+: 0f 01 10[ ]+lgdtd?[ ]+(PWORD PTR)?\[eax\] +[ ]*[0-9a-f]+: 0f 01 10[ ]+lgdtd?[ ]+(PWORD PTR)?\[eax\] +[ ]*[0-9a-f]+: 66 0f 01 10[ ]+lgdtw[ ]+(PWORD PTR)?\[eax\] +[ ]*[0-9a-f]+: a4[ ]+movs[ ]+(BYTE PTR )es:\[edi\],(\1)?(ds:)?\[esi\] +[ ]*[0-9a-f]+: a5[ ]+movs[ ]+(DWORD PTR )es:\[edi\],(\1)?(ds:)?\[esi\] +[ ]*[0-9a-f]+: 66 a5[ ]+movs[ ]+(WORD PTR )es:\[edi\],(\1)?(ds:)?\[esi\] +[ ]*[0-9a-f]+: 0f be 00[ ]+movsx[ ]+eax,BYTE PTR \[eax\] +[ ]*[0-9a-f]+: 0f bf 00[ ]+movsx[ ]+eax,WORD PTR \[eax\] +[ ]*[0-9a-f]+: 0f fc 00[ ]+paddb[ ]+mm0,(QWORD PTR )?\[eax\] +[ ]*[0-9a-f]+: 0f fc 00[ ]+paddb[ ]+mm0,(QWORD PTR )?\[eax\] +[ ]*[0-9a-f]+: 66 0f fc 00[ ]+paddb[ ]+xmm0,(XMMWORD PTR )?\[eax\] +[ ]*[0-9a-f]+: 66 0f fc 00[ ]+paddb[ ]+xmm0,(XMMWORD PTR )?\[eax\] +[ ]*[0-9a-f]+: 0f c4 00 03[ ]+pinsrw[ ]+mm0,(WORD PTR )?\[eax\],0x3 +[ ]*[0-9a-f]+: 66 0f c4 00 07[ ]+pinsrw[ ]+xmm0,(WORD PTR )?\[eax\],0x7 +[ ]*[0-9a-f]+: ff 30[ ]+push[ ]+DWORD PTR \[eax\] +[ ]*[0-9a-f]+: d7[ ]+xlat(b|[ ]+(BYTE PTR )?(ds:)?\[ebx\]) +[ ]*[0-9a-f]+: d7[ ]+xlat(b|[ ]+(BYTE PTR )?(ds:)?\[ebx\]) +[ ]*[0-9a-f]+: d7[ ]+xlat(b|[ ]+(BYTE PTR )?(ds:)?\[ebx\]) +[ ]*[0-9a-f]+: 6a 01[ ]+push[ ]+0x1 +[ ]*[0-9a-f]+: 6a ff[ ]+push[ ]+0xffffffff +[ ]*[0-9a-f]+: 6a fe[ ]+push[ ]+0xfffffffe +[ ]*[0-9a-f]+: 6a 02[ ]+push[ ]+0x2 +[ ]*[0-9a-f]+: 6a 01[ ]+push[ ]+0x1 +[ ]*[0-9a-f]+: 6a 04[ ]+push[ ]+0x4 +[ ]*[0-9a-f]+: 6a 01[ ]+push[ ]+0x1 +[ ]*[0-9a-f]+: 6a 01[ ]+push[ ]+0x1 +[ ]*[0-9a-f]+: 6a 08[ ]+push[ ]+0x8 +[ ]*[0-9a-f]+: 6a 01[ ]+push[ ]+0x1 +[ ]*[0-9a-f]+: 6a 02[ ]+push[ ]+0x2 +[ ]*[0-9a-f]+: 6a 03[ ]+push[ ]+0x3 +[ ]*[0-9a-f]+: 6a 0d[ ]+push[ ]+0xd diff --git a/gas/testsuite/gas/i386/intelok.s b/gas/testsuite/gas/i386/intelok.s new file mode 100644 index 0000000..04fedbc --- /dev/null +++ b/gas/testsuite/gas/i386/intelok.s @@ -0,0 +1,105 @@ + .intel_syntax noprefix + .text +start: + add al, [eax] + add al, byte ptr [eax] + add ax, [eax] + add ax, word ptr [eax] + add eax, [eax] + add eax, dword ptr [eax] + add byte ptr [eax], 1 + add dword ptr [eax], 1 + add word ptr [eax], 1 + addpd xmm0, [eax] + addpd xmm0, xmmword ptr [eax] + addps xmm0, [eax] + addps xmm0, xmmword ptr [eax] + addsd xmm0, [eax] + addsd xmm0, qword ptr [eax] + addss xmm0, [eax] + addss xmm0, dword ptr [eax] + call word ptr [eax] + call dword ptr [eax] + call fword ptr [eax] + cmps [esi], byte ptr es:[edi] + cmps dword ptr [esi], es:[edi] + cmps word ptr [esi], word ptr es:[edi] + cmpxchg8b qword ptr [eax] + fadd dword ptr [eax] + fadd qword ptr [eax] + fbld [eax] +#XXX fbld tbyte ptr [eax] + fbstp [eax] +#XXX fbstp tbyte ptr [eax] + fiadd dword ptr [eax] + fiadd word ptr [eax] + fild dword ptr [eax] + fild qword ptr [eax] + fild word ptr [eax] + fist dword ptr [eax] + fist word ptr [eax] + fistp dword ptr [eax] + fistp qword ptr [eax] + fistp word ptr [eax] + fisttp dword ptr [eax] + fisttp qword ptr [eax] + fisttp word ptr [eax] + fld dword ptr [eax] + fld qword ptr [eax] + fld tbyte ptr [eax] + fldcw [eax] +#XXX fldcw word ptr [eax] + fldenv [eax] + fldenvd [eax] + fldenvw [eax] + fst dword ptr [eax] + fst qword ptr [eax] + fstp dword ptr [eax] + fstp qword ptr [eax] + fstp tbyte ptr [eax] + lds ax, [eax] + lds eax, [eax] + lds ax, dword ptr [eax] + lds eax, fword ptr [eax] + lea eax, [eax] + lea eax, byte ptr [eax] + lea eax, dword ptr [eax] + lea eax, fword ptr [eax] + lea eax, qword ptr [eax] + lea eax, tbyte ptr [eax] + lea eax, word ptr [eax] + lea eax, xmmword ptr [eax] + lgdt [eax] + lgdtd [eax] + lgdtw [eax] + movs es:[edi], byte ptr [esi] + movs dword ptr es:[edi], [esi] + movs word ptr es:[edi], word ptr [esi] + movsx eax, byte ptr [eax] + movsx eax, word ptr [eax] + paddb mm0, [eax] + paddb mm0, qword ptr [eax] + paddb xmm0, [eax] + paddb xmm0, xmmword ptr [eax] + pinsrw mm0, word ptr [eax], 3 + pinsrw xmm0, word ptr [eax], 7 + push dword ptr [eax] + xlat [ebx] + xlat byte ptr [ebx] + xlatb + + # expressions + + push + 1 + push - 1 + push not 1 + push 1 + 1 + push 2 - 1 + push 2 * 2 + push 3 / 2 + push 3 mod 2 + push 4 shl 1 + push 5 shr 2 + push 6 and 3 + push 7 xor 4 + push 8 or 5 diff --git a/gas/testsuite/gas/i386/opcode.d b/gas/testsuite/gas/i386/opcode.d index dac75a8..2c2d451 100644 --- a/gas/testsuite/gas/i386/opcode.d +++ b/gas/testsuite/gas/i386/opcode.d @@ -1,6 +1,6 @@ #as: -J #objdump: -dw -#name: i386 opcode +#name: i386 intel .*: +file format .* @@ -480,95 +480,95 @@ Disassembly of section .text: 7be: 66 87 90 90 90 90 90 [ ]*xchg %dx,0x90909090\(%eax\) 7c5: 66 89 90 90 90 90 90 [ ]*mov %dx,0x90909090\(%eax\) 7cc: 66 8b 90 90 90 90 90 [ ]*mov 0x90909090\(%eax\),%dx - 7d3: 66 8c 90 90 90 90 90 [ ]*movw %ss,0x90909090\(%eax\) - 7da: 66 8d 90 90 90 90 90 [ ]*lea 0x90909090\(%eax\),%dx - 7e1: 66 8f 80 90 90 90 90 [ ]*popw 0x90909090\(%eax\) - 7e8: 66 91 [ ]*xchg %ax,%cx - 7ea: 66 92 [ ]*xchg %ax,%dx - 7ec: 66 93 [ ]*xchg %ax,%bx - 7ee: 66 94 [ ]*xchg %ax,%sp - 7f0: 66 95 [ ]*xchg %ax,%bp - 7f2: 66 96 [ ]*xchg %ax,%si - 7f4: 66 97 [ ]*xchg %ax,%di - 7f6: 66 98 [ ]*cbtw - 7f8: 66 99 [ ]*cwtd - 7fa: 66 9a 90 90 90 90 [ ]*lcallw \$0x9090,\$0x9090 - 800: 66 9c [ ]*pushfw - 802: 66 9d [ ]*popfw - 804: 66 a1 90 90 90 90 [ ]*mov 0x90909090,%ax - 80a: 66 a3 90 90 90 90 [ ]*mov %ax,0x90909090 - 810: 66 a5 [ ]*movsw %ds:\(%esi\),%es:\(%edi\) - 812: 66 a7 [ ]*cmpsw %es:\(%edi\),%ds:\(%esi\) - 814: 66 a9 90 90 [ ]*test \$0x9090,%ax - 818: 66 ab [ ]*stos %ax,%es:\(%edi\) - 81a: 66 ad [ ]*lods %ds:\(%esi\),%ax - 81c: 66 af [ ]*scas %es:\(%edi\),%ax - 81e: 66 b8 90 90 [ ]*mov \$0x9090,%ax - 822: 66 b9 90 90 [ ]*mov \$0x9090,%cx - 826: 66 ba 90 90 [ ]*mov \$0x9090,%dx - 82a: 66 bb 90 90 [ ]*mov \$0x9090,%bx - 82e: 66 bc 90 90 [ ]*mov \$0x9090,%sp - 832: 66 bd 90 90 [ ]*mov \$0x9090,%bp - 836: 66 be 90 90 [ ]*mov \$0x9090,%si - 83a: 66 bf 90 90 [ ]*mov \$0x9090,%di - 83e: 66 c1 90 90 90 90 90 90 [ ]*rclw \$0x90,0x90909090\(%eax\) - 846: 66 c2 90 90 [ ]*retw \$0x9090 - 84a: 66 c3 [ ]*retw - 84c: 66 c4 90 90 90 90 90 [ ]*les 0x90909090\(%eax\),%dx - 853: 66 c5 90 90 90 90 90 [ ]*lds 0x90909090\(%eax\),%dx - 85a: 66 c7 80 90 90 90 90 90 90 [ ]*movw \$0x9090,0x90909090\(%eax\) - 863: 66 c8 90 90 90 [ ]*enterw \$0x9090,\$0x90 - 868: 66 c9 [ ]*leavew - 86a: 66 ca 90 90 [ ]*lretw \$0x9090 - 86e: 66 cb [ ]*lretw - 870: 66 cf [ ]*iretw - 872: 66 d1 90 90 90 90 90 [ ]*rclw 0x90909090\(%eax\) - 879: 66 d3 90 90 90 90 90 [ ]*rclw %cl,0x90909090\(%eax\) - 880: 66 e5 90 [ ]*in \$0x90,%ax - 883: 66 e7 90 [ ]*out %ax,\$0x90 - 886: 66 e8 8f 90 [ ]*callw (0x)?9919.* - 88a: 66 ea 90 90 90 90 [ ]*ljmpw \$0x9090,\$0x9090 - 890: 66 ed [ ]*in \(%dx\),%ax - 892: 66 ef [ ]*out %ax,\(%dx\) - 894: 66 f7 90 90 90 90 90 [ ]*notw 0x90909090\(%eax\) - 89b: 66 ff 90 90 90 90 90 [ ]*callw \*0x90909090\(%eax\) - 8a2: 66 0f 02 90 90 90 90 90 [ ]*lar 0x90909090\(%eax\),%dx - 8aa: 66 0f 03 90 90 90 90 90 [ ]*lsl 0x90909090\(%eax\),%dx - 8b2: 66 0f 40 90 90 90 90 90 [ ]*cmovo 0x90909090\(%eax\),%dx - 8ba: 66 0f 41 90 90 90 90 90 [ ]*cmovno 0x90909090\(%eax\),%dx - 8c2: 66 0f 42 90 90 90 90 90 [ ]*cmovb 0x90909090\(%eax\),%dx - 8ca: 66 0f 43 90 90 90 90 90 [ ]*cmovae 0x90909090\(%eax\),%dx - 8d2: 66 0f 44 90 90 90 90 90 [ ]*cmove 0x90909090\(%eax\),%dx - 8da: 66 0f 45 90 90 90 90 90 [ ]*cmovne 0x90909090\(%eax\),%dx - 8e2: 66 0f 46 90 90 90 90 90 [ ]*cmovbe 0x90909090\(%eax\),%dx - 8ea: 66 0f 47 90 90 90 90 90 [ ]*cmova 0x90909090\(%eax\),%dx - 8f2: 66 0f 48 90 90 90 90 90 [ ]*cmovs 0x90909090\(%eax\),%dx - 8fa: 66 0f 49 90 90 90 90 90 [ ]*cmovns 0x90909090\(%eax\),%dx - 902: 66 0f 4a 90 90 90 90 90 [ ]*cmovp 0x90909090\(%eax\),%dx - 90a: 66 0f 4b 90 90 90 90 90 [ ]*cmovnp 0x90909090\(%eax\),%dx - 912: 66 0f 4c 90 90 90 90 90 [ ]*cmovl 0x90909090\(%eax\),%dx - 91a: 66 0f 4d 90 90 90 90 90 [ ]*cmovge 0x90909090\(%eax\),%dx - 922: 66 0f 4e 90 90 90 90 90 [ ]*cmovle 0x90909090\(%eax\),%dx - 92a: 66 0f 4f 90 90 90 90 90 [ ]*cmovg 0x90909090\(%eax\),%dx - 932: 66 0f a0 [ ]*pushw %fs - 935: 66 0f a1 [ ]*popw %fs - 938: 66 0f a3 90 90 90 90 90 [ ]*bt %dx,0x90909090\(%eax\) - 940: 66 0f a4 90 90 90 90 90 90 [ ]*shld \$0x90,%dx,0x90909090\(%eax\) - 949: 66 0f a5 90 90 90 90 90 [ ]*shld %cl,%dx,0x90909090\(%eax\) - 951: 66 0f a8 [ ]*pushw %gs - 954: 66 0f a9 [ ]*popw %gs - 957: 66 0f ab 90 90 90 90 90 [ ]*bts %dx,0x90909090\(%eax\) - 95f: 66 0f ac 90 90 90 90 90 90 [ ]*shrd \$0x90,%dx,0x90909090\(%eax\) - 968: 66 0f ad 90 90 90 90 90 [ ]*shrd %cl,%dx,0x90909090\(%eax\) - 970: 66 0f af 90 90 90 90 90 [ ]*imul 0x90909090\(%eax\),%dx - 978: 66 0f b1 90 90 90 90 90 [ ]*cmpxchg %dx,0x90909090\(%eax\) - 980: 66 0f b2 90 90 90 90 90 [ ]*lss 0x90909090\(%eax\),%dx - 988: 66 0f b3 90 90 90 90 90 [ ]*btr %dx,0x90909090\(%eax\) - 990: 66 0f b4 90 90 90 90 90 [ ]*lfs 0x90909090\(%eax\),%dx - 998: 66 0f b5 90 90 90 90 90 [ ]*lgs 0x90909090\(%eax\),%dx - 9a0: 66 0f b6 90 90 90 90 90 [ ]*movzbw 0x90909090\(%eax\),%dx - 9a8: 66 0f bb 90 90 90 90 90 [ ]*btc %dx,0x90909090\(%eax\) - 9b0: 66 0f bc 90 90 90 90 90 [ ]*bsf 0x90909090\(%eax\),%dx - 9b8: 66 0f bd 90 90 90 90 90 [ ]*bsr 0x90909090\(%eax\),%dx - 9c0: 66 0f be 90 90 90 90 90 [ ]*movsbw 0x90909090\(%eax\),%dx - 9c8: 66 0f c1 90 90 90 90 90 [ ]*xadd %dx,0x90909090\(%eax\) + 7d3: 8c 90 90 90 90 90 [ ]*mov[l ] %ss,0x90909090\(%eax\) + 7d9: 66 8d 90 90 90 90 90 [ ]*lea 0x90909090\(%eax\),%dx + 7e0: 66 8f 80 90 90 90 90 [ ]*popw 0x90909090\(%eax\) + 7e7: 66 91 [ ]*xchg %ax,%cx + 7e9: 66 92 [ ]*xchg %ax,%dx + 7eb: 66 93 [ ]*xchg %ax,%bx + 7ed: 66 94 [ ]*xchg %ax,%sp + 7ef: 66 95 [ ]*xchg %ax,%bp + 7f1: 66 96 [ ]*xchg %ax,%si + 7f3: 66 97 [ ]*xchg %ax,%di + 7f5: 66 98 [ ]*cbtw + 7f7: 66 99 [ ]*cwtd + 7f9: 66 9a 90 90 90 90 [ ]*lcallw \$0x9090,\$0x9090 + 7ff: 66 9c [ ]*pushfw + 801: 66 9d [ ]*popfw + 803: 66 a1 90 90 90 90 [ ]*mov 0x90909090,%ax + 809: 66 a3 90 90 90 90 [ ]*mov %ax,0x90909090 + 80f: 66 a5 [ ]*movsw %ds:\(%esi\),%es:\(%edi\) + 811: 66 a7 [ ]*cmpsw %es:\(%edi\),%ds:\(%esi\) + 813: 66 a9 90 90 [ ]*test \$0x9090,%ax + 817: 66 ab [ ]*stos %ax,%es:\(%edi\) + 819: 66 ad [ ]*lods %ds:\(%esi\),%ax + 81b: 66 af [ ]*scas %es:\(%edi\),%ax + 81d: 66 b8 90 90 [ ]*mov \$0x9090,%ax + 821: 66 b9 90 90 [ ]*mov \$0x9090,%cx + 825: 66 ba 90 90 [ ]*mov \$0x9090,%dx + 829: 66 bb 90 90 [ ]*mov \$0x9090,%bx + 82d: 66 bc 90 90 [ ]*mov \$0x9090,%sp + 831: 66 bd 90 90 [ ]*mov \$0x9090,%bp + 835: 66 be 90 90 [ ]*mov \$0x9090,%si + 839: 66 bf 90 90 [ ]*mov \$0x9090,%di + 83d: 66 c1 90 90 90 90 90 90 [ ]*rclw \$0x90,0x90909090\(%eax\) + 845: 66 c2 90 90 [ ]*retw \$0x9090 + 849: 66 c3 [ ]*retw + 84b: 66 c4 90 90 90 90 90 [ ]*les 0x90909090\(%eax\),%dx + 852: 66 c5 90 90 90 90 90 [ ]*lds 0x90909090\(%eax\),%dx + 859: 66 c7 80 90 90 90 90 90 90 [ ]*movw \$0x9090,0x90909090\(%eax\) + 862: 66 c8 90 90 90 [ ]*enterw \$0x9090,\$0x90 + 867: 66 c9 [ ]*leavew + 869: 66 ca 90 90 [ ]*lretw \$0x9090 + 86d: 66 cb [ ]*lretw + 86f: 66 cf [ ]*iretw + 871: 66 d1 90 90 90 90 90 [ ]*rclw 0x90909090\(%eax\) + 878: 66 d3 90 90 90 90 90 [ ]*rclw %cl,0x90909090\(%eax\) + 87f: 66 e5 90 [ ]*in \$0x90,%ax + 882: 66 e7 90 [ ]*out %ax,\$0x90 + 885: 66 e8 8f 90 [ ]*callw (0x)?9918.* + 889: 66 ea 90 90 90 90 [ ]*ljmpw \$0x9090,\$0x9090 + 88f: 66 ed [ ]*in \(%dx\),%ax + 891: 66 ef [ ]*out %ax,\(%dx\) + 893: 66 f7 90 90 90 90 90 [ ]*notw 0x90909090\(%eax\) + 89a: 66 ff 90 90 90 90 90 [ ]*callw \*0x90909090\(%eax\) + 8a1: 66 0f 02 90 90 90 90 90 [ ]*lar 0x90909090\(%eax\),%dx + 8a9: 66 0f 03 90 90 90 90 90 [ ]*lsl 0x90909090\(%eax\),%dx + 8b1: 66 0f 40 90 90 90 90 90 [ ]*cmovo 0x90909090\(%eax\),%dx + 8b9: 66 0f 41 90 90 90 90 90 [ ]*cmovno 0x90909090\(%eax\),%dx + 8c1: 66 0f 42 90 90 90 90 90 [ ]*cmovb 0x90909090\(%eax\),%dx + 8c9: 66 0f 43 90 90 90 90 90 [ ]*cmovae 0x90909090\(%eax\),%dx + 8d1: 66 0f 44 90 90 90 90 90 [ ]*cmove 0x90909090\(%eax\),%dx + 8d9: 66 0f 45 90 90 90 90 90 [ ]*cmovne 0x90909090\(%eax\),%dx + 8e1: 66 0f 46 90 90 90 90 90 [ ]*cmovbe 0x90909090\(%eax\),%dx + 8e9: 66 0f 47 90 90 90 90 90 [ ]*cmova 0x90909090\(%eax\),%dx + 8f1: 66 0f 48 90 90 90 90 90 [ ]*cmovs 0x90909090\(%eax\),%dx + 8f9: 66 0f 49 90 90 90 90 90 [ ]*cmovns 0x90909090\(%eax\),%dx + 901: 66 0f 4a 90 90 90 90 90 [ ]*cmovp 0x90909090\(%eax\),%dx + 909: 66 0f 4b 90 90 90 90 90 [ ]*cmovnp 0x90909090\(%eax\),%dx + 911: 66 0f 4c 90 90 90 90 90 [ ]*cmovl 0x90909090\(%eax\),%dx + 919: 66 0f 4d 90 90 90 90 90 [ ]*cmovge 0x90909090\(%eax\),%dx + 921: 66 0f 4e 90 90 90 90 90 [ ]*cmovle 0x90909090\(%eax\),%dx + 929: 66 0f 4f 90 90 90 90 90 [ ]*cmovg 0x90909090\(%eax\),%dx + 931: 66 0f a0 [ ]*pushw %fs + 934: 66 0f a1 [ ]*popw %fs + 937: 66 0f a3 90 90 90 90 90 [ ]*bt %dx,0x90909090\(%eax\) + 93f: 66 0f a4 90 90 90 90 90 90 [ ]*shld \$0x90,%dx,0x90909090\(%eax\) + 948: 66 0f a5 90 90 90 90 90 [ ]*shld %cl,%dx,0x90909090\(%eax\) + 950: 66 0f a8 [ ]*pushw %gs + 953: 66 0f a9 [ ]*popw %gs + 956: 66 0f ab 90 90 90 90 90 [ ]*bts %dx,0x90909090\(%eax\) + 95e: 66 0f ac 90 90 90 90 90 90 [ ]*shrd \$0x90,%dx,0x90909090\(%eax\) + 967: 66 0f ad 90 90 90 90 90 [ ]*shrd %cl,%dx,0x90909090\(%eax\) + 96f: 66 0f af 90 90 90 90 90 [ ]*imul 0x90909090\(%eax\),%dx + 977: 66 0f b1 90 90 90 90 90 [ ]*cmpxchg %dx,0x90909090\(%eax\) + 97f: 66 0f b2 90 90 90 90 90 [ ]*lss 0x90909090\(%eax\),%dx + 987: 66 0f b3 90 90 90 90 90 [ ]*btr %dx,0x90909090\(%eax\) + 98f: 66 0f b4 90 90 90 90 90 [ ]*lfs 0x90909090\(%eax\),%dx + 997: 66 0f b5 90 90 90 90 90 [ ]*lgs 0x90909090\(%eax\),%dx + 99f: 66 0f b6 90 90 90 90 90 [ ]*movzbw 0x90909090\(%eax\),%dx + 9a7: 66 0f bb 90 90 90 90 90 [ ]*btc %dx,0x90909090\(%eax\) + 9af: 66 0f bc 90 90 90 90 90 [ ]*bsf 0x90909090\(%eax\),%dx + 9b7: 66 0f bd 90 90 90 90 90 [ ]*bsr 0x90909090\(%eax\),%dx + 9bf: 66 0f be 90 90 90 90 90 [ ]*movsbw 0x90909090\(%eax\),%dx + 9c7: 66 0f c1 90 90 90 90 90 [ ]*xadd %dx,0x90909090\(%eax\) diff --git a/gas/testsuite/gas/i386/x86-64-opcode.d b/gas/testsuite/gas/i386/x86-64-opcode.d index 58155e2..671876d 100644 --- a/gas/testsuite/gas/i386/x86-64-opcode.d +++ b/gas/testsuite/gas/i386/x86-64-opcode.d @@ -7,269 +7,272 @@ Disassembly of section .text: 0+000 <.text>: -[ ]*0:[ ]+41 ff 10[ ]+callq[ ]+\*\(%r8\)[ ]*(#.*)* -[ ]*3:[ ]+ff 10[ ]+callq[ ]+\*\(%rax\)[ ]*(#.*)* -[ ]*5:[ ]+41 ff 10[ ]+callq[ ]+\*\(%r8\)[ ]*(#.*)* -[ ]*8:[ ]+ff 10[ ]+callq[ ]+\*\(%rax\)[ ]*(#.*)* -[ ]*a:[ ]+cb[ ]+lret[ ]*(#.*)* -[ ]*b:[ ]+c3[ ]+retq[ ]*(#.*)* -[ ]*c:[ ]+cf[ ]+iret[ ]*(#.*)* -[ ]*d:[ ]+66 cf[ ]+iretw[ ]*(#.*)* -[ ]*f:[ ]+48 cf[ ]+iretq[ ]*(#.*)* -[ ]*11:[ ]+66 41 8c 08[ ]+movw[ ]+%cs,\(%r8\)[ ]*(#.*)* -[ ]*15:[ ]+66 8c 08[ ]+movw[ ]+%cs,\(%rax\)[ ]*(#.*)* -[ ]*18:[ ]+66 41 8c 10[ ]+movw[ ]+%ss,\(%r8\)[ ]*(#.*)* -[ ]*1c:[ ]+66 8c 10[ ]+movw[ ]+%ss,\(%rax\)[ ]*(#.*)* -[ ]*1f:[ ]+66 41 8c 20[ ]+movw[ ]+%fs,\(%r8\)[ ]*(#.*)* -[ ]*23:[ ]+66 8c 20[ ]+movw[ ]+%fs,\(%rax\)[ ]*(#.*)* -[ ]*26:[ ]+41 8c 08[ ]+movl[ ]+%cs,\(%r8\)[ ]*(#.*)* -[ ]*29:[ ]+8c 08[ ]+movl[ ]+%cs,\(%rax\)[ ]*(#.*)* -[ ]*2b:[ ]+41 8c 10[ ]+movl[ ]+%ss,\(%r8\)[ ]*(#.*)* -[ ]*2e:[ ]+8c 10[ ]+movl[ ]+%ss,\(%rax\)[ ]*(#.*)* -[ ]*30:[ ]+41 8c 20[ ]+movl[ ]+%fs,\(%r8\)[ ]*(#.*)* -[ ]*33:[ ]+8c 20[ ]+movl[ ]+%fs,\(%rax\)[ ]*(#.*)* -[ ]*35:[ ]+41 8e 10[ ]+movl[ ]+\(%r8\),%ss[ ]*(#.*)* -[ ]*38:[ ]+8e 10[ ]+movl[ ]+\(%rax\),%ss[ ]*(#.*)* -[ ]*3a:[ ]+41 8e 20[ ]+movl[ ]+\(%r8\),%fs[ ]*(#.*)* -[ ]*3d:[ ]+8e 20[ ]+movl[ ]+\(%rax\),%fs[ ]*(#.*)* -[ ]*3f:[ ]+41 c6 00 00[ ]+movb[ ]+\$0[x0]*,\(%r8\)[ ]*(#.*)* -[ ]*43:[ ]+c6 00 00[ ]+movb[ ]+\$0[x0]*,\(%rax\)[ ]*(#.*)* -[ ]*46:[ ]+66 41 c7 00 00 70[ ]+movw[ ]+\$0x7000,\(%r8\)[ ]*(#.*)* -[ ]*4c:[ ]+66 c7 00 00 70[ ]+movw[ ]+\$0x7000,\(%rax\)[ ]*(#.*)* -[ ]*51:[ ]+41 c7 00 00 00 00 70[ ]+movl[ ]+\$0x70000000,\(%r8\)[ ]*(#.*)* -[ ]*58:[ ]+c7 00 00 00 00 70[ ]+movl[ ]+\$0x70000000,\(%rax\)[ ]*(#.*)* -[ ]*5e:[ ]+41 c6 00 00[ ]+movb[ ]+\$0[x0]*,\(%r8\)[ ]*(#.*)* -[ ]*62:[ ]+c6 00 00[ ]+movb[ ]+\$0[x0]*,\(%rax\)[ ]*(#.*)* -[ ]*65:[ ]+66 41 c7 00 00 70[ ]+movw[ ]+\$0x7000,\(%r8\)[ ]*(#.*)* -[ ]*6b:[ ]+66 c7 00 00 70[ ]+movw[ ]+\$0x7000,\(%rax\)[ ]*(#.*)* -[ ]*70:[ ]+c7 00 00 00 00 70[ ]+movl[ ]+\$0x70000000,\(%rax\)[ ]*(#.*)* -[ ]*76:[ ]+41 c6 00 00[ ]+movb[ ]+\$0[x0]*,\(%r8\)[ ]*(#.*)* -[ ]*7a:[ ]+c6 00 00[ ]+movb[ ]+\$0[x0]*,\(%rax\)[ ]*(#.*)* -[ ]*7d:[ ]+66 41 c7 00 00 70[ ]+movw[ ]+\$0x7000,\(%r8\)[ ]*(#.*)* -[ ]*83:[ ]+66 c7 00 00 70[ ]+movw[ ]+\$0x7000,\(%rax\)[ ]*(#.*)* -[ ]*88:[ ]+41 c7 00 00 00 00 70[ ]+movl[ ]+\$0x70000000,\(%r8\)[ ]*(#.*)* -[ ]*8f:[ ]+c7 00 00 00 00 70[ ]+movl[ ]+\$0x70000000,\(%rax\)[ ]*(#.*)* -[ ]*95:[ ]+49 c7 00 00 00 00 70[ ]+movq[ ]+\$0x70000000,\(%r8\)[ ]*(#.*)* -[ ]*9c:[ ]+48 c7 00 00 00 00 70[ ]+movq[ ]+\$0x70000000,\(%rax\)[ ]*(#.*)* -[ ]*a3:[ ]+41 0f c3 00[ ]+movnti[ ]+%eax,\(%r8\)[ ]*(#.*)* -[ ]*a7:[ ]+0f c3 00[ ]+movnti[ ]+%eax,\(%rax\)[ ]*(#.*)* -[ ]*aa:[ ]+49 0f c3 00[ ]+movnti[ ]+%rax,\(%r8\)[ ]*(#.*)* -[ ]*ae:[ ]+48 0f c3 00[ ]+movnti[ ]+%rax,\(%rax\)[ ]*(#.*)* -[ ]*b2:[ ]+4d 0f c3 00[ ]+movnti[ ]+%r8,\(%r8\)[ ]*(#.*)* -[ ]*b6:[ ]+4c 0f c3 00[ ]+movnti[ ]+%r8,\(%rax\)[ ]*(#.*)* -[ ]*ba:[ ]+41 f6 38[ ]+idivb[ ]+\(%r8\)[ ]*(#.*)* -[ ]*bd:[ ]+f6 38[ ]+idivb[ ]+\(%rax\)[ ]*(#.*)* -[ ]*bf:[ ]+66 41 f7 38[ ]+idivw[ ]+\(%r8\)[ ]*(#.*)* -[ ]*c3:[ ]+66 f7 38[ ]+idivw[ ]+\(%rax\)[ ]*(#.*)* -[ ]*c6:[ ]+41 f7 38[ ]+idivl[ ]+\(%r8\)[ ]*(#.*)* -[ ]*c9:[ ]+f7 38[ ]+idivl[ ]+\(%rax\)[ ]*(#.*)* -[ ]*cb:[ ]+49 f7 38[ ]+idivq[ ]+\(%r8\)[ ]*(#.*)* -[ ]*ce:[ ]+48 f7 38[ ]+idivq[ ]+\(%rax\)[ ]*(#.*)* -[ ]*d1:[ ]+41 f6 28[ ]+imulb[ ]+\(%r8\)[ ]*(#.*)* -[ ]*d4:[ ]+f6 28[ ]+imulb[ ]+\(%rax\)[ ]*(#.*)* -[ ]*d6:[ ]+66 41 f7 28[ ]+imulw[ ]+\(%r8\)[ ]*(#.*)* -[ ]*da:[ ]+66 f7 28[ ]+imulw[ ]+\(%rax\)[ ]*(#.*)* -[ ]*dd:[ ]+41 f7 28[ ]+imull[ ]+\(%r8\)[ ]*(#.*)* -[ ]*e0:[ ]+f7 28[ ]+imull[ ]+\(%rax\)[ ]*(#.*)* -[ ]*e2:[ ]+49 f7 28[ ]+imulq[ ]+\(%r8\)[ ]*(#.*)* -[ ]*e5:[ ]+48 f7 28[ ]+imulq[ ]+\(%rax\)[ ]*(#.*)* -[ ]*e8:[ ]+66 41 0f 58 00[ ]+addpd[ ]+\(%r8\),%xmm0[ ]*(#.*)* -[ ]*ed:[ ]+66 0f 58 00[ ]+addpd[ ]+\(%rax\),%xmm0[ ]*(#.*)* -[ ]*f1:[ ]+66 45 0f 58 38[ ]+addpd[ ]+\(%r8\),%xmm15[ ]*(#.*)* -[ ]*f6:[ ]+66 44 0f 58 38[ ]+addpd[ ]+\(%rax\),%xmm15[ ]*(#.*)* -[ ]*fb:[ ]+66 45 0f 58 00[ ]+addpd[ ]+\(%r8\),%xmm8[ ]*(#.*)* -[ ]*100:[ ]+66 44 0f 58 00[ ]+addpd[ ]+\(%rax\),%xmm8[ ]*(#.*)* -[ ]*105:[ ]+66 41 0f 58 38[ ]+addpd[ ]+\(%r8\),%xmm7[ ]*(#.*)* -[ ]*10a:[ ]+66 0f 58 38[ ]+addpd[ ]+\(%rax\),%xmm7[ ]*(#.*)* -[ ]*10e:[ ]+66 0f 58 c0[ ]+addpd[ ]+%xmm0,%xmm0[ ]*(#.*)* -[ ]*112:[ ]+66 45 0f 58 ff[ ]+addpd[ ]+%xmm15,%xmm15[ ]*(#.*)* -[ ]*117:[ ]+66 45 0f 58 c7[ ]+addpd[ ]+%xmm15,%xmm8[ ]*(#.*)* -[ ]*11c:[ ]+f2 49 0f 2d 00[ ]+cvtsd2siq[ ]+\(%r8\),%rax[ ]*(#.*)* -[ ]*121:[ ]+f2 48 0f 2d 00[ ]+cvtsd2siq[ ]+\(%rax\),%rax[ ]*(#.*)* -[ ]*126:[ ]+f2 4d 0f 2d 00[ ]+cvtsd2siq[ ]+\(%r8\),%r8[ ]*(#.*)* -[ ]*12b:[ ]+f2 4c 0f 2d 00[ ]+cvtsd2siq[ ]+\(%rax\),%r8[ ]*(#.*)* -[ ]*130:[ ]+f2 48 0f 2d c0[ ]+cvtsd2siq[ ]+%xmm0,%rax[ ]*(#.*)* -[ ]*135:[ ]+f2 4d 0f 2d c7[ ]+cvtsd2siq[ ]+%xmm15,%r8[ ]*(#.*)* -[ ]*13a:[ ]+f2 49 0f 2d c7[ ]+cvtsd2siq[ ]+%xmm15,%rax[ ]*(#.*)* -[ ]*13f:[ ]+f2 4d 0f 2d c0[ ]+cvtsd2siq[ ]+%xmm8,%r8[ ]*(#.*)* -[ ]*144:[ ]+f2 49 0f 2d c0[ ]+cvtsd2siq[ ]+%xmm8,%rax[ ]*(#.*)* -[ ]*149:[ ]+f2 4c 0f 2d c7[ ]+cvtsd2siq[ ]+%xmm7,%r8[ ]*(#.*)* -[ ]*14e:[ ]+f2 48 0f 2d c7[ ]+cvtsd2siq[ ]+%xmm7,%rax[ ]*(#.*)* -[ ]*153:[ ]+f2 4c 0f 2d c0[ ]+cvtsd2siq[ ]+%xmm0,%r8[ ]*(#.*)* -[ ]*158:[ ]+f2 49 0f 2c 00[ ]+cvttsd2siq[ ]+\(%r8\),%rax[ ]*(#.*)* -[ ]*15d:[ ]+f2 48 0f 2c 00[ ]+cvttsd2siq[ ]+\(%rax\),%rax[ ]*(#.*)* -[ ]*162:[ ]+f2 4d 0f 2c 00[ ]+cvttsd2siq[ ]+\(%r8\),%r8[ ]*(#.*)* -[ ]*167:[ ]+f2 4c 0f 2c 00[ ]+cvttsd2siq[ ]+\(%rax\),%r8[ ]*(#.*)* -[ ]*16c:[ ]+f2 48 0f 2c c0[ ]+cvttsd2siq[ ]+%xmm0,%rax[ ]*(#.*)* -[ ]*171:[ ]+f2 4d 0f 2c c7[ ]+cvttsd2siq[ ]+%xmm15,%r8[ ]*(#.*)* -[ ]*176:[ ]+f2 49 0f 2c c7[ ]+cvttsd2siq[ ]+%xmm15,%rax[ ]*(#.*)* -[ ]*17b:[ ]+f2 4d 0f 2c c0[ ]+cvttsd2siq[ ]+%xmm8,%r8[ ]*(#.*)* -[ ]*180:[ ]+f2 49 0f 2c c0[ ]+cvttsd2siq[ ]+%xmm8,%rax[ ]*(#.*)* -[ ]*185:[ ]+f2 4c 0f 2c c7[ ]+cvttsd2siq[ ]+%xmm7,%r8[ ]*(#.*)* -[ ]*18a:[ ]+f2 48 0f 2c c7[ ]+cvttsd2siq[ ]+%xmm7,%rax[ ]*(#.*)* -[ ]*18f:[ ]+f2 4c 0f 2c c0[ ]+cvttsd2siq[ ]+%xmm0,%r8[ ]*(#.*)* -[ ]*194:[ ]+f3 49 0f 2d 00[ ]+cvtss2siq[ ]+\(%r8\),%rax[ ]*(#.*)* -[ ]*199:[ ]+f3 48 0f 2d 00[ ]+cvtss2siq[ ]+\(%rax\),%rax[ ]*(#.*)* -[ ]*19e:[ ]+f3 4d 0f 2d 00[ ]+cvtss2siq[ ]+\(%r8\),%r8[ ]*(#.*)* -[ ]*1a3:[ ]+f3 4c 0f 2d 00[ ]+cvtss2siq[ ]+\(%rax\),%r8[ ]*(#.*)* -[ ]*1a8:[ ]+f3 48 0f 2d c0[ ]+cvtss2siq[ ]+%xmm0,%rax[ ]*(#.*)* -[ ]*1ad:[ ]+f3 4d 0f 2d c7[ ]+cvtss2siq[ ]+%xmm15,%r8[ ]*(#.*)* -[ ]*1b2:[ ]+f3 49 0f 2d c7[ ]+cvtss2siq[ ]+%xmm15,%rax[ ]*(#.*)* -[ ]*1b7:[ ]+f3 4d 0f 2d c0[ ]+cvtss2siq[ ]+%xmm8,%r8[ ]*(#.*)* -[ ]*1bc:[ ]+f3 49 0f 2d c0[ ]+cvtss2siq[ ]+%xmm8,%rax[ ]*(#.*)* -[ ]*1c1:[ ]+f3 4c 0f 2d c7[ ]+cvtss2siq[ ]+%xmm7,%r8[ ]*(#.*)* -[ ]*1c6:[ ]+f3 48 0f 2d c7[ ]+cvtss2siq[ ]+%xmm7,%rax[ ]*(#.*)* -[ ]*1cb:[ ]+f3 4c 0f 2d c0[ ]+cvtss2siq[ ]+%xmm0,%r8[ ]*(#.*)* -[ ]*1d0:[ ]+f3 49 0f 2c 00[ ]+cvttss2siq[ ]+\(%r8\),%rax[ ]*(#.*)* -[ ]*1d5:[ ]+f3 48 0f 2c 00[ ]+cvttss2siq[ ]+\(%rax\),%rax[ ]*(#.*)* -[ ]*1da:[ ]+f3 4d 0f 2c 00[ ]+cvttss2siq[ ]+\(%r8\),%r8[ ]*(#.*)* -[ ]*1df:[ ]+f3 4c 0f 2c 00[ ]+cvttss2siq[ ]+\(%rax\),%r8[ ]*(#.*)* -[ ]*1e4:[ ]+f3 48 0f 2c c0[ ]+cvttss2siq[ ]+%xmm0,%rax[ ]*(#.*)* -[ ]*1e9:[ ]+f3 4d 0f 2c c7[ ]+cvttss2siq[ ]+%xmm15,%r8[ ]*(#.*)* -[ ]*1ee:[ ]+f3 49 0f 2c c7[ ]+cvttss2siq[ ]+%xmm15,%rax[ ]*(#.*)* -[ ]*1f3:[ ]+f3 4d 0f 2c c0[ ]+cvttss2siq[ ]+%xmm8,%r8[ ]*(#.*)* -[ ]*1f8:[ ]+f3 49 0f 2c c0[ ]+cvttss2siq[ ]+%xmm8,%rax[ ]*(#.*)* -[ ]*1fd:[ ]+f3 4c 0f 2c c7[ ]+cvttss2siq[ ]+%xmm7,%r8[ ]*(#.*)* -[ ]*202:[ ]+f3 48 0f 2c c7[ ]+cvttss2siq[ ]+%xmm7,%rax[ ]*(#.*)* -[ ]*207:[ ]+f3 4c 0f 2c c0[ ]+cvttss2siq[ ]+%xmm0,%r8[ ]*(#.*)* -[ ]*20c:[ ]+f3 41 0f 2a 00[ ]+cvtsi2ss[ ]+\(%r8\),%xmm0[ ]*(#.*)* -[ ]*211:[ ]+f3 0f 2a 00[ ]+cvtsi2ss[ ]+\(%rax\),%xmm0[ ]*(#.*)* -[ ]*215:[ ]+f3 45 0f 2a 38[ ]+cvtsi2ss[ ]+\(%r8\),%xmm15[ ]*(#.*)* -[ ]*21a:[ ]+f3 44 0f 2a 38[ ]+cvtsi2ss[ ]+\(%rax\),%xmm15[ ]*(#.*)* -[ ]*21f:[ ]+f3 45 0f 2a 00[ ]+cvtsi2ss[ ]+\(%r8\),%xmm8[ ]*(#.*)* -[ ]*224:[ ]+f3 44 0f 2a 00[ ]+cvtsi2ss[ ]+\(%rax\),%xmm8[ ]*(#.*)* -[ ]*229:[ ]+f3 41 0f 2a 38[ ]+cvtsi2ss[ ]+\(%r8\),%xmm7[ ]*(#.*)* -[ ]*22e:[ ]+f3 0f 2a 38[ ]+cvtsi2ss[ ]+\(%rax\),%xmm7[ ]*(#.*)* -[ ]*232:[ ]+f3 0f 2a c0[ ]+cvtsi2ss[ ]+%eax,%xmm0[ ]*(#.*)* -[ ]*236:[ ]+f3 44 0f 2a f8[ ]+cvtsi2ss[ ]+%eax,%xmm15[ ]*(#.*)* -[ ]*23b:[ ]+f3 44 0f 2a c0[ ]+cvtsi2ss[ ]+%eax,%xmm8[ ]*(#.*)* -[ ]*240:[ ]+f3 0f 2a f8[ ]+cvtsi2ss[ ]+%eax,%xmm7[ ]*(#.*)* -[ ]*244:[ ]+f3 41 0f 2a 00[ ]+cvtsi2ss[ ]+\(%r8\),%xmm0[ ]*(#.*)* -[ ]*249:[ ]+f3 0f 2a 00[ ]+cvtsi2ss[ ]+\(%rax\),%xmm0[ ]*(#.*)* -[ ]*24d:[ ]+f3 45 0f 2a 38[ ]+cvtsi2ss[ ]+\(%r8\),%xmm15[ ]*(#.*)* -[ ]*252:[ ]+f3 44 0f 2a 38[ ]+cvtsi2ss[ ]+\(%rax\),%xmm15[ ]*(#.*)* -[ ]*257:[ ]+f3 45 0f 2a 00[ ]+cvtsi2ss[ ]+\(%r8\),%xmm8[ ]*(#.*)* -[ ]*25c:[ ]+f3 44 0f 2a 00[ ]+cvtsi2ss[ ]+\(%rax\),%xmm8[ ]*(#.*)* -[ ]*261:[ ]+f3 41 0f 2a 38[ ]+cvtsi2ss[ ]+\(%r8\),%xmm7[ ]*(#.*)* -[ ]*266:[ ]+f3 0f 2a 38[ ]+cvtsi2ss[ ]+\(%rax\),%xmm7[ ]*(#.*)* -[ ]*26a:[ ]+f2 41 0f 2a 00[ ]+cvtsi2sd[ ]+\(%r8\),%xmm0[ ]*(#.*)* -[ ]*26f:[ ]+f2 0f 2a 00[ ]+cvtsi2sd[ ]+\(%rax\),%xmm0[ ]*(#.*)* -[ ]*273:[ ]+f2 45 0f 2a 38[ ]+cvtsi2sd[ ]+\(%r8\),%xmm15[ ]*(#.*)* -[ ]*278:[ ]+f2 44 0f 2a 38[ ]+cvtsi2sd[ ]+\(%rax\),%xmm15[ ]*(#.*)* -[ ]*27d:[ ]+f2 45 0f 2a 00[ ]+cvtsi2sd[ ]+\(%r8\),%xmm8[ ]*(#.*)* -[ ]*282:[ ]+f2 44 0f 2a 00[ ]+cvtsi2sd[ ]+\(%rax\),%xmm8[ ]*(#.*)* -[ ]*287:[ ]+f2 41 0f 2a 38[ ]+cvtsi2sd[ ]+\(%r8\),%xmm7[ ]*(#.*)* -[ ]*28c:[ ]+f2 0f 2a 38[ ]+cvtsi2sd[ ]+\(%rax\),%xmm7[ ]*(#.*)* -[ ]*290:[ ]+f2 0f 2a c0[ ]+cvtsi2sd[ ]+%eax,%xmm0[ ]*(#.*)* -[ ]*294:[ ]+f2 44 0f 2a f8[ ]+cvtsi2sd[ ]+%eax,%xmm15[ ]*(#.*)* -[ ]*299:[ ]+f2 44 0f 2a c0[ ]+cvtsi2sd[ ]+%eax,%xmm8[ ]*(#.*)* -[ ]*29e:[ ]+f2 0f 2a f8[ ]+cvtsi2sd[ ]+%eax,%xmm7[ ]*(#.*)* -[ ]*2a2:[ ]+f2 41 0f 2a 00[ ]+cvtsi2sd[ ]+\(%r8\),%xmm0[ ]*(#.*)* -[ ]*2a7:[ ]+f2 0f 2a 00[ ]+cvtsi2sd[ ]+\(%rax\),%xmm0[ ]*(#.*)* -[ ]*2ab:[ ]+f2 45 0f 2a 38[ ]+cvtsi2sd[ ]+\(%r8\),%xmm15[ ]*(#.*)* -[ ]*2b0:[ ]+f2 44 0f 2a 38[ ]+cvtsi2sd[ ]+\(%rax\),%xmm15[ ]*(#.*)* -[ ]*2b5:[ ]+f2 45 0f 2a 00[ ]+cvtsi2sd[ ]+\(%r8\),%xmm8[ ]*(#.*)* -[ ]*2ba:[ ]+f2 44 0f 2a 00[ ]+cvtsi2sd[ ]+\(%rax\),%xmm8[ ]*(#.*)* -[ ]*2bf:[ ]+f2 41 0f 2a 38[ ]+cvtsi2sd[ ]+\(%r8\),%xmm7[ ]*(#.*)* -[ ]*2c4:[ ]+f2 0f 2a 38[ ]+cvtsi2sd[ ]+\(%rax\),%xmm7[ ]*(#.*)* -[ ]*2c8:[ ]+66 41 0f 6e 00[ ]+movd[ ]+\(%r8\),%xmm0[ ]*(#.*)* -[ ]*2cd:[ ]+66 0f 6e 00[ ]+movd[ ]+\(%rax\),%xmm0[ ]*(#.*)* -[ ]*2d1:[ ]+66 45 0f 6e 38[ ]+movd[ ]+\(%r8\),%xmm15[ ]*(#.*)* -[ ]*2d6:[ ]+66 44 0f 6e 38[ ]+movd[ ]+\(%rax\),%xmm15[ ]*(#.*)* -[ ]*2db:[ ]+66 45 0f 6e 00[ ]+movd[ ]+\(%r8\),%xmm8[ ]*(#.*)* -[ ]*2e0:[ ]+66 44 0f 6e 00[ ]+movd[ ]+\(%rax\),%xmm8[ ]*(#.*)* -[ ]*2e5:[ ]+66 41 0f 6e 38[ ]+movd[ ]+\(%r8\),%xmm7[ ]*(#.*)* -[ ]*2ea:[ ]+66 0f 6e 38[ ]+movd[ ]+\(%rax\),%xmm7[ ]*(#.*)* -[ ]*2ee:[ ]+66 0f 6e c0[ ]+movd[ ]+%eax,%xmm0[ ]*(#.*)* -[ ]*2f2:[ ]+66 44 0f 6e f8[ ]+movd[ ]+%eax,%xmm15[ ]*(#.*)* -[ ]*2f7:[ ]+66 44 0f 6e c0[ ]+movd[ ]+%eax,%xmm8[ ]*(#.*)* -[ ]*2fc:[ ]+66 0f 6e f8[ ]+movd[ ]+%eax,%xmm7[ ]*(#.*)* -[ ]*300:[ ]+66 41 0f 7e 00[ ]+movd[ ]+%xmm0,\(%r8\)[ ]*(#.*)* -[ ]*305:[ ]+66 0f 7e 00[ ]+movd[ ]+%xmm0,\(%rax\)[ ]*(#.*)* -[ ]*309:[ ]+66 45 0f 7e 38[ ]+movd[ ]+%xmm15,\(%r8\)[ ]*(#.*)* -[ ]*30e:[ ]+66 44 0f 7e 38[ ]+movd[ ]+%xmm15,\(%rax\)[ ]*(#.*)* -[ ]*313:[ ]+66 45 0f 7e 00[ ]+movd[ ]+%xmm8,\(%r8\)[ ]*(#.*)* -[ ]*318:[ ]+66 44 0f 7e 00[ ]+movd[ ]+%xmm8,\(%rax\)[ ]*(#.*)* -[ ]*31d:[ ]+66 41 0f 7e 38[ ]+movd[ ]+%xmm7,\(%r8\)[ ]*(#.*)* -[ ]*322:[ ]+66 0f 7e 38[ ]+movd[ ]+%xmm7,\(%rax\)[ ]*(#.*)* -[ ]*326:[ ]+66 0f 7e c0[ ]+movd[ ]+%xmm0,%eax[ ]*(#.*)* -[ ]*32a:[ ]+66 44 0f 7e f8[ ]+movd[ ]+%xmm15,%eax[ ]*(#.*)* -[ ]*32f:[ ]+66 44 0f 7e c0[ ]+movd[ ]+%xmm8,%eax[ ]*(#.*)* -[ ]*334:[ ]+66 0f 7e f8[ ]+movd[ ]+%xmm7,%eax[ ]*(#.*)* -[ ]*338:[ ]+66 48 0f 6e c0[ ]+movd[ ]+%rax,%xmm0[ ]*(#.*)* -[ ]*33d:[ ]+66 49 0f 6e c0[ ]+movd[ ]+%r8,%xmm0[ ]*(#.*)* -[ ]*342:[ ]+66 4d 0f 6e f8[ ]+movd[ ]+%r8,%xmm15[ ]*(#.*)* -[ ]*347:[ ]+66 48 0f 7e c0[ ]+movd[ ]+%xmm0,%rax[ ]*(#.*)* -[ ]*34c:[ ]+66 49 0f 7e c0[ ]+movd[ ]+%xmm0,%r8[ ]*(#.*)* -[ ]*351:[ ]+66 49 0f 7e f8[ ]+movd[ ]+%xmm7,%r8[ ]*(#.*)* -[ ]*356:[ ]+f3 41 0f 7e 00[ ]+movq[ ]+\(%r8\),%xmm0[ ]*(#.*)* -[ ]*35b:[ ]+f3 0f 7e 00[ ]+movq[ ]+\(%rax\),%xmm0[ ]*(#.*)* -[ ]*35f:[ ]+f3 45 0f 7e 38[ ]+movq[ ]+\(%r8\),%xmm15[ ]*(#.*)* -[ ]*364:[ ]+f3 44 0f 7e 38[ ]+movq[ ]+\(%rax\),%xmm15[ ]*(#.*)* -[ ]*369:[ ]+f3 45 0f 7e 00[ ]+movq[ ]+\(%r8\),%xmm8[ ]*(#.*)* -[ ]*36e:[ ]+f3 44 0f 7e 00[ ]+movq[ ]+\(%rax\),%xmm8[ ]*(#.*)* -[ ]*373:[ ]+f3 41 0f 7e 38[ ]+movq[ ]+\(%r8\),%xmm7[ ]*(#.*)* -[ ]*378:[ ]+f3 0f 7e 38[ ]+movq[ ]+\(%rax\),%xmm7[ ]*(#.*)* -[ ]*37c:[ ]+f3 0f 7e c0[ ]+movq[ ]+%xmm0,%xmm0[ ]*(#.*)* -[ ]*380:[ ]+f3 45 0f 7e ff[ ]+movq[ ]+%xmm15,%xmm15[ ]*(#.*)* -[ ]*385:[ ]+f3 45 0f 7e c7[ ]+movq[ ]+%xmm15,%xmm8[ ]*(#.*)* -[ ]*38a:[ ]+f3 41 0f 7e ff[ ]+movq[ ]+%xmm15,%xmm7[ ]*(#.*)* -[ ]*38f:[ ]+f3 41 0f 7e c7[ ]+movq[ ]+%xmm15,%xmm0[ ]*(#.*)* -[ ]*394:[ ]+f3 45 0f 7e f8[ ]+movq[ ]+%xmm8,%xmm15[ ]*(#.*)* -[ ]*399:[ ]+f3 45 0f 7e c0[ ]+movq[ ]+%xmm8,%xmm8[ ]*(#.*)* -[ ]*39e:[ ]+f3 41 0f 7e f8[ ]+movq[ ]+%xmm8,%xmm7[ ]*(#.*)* -[ ]*3a3:[ ]+f3 41 0f 7e c0[ ]+movq[ ]+%xmm8,%xmm0[ ]*(#.*)* -[ ]*3a8:[ ]+f3 44 0f 7e ff[ ]+movq[ ]+%xmm7,%xmm15[ ]*(#.*)* -[ ]*3ad:[ ]+f3 44 0f 7e c7[ ]+movq[ ]+%xmm7,%xmm8[ ]*(#.*)* -[ ]*3b2:[ ]+f3 0f 7e ff[ ]+movq[ ]+%xmm7,%xmm7[ ]*(#.*)* -[ ]*3b6:[ ]+f3 0f 7e c7[ ]+movq[ ]+%xmm7,%xmm0[ ]*(#.*)* -[ ]*3ba:[ ]+f3 44 0f 7e f8[ ]+movq[ ]+%xmm0,%xmm15[ ]*(#.*)* -[ ]*3bf:[ ]+f3 44 0f 7e c0[ ]+movq[ ]+%xmm0,%xmm8[ ]*(#.*)* -[ ]*3c4:[ ]+f3 0f 7e f8[ ]+movq[ ]+%xmm0,%xmm7[ ]*(#.*)* -[ ]*3c8:[ ]+66 41 0f d6 00[ ]+movq[ ]+%xmm0,\(%r8\)[ ]*(#.*)* -[ ]*3cd:[ ]+66 0f d6 00[ ]+movq[ ]+%xmm0,\(%rax\)[ ]*(#.*)* -[ ]*3d1:[ ]+66 45 0f d6 38[ ]+movq[ ]+%xmm15,\(%r8\)[ ]*(#.*)* -[ ]*3d6:[ ]+66 44 0f d6 38[ ]+movq[ ]+%xmm15,\(%rax\)[ ]*(#.*)* -[ ]*3db:[ ]+66 45 0f d6 00[ ]+movq[ ]+%xmm8,\(%r8\)[ ]*(#.*)* -[ ]*3e0:[ ]+66 44 0f d6 00[ ]+movq[ ]+%xmm8,\(%rax\)[ ]*(#.*)* -[ ]*3e5:[ ]+66 41 0f d6 38[ ]+movq[ ]+%xmm7,\(%r8\)[ ]*(#.*)* -[ ]*3ea:[ ]+41 0f 6e 00[ ]+movd[ ]+\(%r8\),%mm0[ ]*(#.*)* -[ ]*3ee:[ ]+0f 6e 00[ ]+movd[ ]+\(%rax\),%mm0[ ]*(#.*)* -[ ]*3f1:[ ]+41 0f 6e 38[ ]+movd[ ]+\(%r8\),%mm7[ ]*(#.*)* -[ ]*3f5:[ ]+0f 6e 38[ ]+movd[ ]+\(%rax\),%mm7[ ]*(#.*)* -[ ]*3f8:[ ]+0f 6e c0[ ]+movd[ ]+%eax,%mm0[ ]*(#.*)* -[ ]*3fb:[ ]+0f 6e f8[ ]+movd[ ]+%eax,%mm7[ ]*(#.*)* -[ ]*3fe:[ ]+41 0f 7e 00[ ]+movd[ ]+%mm0,\(%r8\)[ ]*(#.*)* -[ ]*402:[ ]+0f 7e 00[ ]+movd[ ]+%mm0,\(%rax\)[ ]*(#.*)* -[ ]*405:[ ]+41 0f 7e 38[ ]+movd[ ]+%mm7,\(%r8\)[ ]*(#.*)* -[ ]*409:[ ]+0f 7e 38[ ]+movd[ ]+%mm7,\(%rax\)[ ]*(#.*)* -[ ]*40c:[ ]+0f 7e c0[ ]+movd[ ]+%mm0,%eax[ ]*(#.*)* -[ ]*40f:[ ]+0f 7e f8[ ]+movd[ ]+%mm7,%eax[ ]*(#.*)* -[ ]*412:[ ]+41 0f 6f 00[ ]+movq[ ]+\(%r8\),%mm0[ ]*(#.*)* -[ ]*416:[ ]+0f 6f 00[ ]+movq[ ]+\(%rax\),%mm0[ ]*(#.*)* -[ ]*419:[ ]+41 0f 6f 38[ ]+movq[ ]+\(%r8\),%mm7[ ]*(#.*)* -[ ]*41d:[ ]+0f 6f 38[ ]+movq[ ]+\(%rax\),%mm7[ ]*(#.*)* -[ ]*420:[ ]+41 0f 7f 00[ ]+movq[ ]+%mm0,\(%r8\)[ ]*(#.*)* -[ ]*424:[ ]+0f 7f 00[ ]+movq[ ]+%mm0,\(%rax\)[ ]*(#.*)* -[ ]*427:[ ]+41 0f 7f 38[ ]+movq[ ]+%mm7,\(%r8\)[ ]*(#.*)* -[ ]*42b:[ ]+0f 7f 38[ ]+movq[ ]+%mm7,\(%rax\)[ ]*(#.*)* -[ ]*42e:[ ]+41 8f 00[ ]+popq[ ]+\(%r8\)[ ]*(#.*)* -[ ]*431:[ ]+8f 00[ ]+popq[ ]+\(%rax\)[ ]*(#.*)* -[ ]*433:[ ]+9d[ ]+popfq[ ]*(#.*)* -[ ]*434:[ ]+41 ff 30[ ]+pushq[ ]+\(%r8\)[ ]*(#.*)* -[ ]*437:[ ]+ff 30[ ]+pushq[ ]+\(%rax\)[ ]*(#.*)* -[ ]*439:[ ]+9c[ ]+pushfq[ ]*(#.*)* -[ ]*43a:[ ]+0f 77[ ]+emms[ ]*(#.*)* -[ ]*43c:[ ]+0f 0e[ ]+femms[ ]*(#.*)* -[ ]*43e:[ ]+0f 08[ ]+invd[ ]*(#.*)* -[ ]*440:[ ]+41 0f 01 38[ ]+invlpg[ ]+\(%r8\)[ ]*(#.*)* -[ ]*444:[ ]+0f 01 38[ ]+invlpg[ ]+\(%rax\)[ ]*(#.*)* -[ ]*447:[ ]+41 0f 01 38[ ]+invlpg[ ]+\(%r8\)[ ]*(#.*)* -[ ]*44b:[ ]+0f 01 38[ ]+invlpg[ ]+\(%rax\)[ ]*(#.*)* -[ ]*44e:[ ]+41 0f 01 38[ ]+invlpg[ ]+\(%r8\)[ ]*(#.*)* -[ ]*452:[ ]+0f 01 38[ ]+invlpg[ ]+\(%rax\)[ ]*(#.*)* -[ ]*455:[ ]+0f 00 c0[ ]+sldt[ ]+%eax[ ]*(#.*)* -[ ]*458:[ ]+e6 00[ ]+out[ ]+%al,\$0[x0]*[ ]*(#.*)* -[ ]*45a:[ ]+66 e7 00[ ]+out[ ]+%ax,\$0[x0]*[ ]*(#.*)* -[ ]*45d:[ ]+e7 00[ ]+out[ ]+%eax,\$0[x0]*[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+41 ff 10[ ]+callq[ ]+\*\(%r8\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+ff 10[ ]+callq[ ]+\*\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+41 ff 10[ ]+callq[ ]+\*\(%r8\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+ff 10[ ]+callq[ ]+\*\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+cb[ ]+lret[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+c3[ ]+retq[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+cf[ ]+iret[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 cf[ ]+iretw[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+48 cf[ ]+iretq[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+41 8c 08[ ]+movl?[ ]+%cs,\(%r8\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+8c 08[ ]+movl?[ ]+%cs,\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+41 8c 10[ ]+movl?[ ]+%ss,\(%r8\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+8c 10[ ]+movl?[ ]+%ss,\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+41 8c 20[ ]+movl?[ ]+%fs,\(%r8\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+8c 20[ ]+movl?[ ]+%fs,\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+41 8c 08[ ]+movl?[ ]+%cs,\(%r8\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+8c 08[ ]+movl?[ ]+%cs,\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+41 8c 10[ ]+movl?[ ]+%ss,\(%r8\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+8c 10[ ]+movl?[ ]+%ss,\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+41 8c 20[ ]+movl?[ ]+%fs,\(%r8\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+8c 20[ ]+movl?[ ]+%fs,\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+41 8e 10[ ]+movl?[ ]+\(%r8\),%ss[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+8e 10[ ]+movl?[ ]+\(%rax\),%ss[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+41 8e 20[ ]+movl?[ ]+\(%r8\),%fs[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+8e 20[ ]+movl?[ ]+\(%rax\),%fs[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+41 c6 00 00[ ]+movb[ ]+\$0[x0]*,\(%r8\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+c6 00 00[ ]+movb[ ]+\$0[x0]*,\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 41 c7 00 00 70[ ]+movw[ ]+\$0x7000,\(%r8\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 c7 00 00 70[ ]+movw[ ]+\$0x7000,\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+41 c7 00 00 00 00 70[ ]+movl[ ]+\$0x70000000,\(%r8\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+c7 00 00 00 00 70[ ]+movl[ ]+\$0x70000000,\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+41 c6 00 00[ ]+movb[ ]+\$0[x0]*,\(%r8\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+c6 00 00[ ]+movb[ ]+\$0[x0]*,\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 41 c7 00 00 70[ ]+movw[ ]+\$0x7000,\(%r8\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 c7 00 00 70[ ]+movw[ ]+\$0x7000,\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+c7 00 00 00 00 70[ ]+movl[ ]+\$0x70000000,\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+41 c6 00 00[ ]+movb[ ]+\$0[x0]*,\(%r8\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+c6 00 00[ ]+movb[ ]+\$0[x0]*,\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 41 c7 00 00 70[ ]+movw[ ]+\$0x7000,\(%r8\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 c7 00 00 70[ ]+movw[ ]+\$0x7000,\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+41 c7 00 00 00 00 70[ ]+movl[ ]+\$0x70000000,\(%r8\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+c7 00 00 00 00 70[ ]+movl[ ]+\$0x70000000,\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+49 c7 00 00 00 00 70[ ]+movq[ ]+\$0x70000000,\(%r8\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+48 c7 00 00 00 00 70[ ]+movq[ ]+\$0x70000000,\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+41 0f c3 00[ ]+movnti[ ]+%eax,\(%r8\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+0f c3 00[ ]+movnti[ ]+%eax,\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+49 0f c3 00[ ]+movnti[ ]+%rax,\(%r8\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+48 0f c3 00[ ]+movnti[ ]+%rax,\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+4d 0f c3 00[ ]+movnti[ ]+%r8,\(%r8\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+4c 0f c3 00[ ]+movnti[ ]+%r8,\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+41 f6 38[ ]+idivb[ ]+\(%r8\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f6 38[ ]+idivb[ ]+\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 41 f7 38[ ]+idivw[ ]+\(%r8\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 f7 38[ ]+idivw[ ]+\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+41 f7 38[ ]+idivl[ ]+\(%r8\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f7 38[ ]+idivl[ ]+\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+49 f7 38[ ]+idivq[ ]+\(%r8\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+48 f7 38[ ]+idivq[ ]+\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+41 f6 28[ ]+imulb[ ]+\(%r8\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f6 28[ ]+imulb[ ]+\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 41 f7 28[ ]+imulw[ ]+\(%r8\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 f7 28[ ]+imulw[ ]+\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+41 f7 28[ ]+imull[ ]+\(%r8\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f7 28[ ]+imull[ ]+\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+49 f7 28[ ]+imulq[ ]+\(%r8\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+48 f7 28[ ]+imulq[ ]+\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 41 0f 58 00[ ]+addpd[ ]+\(%r8\),%xmm0[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 0f 58 00[ ]+addpd[ ]+\(%rax\),%xmm0[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 45 0f 58 38[ ]+addpd[ ]+\(%r8\),%xmm15[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 44 0f 58 38[ ]+addpd[ ]+\(%rax\),%xmm15[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 45 0f 58 00[ ]+addpd[ ]+\(%r8\),%xmm8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 44 0f 58 00[ ]+addpd[ ]+\(%rax\),%xmm8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 41 0f 58 38[ ]+addpd[ ]+\(%r8\),%xmm7[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 0f 58 38[ ]+addpd[ ]+\(%rax\),%xmm7[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 0f 58 c0[ ]+addpd[ ]+%xmm0,%xmm0[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 45 0f 58 ff[ ]+addpd[ ]+%xmm15,%xmm15[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 45 0f 58 c7[ ]+addpd[ ]+%xmm15,%xmm8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 49 0f 2d 00[ ]+cvtsd2siq[ ]+\(%r8\),%rax[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 48 0f 2d 00[ ]+cvtsd2siq[ ]+\(%rax\),%rax[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 4d 0f 2d 00[ ]+cvtsd2siq[ ]+\(%r8\),%r8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 4c 0f 2d 00[ ]+cvtsd2siq[ ]+\(%rax\),%r8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 48 0f 2d c0[ ]+cvtsd2siq[ ]+%xmm0,%rax[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 4d 0f 2d c7[ ]+cvtsd2siq[ ]+%xmm15,%r8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 49 0f 2d c7[ ]+cvtsd2siq[ ]+%xmm15,%rax[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 4d 0f 2d c0[ ]+cvtsd2siq[ ]+%xmm8,%r8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 49 0f 2d c0[ ]+cvtsd2siq[ ]+%xmm8,%rax[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 4c 0f 2d c7[ ]+cvtsd2siq[ ]+%xmm7,%r8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 48 0f 2d c7[ ]+cvtsd2siq[ ]+%xmm7,%rax[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 4c 0f 2d c0[ ]+cvtsd2siq[ ]+%xmm0,%r8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 49 0f 2c 00[ ]+cvttsd2siq[ ]+\(%r8\),%rax[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 48 0f 2c 00[ ]+cvttsd2siq[ ]+\(%rax\),%rax[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 4d 0f 2c 00[ ]+cvttsd2siq[ ]+\(%r8\),%r8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 4c 0f 2c 00[ ]+cvttsd2siq[ ]+\(%rax\),%r8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 48 0f 2c c0[ ]+cvttsd2siq[ ]+%xmm0,%rax[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 4d 0f 2c c7[ ]+cvttsd2siq[ ]+%xmm15,%r8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 49 0f 2c c7[ ]+cvttsd2siq[ ]+%xmm15,%rax[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 4d 0f 2c c0[ ]+cvttsd2siq[ ]+%xmm8,%r8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 49 0f 2c c0[ ]+cvttsd2siq[ ]+%xmm8,%rax[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 4c 0f 2c c7[ ]+cvttsd2siq[ ]+%xmm7,%r8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 48 0f 2c c7[ ]+cvttsd2siq[ ]+%xmm7,%rax[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 4c 0f 2c c0[ ]+cvttsd2siq[ ]+%xmm0,%r8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 49 0f 2d 00[ ]+cvtss2siq[ ]+\(%r8\),%rax[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 48 0f 2d 00[ ]+cvtss2siq[ ]+\(%rax\),%rax[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 4d 0f 2d 00[ ]+cvtss2siq[ ]+\(%r8\),%r8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 4c 0f 2d 00[ ]+cvtss2siq[ ]+\(%rax\),%r8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 48 0f 2d c0[ ]+cvtss2siq[ ]+%xmm0,%rax[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 4d 0f 2d c7[ ]+cvtss2siq[ ]+%xmm15,%r8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 49 0f 2d c7[ ]+cvtss2siq[ ]+%xmm15,%rax[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 4d 0f 2d c0[ ]+cvtss2siq[ ]+%xmm8,%r8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 49 0f 2d c0[ ]+cvtss2siq[ ]+%xmm8,%rax[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 4c 0f 2d c7[ ]+cvtss2siq[ ]+%xmm7,%r8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 48 0f 2d c7[ ]+cvtss2siq[ ]+%xmm7,%rax[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 4c 0f 2d c0[ ]+cvtss2siq[ ]+%xmm0,%r8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 49 0f 2c 00[ ]+cvttss2siq[ ]+\(%r8\),%rax[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 48 0f 2c 00[ ]+cvttss2siq[ ]+\(%rax\),%rax[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 4d 0f 2c 00[ ]+cvttss2siq[ ]+\(%r8\),%r8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 4c 0f 2c 00[ ]+cvttss2siq[ ]+\(%rax\),%r8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 48 0f 2c c0[ ]+cvttss2siq[ ]+%xmm0,%rax[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 4d 0f 2c c7[ ]+cvttss2siq[ ]+%xmm15,%r8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 49 0f 2c c7[ ]+cvttss2siq[ ]+%xmm15,%rax[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 4d 0f 2c c0[ ]+cvttss2siq[ ]+%xmm8,%r8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 49 0f 2c c0[ ]+cvttss2siq[ ]+%xmm8,%rax[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 4c 0f 2c c7[ ]+cvttss2siq[ ]+%xmm7,%r8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 48 0f 2c c7[ ]+cvttss2siq[ ]+%xmm7,%rax[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 4c 0f 2c c0[ ]+cvttss2siq[ ]+%xmm0,%r8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 41 0f 2a 00[ ]+cvtsi2ss[ ]+\(%r8\),%xmm0[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 0f 2a 00[ ]+cvtsi2ss[ ]+\(%rax\),%xmm0[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 45 0f 2a 38[ ]+cvtsi2ss[ ]+\(%r8\),%xmm15[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 44 0f 2a 38[ ]+cvtsi2ss[ ]+\(%rax\),%xmm15[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 45 0f 2a 00[ ]+cvtsi2ss[ ]+\(%r8\),%xmm8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 44 0f 2a 00[ ]+cvtsi2ss[ ]+\(%rax\),%xmm8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 41 0f 2a 38[ ]+cvtsi2ss[ ]+\(%r8\),%xmm7[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 0f 2a 38[ ]+cvtsi2ss[ ]+\(%rax\),%xmm7[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 0f 2a c0[ ]+cvtsi2ss[ ]+%eax,%xmm0[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 44 0f 2a f8[ ]+cvtsi2ss[ ]+%eax,%xmm15[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 44 0f 2a c0[ ]+cvtsi2ss[ ]+%eax,%xmm8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 0f 2a f8[ ]+cvtsi2ss[ ]+%eax,%xmm7[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 41 0f 2a 00[ ]+cvtsi2ss[ ]+\(%r8\),%xmm0[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 0f 2a 00[ ]+cvtsi2ss[ ]+\(%rax\),%xmm0[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 45 0f 2a 38[ ]+cvtsi2ss[ ]+\(%r8\),%xmm15[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 44 0f 2a 38[ ]+cvtsi2ss[ ]+\(%rax\),%xmm15[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 45 0f 2a 00[ ]+cvtsi2ss[ ]+\(%r8\),%xmm8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 44 0f 2a 00[ ]+cvtsi2ss[ ]+\(%rax\),%xmm8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 41 0f 2a 38[ ]+cvtsi2ss[ ]+\(%r8\),%xmm7[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 0f 2a 38[ ]+cvtsi2ss[ ]+\(%rax\),%xmm7[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 41 0f 2a 00[ ]+cvtsi2sd[ ]+\(%r8\),%xmm0[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 0f 2a 00[ ]+cvtsi2sd[ ]+\(%rax\),%xmm0[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 45 0f 2a 38[ ]+cvtsi2sd[ ]+\(%r8\),%xmm15[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 44 0f 2a 38[ ]+cvtsi2sd[ ]+\(%rax\),%xmm15[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 45 0f 2a 00[ ]+cvtsi2sd[ ]+\(%r8\),%xmm8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 44 0f 2a 00[ ]+cvtsi2sd[ ]+\(%rax\),%xmm8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 41 0f 2a 38[ ]+cvtsi2sd[ ]+\(%r8\),%xmm7[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 0f 2a 38[ ]+cvtsi2sd[ ]+\(%rax\),%xmm7[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 0f 2a c0[ ]+cvtsi2sd[ ]+%eax,%xmm0[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 44 0f 2a f8[ ]+cvtsi2sd[ ]+%eax,%xmm15[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 44 0f 2a c0[ ]+cvtsi2sd[ ]+%eax,%xmm8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 0f 2a f8[ ]+cvtsi2sd[ ]+%eax,%xmm7[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 41 0f 2a 00[ ]+cvtsi2sd[ ]+\(%r8\),%xmm0[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 0f 2a 00[ ]+cvtsi2sd[ ]+\(%rax\),%xmm0[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 45 0f 2a 38[ ]+cvtsi2sd[ ]+\(%r8\),%xmm15[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 44 0f 2a 38[ ]+cvtsi2sd[ ]+\(%rax\),%xmm15[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 45 0f 2a 00[ ]+cvtsi2sd[ ]+\(%r8\),%xmm8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 44 0f 2a 00[ ]+cvtsi2sd[ ]+\(%rax\),%xmm8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 41 0f 2a 38[ ]+cvtsi2sd[ ]+\(%r8\),%xmm7[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f2 0f 2a 38[ ]+cvtsi2sd[ ]+\(%rax\),%xmm7[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 41 0f 6e 00[ ]+movd[ ]+\(%r8\),%xmm0[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 0f 6e 00[ ]+movd[ ]+\(%rax\),%xmm0[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 45 0f 6e 38[ ]+movd[ ]+\(%r8\),%xmm15[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 44 0f 6e 38[ ]+movd[ ]+\(%rax\),%xmm15[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 45 0f 6e 00[ ]+movd[ ]+\(%r8\),%xmm8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 44 0f 6e 00[ ]+movd[ ]+\(%rax\),%xmm8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 41 0f 6e 38[ ]+movd[ ]+\(%r8\),%xmm7[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 0f 6e 38[ ]+movd[ ]+\(%rax\),%xmm7[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 0f 6e c0[ ]+movd[ ]+%eax,%xmm0[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 44 0f 6e f8[ ]+movd[ ]+%eax,%xmm15[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 44 0f 6e c0[ ]+movd[ ]+%eax,%xmm8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 0f 6e f8[ ]+movd[ ]+%eax,%xmm7[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 41 0f 7e 00[ ]+movd[ ]+%xmm0,\(%r8\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 0f 7e 00[ ]+movd[ ]+%xmm0,\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 45 0f 7e 38[ ]+movd[ ]+%xmm15,\(%r8\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 44 0f 7e 38[ ]+movd[ ]+%xmm15,\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 45 0f 7e 00[ ]+movd[ ]+%xmm8,\(%r8\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 44 0f 7e 00[ ]+movd[ ]+%xmm8,\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 41 0f 7e 38[ ]+movd[ ]+%xmm7,\(%r8\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 0f 7e 38[ ]+movd[ ]+%xmm7,\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 0f 7e c0[ ]+movd[ ]+%xmm0,%eax[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 44 0f 7e f8[ ]+movd[ ]+%xmm15,%eax[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 44 0f 7e c0[ ]+movd[ ]+%xmm8,%eax[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 0f 7e f8[ ]+movd[ ]+%xmm7,%eax[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 48 0f 6e c0[ ]+movd[ ]+%rax,%xmm0[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 49 0f 6e c0[ ]+movd[ ]+%r8,%xmm0[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 4d 0f 6e f8[ ]+movd[ ]+%r8,%xmm15[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 48 0f 7e c0[ ]+movd[ ]+%xmm0,%rax[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 49 0f 7e c0[ ]+movd[ ]+%xmm0,%r8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 49 0f 7e f8[ ]+movd[ ]+%xmm7,%r8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 41 0f 7e 00[ ]+movq[ ]+\(%r8\),%xmm0[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 0f 7e 00[ ]+movq[ ]+\(%rax\),%xmm0[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 45 0f 7e 38[ ]+movq[ ]+\(%r8\),%xmm15[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 44 0f 7e 38[ ]+movq[ ]+\(%rax\),%xmm15[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 45 0f 7e 00[ ]+movq[ ]+\(%r8\),%xmm8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 44 0f 7e 00[ ]+movq[ ]+\(%rax\),%xmm8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 41 0f 7e 38[ ]+movq[ ]+\(%r8\),%xmm7[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 0f 7e 38[ ]+movq[ ]+\(%rax\),%xmm7[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 0f 7e c0[ ]+movq[ ]+%xmm0,%xmm0[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 45 0f 7e ff[ ]+movq[ ]+%xmm15,%xmm15[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 45 0f 7e c7[ ]+movq[ ]+%xmm15,%xmm8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 41 0f 7e ff[ ]+movq[ ]+%xmm15,%xmm7[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 41 0f 7e c7[ ]+movq[ ]+%xmm15,%xmm0[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 45 0f 7e f8[ ]+movq[ ]+%xmm8,%xmm15[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 45 0f 7e c0[ ]+movq[ ]+%xmm8,%xmm8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 41 0f 7e f8[ ]+movq[ ]+%xmm8,%xmm7[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 41 0f 7e c0[ ]+movq[ ]+%xmm8,%xmm0[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 44 0f 7e ff[ ]+movq[ ]+%xmm7,%xmm15[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 44 0f 7e c7[ ]+movq[ ]+%xmm7,%xmm8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 0f 7e ff[ ]+movq[ ]+%xmm7,%xmm7[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 0f 7e c7[ ]+movq[ ]+%xmm7,%xmm0[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 44 0f 7e f8[ ]+movq[ ]+%xmm0,%xmm15[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 44 0f 7e c0[ ]+movq[ ]+%xmm0,%xmm8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+f3 0f 7e f8[ ]+movq[ ]+%xmm0,%xmm7[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 41 0f d6 00[ ]+movq[ ]+%xmm0,\(%r8\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 0f d6 00[ ]+movq[ ]+%xmm0,\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 45 0f d6 38[ ]+movq[ ]+%xmm15,\(%r8\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 44 0f d6 38[ ]+movq[ ]+%xmm15,\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 45 0f d6 00[ ]+movq[ ]+%xmm8,\(%r8\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 44 0f d6 00[ ]+movq[ ]+%xmm8,\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 41 0f d6 38[ ]+movq[ ]+%xmm7,\(%r8\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+41 0f 6e 00[ ]+movd[ ]+\(%r8\),%mm0[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+0f 6e 00[ ]+movd[ ]+\(%rax\),%mm0[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+41 0f 6e 38[ ]+movd[ ]+\(%r8\),%mm7[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+0f 6e 38[ ]+movd[ ]+\(%rax\),%mm7[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+0f 6e c0[ ]+movd[ ]+%eax,%mm0[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+0f 6e f8[ ]+movd[ ]+%eax,%mm7[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+41 0f 7e 00[ ]+movd[ ]+%mm0,\(%r8\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+0f 7e 00[ ]+movd[ ]+%mm0,\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+41 0f 7e 38[ ]+movd[ ]+%mm7,\(%r8\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+0f 7e 38[ ]+movd[ ]+%mm7,\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+0f 7e c0[ ]+movd[ ]+%mm0,%eax[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+0f 7e f8[ ]+movd[ ]+%mm7,%eax[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+41 0f 6f 00[ ]+movq[ ]+\(%r8\),%mm0[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+0f 6f 00[ ]+movq[ ]+\(%rax\),%mm0[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+41 0f 6f 38[ ]+movq[ ]+\(%r8\),%mm7[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+0f 6f 38[ ]+movq[ ]+\(%rax\),%mm7[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+41 0f 7f 00[ ]+movq[ ]+%mm0,\(%r8\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+0f 7f 00[ ]+movq[ ]+%mm0,\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+41 0f 7f 38[ ]+movq[ ]+%mm7,\(%r8\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+0f 7f 38[ ]+movq[ ]+%mm7,\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+41 8f 00[ ]+popq[ ]+\(%r8\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+8f 00[ ]+popq[ ]+\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+9d[ ]+popfq[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+41 ff 30[ ]+pushq[ ]+\(%r8\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+ff 30[ ]+pushq[ ]+\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+9c[ ]+pushfq[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+0f 77[ ]+emms[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+0f 0e[ ]+femms[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+0f 08[ ]+invd[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+41 0f 01 38[ ]+invlpg[ ]+\(%r8\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+0f 01 38[ ]+invlpg[ ]+\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+41 0f 01 38[ ]+invlpg[ ]+\(%r8\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+0f 01 38[ ]+invlpg[ ]+\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+41 0f 01 38[ ]+invlpg[ ]+\(%r8\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+0f 01 38[ ]+invlpg[ ]+\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+0f 00 c0[ ]+sldt[ ]+%eax[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+e6 00[ ]+out[ ]+%al,\$0[x0]*[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 e7 00[ ]+out[ ]+%ax,\$0[x0]*[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+e7 00[ ]+out[ ]+%eax,\$0[x0]*[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+00 00[ ]+.* +[ ]*[0-9a-f]+:[ ]+00 00[ ]+.* +[ ]*[0-9a-f]+:[ ]+00 00[ ]+.* [ *]... diff --git a/gas/testsuite/gas/i386/x86_64.d b/gas/testsuite/gas/i386/x86_64.d index dd4526b..07f45ec 100644 --- a/gas/testsuite/gas/i386/x86_64.d +++ b/gas/testsuite/gas/i386/x86_64.d @@ -117,10 +117,8 @@ Disassembly of section .text: 1d7: 66 b8 00 00[ ]+mov[ ]+\$0x0,%ax 1db: b8 00 00 00 00[ ]+mov[ ]+\$0x0,%eax 1e0: 48 c7 c0 00 00 00 00 mov[ ]+\$0x0,%rax - 1e7: 8b 04 25 00 00 00 00 mov[ ]+0x0,%eax - 1ee: 8b 04 25 00 00 00 00 mov[ ]+0x0,%eax - 1f5: a1 00 00 00 00 00 00 00 00 mov[ ]+0x0,%eax - 1fe: 8b 04 25 00 00 00 00 mov[ ]+0x0,%eax - 205: 8b 80 00 00 00 00[ ]+mov[ ]+0x0\(%rax\),%eax - 20b: 8b 05 00 00 00 00[ ]+mov[ ]+0\(%rip\),%eax.* + 1e7: a1 00 00 00 00 00 00 00 00 mov[ ]+0x0,%eax + 1f0: 8b 04 25 00 00 00 00 mov[ ]+0x0,%eax + 1f7: 8b 80 00 00 00 00[ ]+mov[ ]+0x0\(%rax\),%eax + 1fd: 8b 05 00 00 00 00[ ]+mov[ ]+0\(%rip\),%eax.* ... diff --git a/gas/testsuite/gas/i386/x86_64.s b/gas/testsuite/gas/i386/x86_64.s index d65054e..ad2a48d 100644 --- a/gas/testsuite/gas/i386/x86_64.s +++ b/gas/testsuite/gas/i386/x86_64.s @@ -132,9 +132,9 @@ mov ax, flat symbol mov eax, flat symbol mov rax, flat symbol -#parts -mov eax, high part symbol -mov eax, low part symbol +#parts aren't supported by the parser +#mov eax, high part symbol +#mov eax, low part symbol #addressing modes |