From ccc9c02779b72934b539448ac4d6020501adf309 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Fri, 23 Jun 2006 21:47:36 +0000 Subject: [PATCH] gas/ 2006-06-23 H.J. Lu * config/tc-i386.c (cpu_arch_tune_set): New. (cpu_arch_isa): Likewise. (i386_align_code): Use xchg %ax,%ax for 2 byte nop. Optimize nops with short or long nop sequences based on -march=/.arch and -mtune=. (set_cpu_arch): Set cpu_arch_isa. If cpu_arch_tune_set is 0, set cpu_arch_tune and cpu_arch_tune_flags. (md_parse_option): For -march=, set cpu_arch_isa and set cpu_arch_tune and cpu_arch_tune_flags if cpu_arch_tune_set is 0. Set cpu_arch_tune_set to 1 for -mtune=. (i386_target_format): Don't set cpu_arch_tune. gas/testsuite/ 2006-06-23 H.J. Lu * gas/i386/i386.exp: Run nops-1, nops-1-i386, nops-1-i686, nops-1-merom, nops-2, nops-2-i386, nops-2-merom, x86-64-nops-1, x86-64-nops-1-k8, x86-64-nops-1-nocona and x86-64-nops-1-merom. * gas/i386/nops-1.s: New file. * gas/i386/nops-2.s: Likewise. * gas/i386/nops-1-i386.d: Likewise. * gas/i386/nops-1-i686.d: Likewise. * gas/i386/nops-1-merom.d: Likewise. * gas/i386/nops-1.d: Likewise. * gas/i386/nops-2-i386.d: Likewise. * gas/i386/nops-2-merom.d: Likewise. * gas/i386/nops-2.d: Likewise. * gas/i386/x86-64-nops-1.s: Likewise. * gas/i386/x86-64-nops-1-k8.d: Likewise. * gas/i386/x86-64-nops-1-merom.d: Likewise. * gas/i386/x86-64-nops-1-nocona.d: Likewise. * gas/i386/x86-64-nops-1.d: Likewise. * gas/i386/sse2.d: Updated to expect xchg %ax,%ax as 2 byte nop. --- gas/ChangeLog | 14 + gas/config/tc-i386.c | 261 ++++++++++++++++-- gas/testsuite/ChangeLog | 24 ++ gas/testsuite/gas/i386/i386.exp | 11 + gas/testsuite/gas/i386/nops-1-i386.d | 177 ++++++++++++ gas/testsuite/gas/i386/nops-1-i686.d | 161 +++++++++++ gas/testsuite/gas/i386/nops-1-merom.d | 156 +++++++++++ gas/testsuite/gas/i386/nops-1.d | 176 ++++++++++++ gas/testsuite/gas/i386/nops-1.s | 147 ++++++++++ gas/testsuite/gas/i386/nops-2-i386.d | 166 +++++++++++ gas/testsuite/gas/i386/nops-2-merom.d | 160 +++++++++++ gas/testsuite/gas/i386/nops-2.d | 165 +++++++++++ gas/testsuite/gas/i386/nops-2.s | 151 ++++++++++ gas/testsuite/gas/i386/sse2.d | 2 +- gas/testsuite/gas/i386/x86-64-nops-1-k8.d | 177 ++++++++++++ gas/testsuite/gas/i386/x86-64-nops-1-merom.d | 156 +++++++++++ gas/testsuite/gas/i386/x86-64-nops-1-nocona.d | 161 +++++++++++ gas/testsuite/gas/i386/x86-64-nops-1.d | 160 +++++++++++ gas/testsuite/gas/i386/x86-64-nops-1.s | 147 ++++++++++ 19 files changed, 2545 insertions(+), 27 deletions(-) create mode 100644 gas/testsuite/gas/i386/nops-1-i386.d create mode 100644 gas/testsuite/gas/i386/nops-1-i686.d create mode 100644 gas/testsuite/gas/i386/nops-1-merom.d create mode 100644 gas/testsuite/gas/i386/nops-1.d create mode 100644 gas/testsuite/gas/i386/nops-1.s create mode 100644 gas/testsuite/gas/i386/nops-2-i386.d create mode 100644 gas/testsuite/gas/i386/nops-2-merom.d create mode 100644 gas/testsuite/gas/i386/nops-2.d create mode 100644 gas/testsuite/gas/i386/nops-2.s create mode 100644 gas/testsuite/gas/i386/x86-64-nops-1-k8.d create mode 100644 gas/testsuite/gas/i386/x86-64-nops-1-merom.d create mode 100644 gas/testsuite/gas/i386/x86-64-nops-1-nocona.d create mode 100644 gas/testsuite/gas/i386/x86-64-nops-1.d create mode 100644 gas/testsuite/gas/i386/x86-64-nops-1.s diff --git a/gas/ChangeLog b/gas/ChangeLog index 14c128b1d3..94c7962f0a 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,17 @@ +2006-06-23 H.J. Lu + + * config/tc-i386.c (cpu_arch_tune_set): New. + (cpu_arch_isa): Likewise. + (i386_align_code): Use xchg %ax,%ax for 2 byte nop. Optimize + nops with short or long nop sequences based on -march=/.arch + and -mtune=. + (set_cpu_arch): Set cpu_arch_isa. If cpu_arch_tune_set is 0, + set cpu_arch_tune and cpu_arch_tune_flags. + (md_parse_option): For -march=, set cpu_arch_isa and set + cpu_arch_tune and cpu_arch_tune_flags if cpu_arch_tune_set is + 0. Set cpu_arch_tune_set to 1 for -mtune=. + (i386_target_format): Don't set cpu_arch_tune. + 2006-06-23 Nigel Stephens * config/tc-mips.c (nopic_need_relax): Handle -fdata-sections diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index 9c99a85b6f..aaca79cd73 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -323,12 +323,18 @@ static const char *cpu_sub_arch_name = NULL; /* CPU feature flags. */ static unsigned int cpu_arch_flags = CpuUnknownFlags | CpuNo64; +/* If we have selected a cpu we are generating instructions for. */ +static int cpu_arch_tune_set = 0; + /* Cpu we are generating instructions for. */ static enum processor_type cpu_arch_tune = PROCESSOR_UNKNOWN; /* CPU feature flags of cpu we are generating instructions for. */ static unsigned int cpu_arch_tune_flags = 0; +/* CPU instruction set architecture used. */ +static enum processor_type cpu_arch_isa = PROCESSOR_UNKNOWN; + /* CPU feature flags of instruction set architecture used. */ static unsigned int cpu_arch_isa_flags = 0; @@ -562,7 +568,7 @@ i386_align_code (fragP, count) static const char f32_1[] = {0x90}; /* nop */ static const char f32_2[] = - {0x89,0xf6}; /* movl %esi,%esi */ + {0x66,0x90}; /* xchg %ax,%ax */ static const char f32_3[] = {0x8d,0x76,0x00}; /* leal 0(%esi),%esi */ static const char f32_4[] = @@ -622,13 +628,140 @@ i386_align_code (fragP, count) f32_1, f32_2, f16_3, f16_4, f16_5, f16_6, f16_7, f16_8, f32_15, f32_15, f32_15, f32_15, f32_15, f32_15, f32_15 }; + /* nopl (%[re]ax) */ + static const char alt_3[] = + {0x0f,0x1f,0x00}; + /* nopl 0(%[re]ax) */ + static const char alt_4[] = + {0x0f,0x1f,0x40,0x00}; + /* nopl 0(%[re]ax,%[re]ax,1) */ + static const char alt_5[] = + {0x0f,0x1f,0x44,0x00,0x00}; + /* nopw 0(%[re]ax,%[re]ax,1) */ + static const char alt_6[] = + {0x66,0x0f,0x1f,0x44,0x00,0x00}; + /* nopl 0L(%[re]ax) */ + static const char alt_7[] = + {0x0f,0x1f,0x80,0x00,0x00,0x00,0x00}; + /* nopl 0L(%[re]ax,%[re]ax,1) */ + static const char alt_8[] = + {0x0f,0x1f,0x84,0x00,0x00,0x00,0x00,0x00}; + /* nopw 0L(%[re]ax,%[re]ax,1) */ + static const char alt_9[] = + {0x66,0x0f,0x1f,0x84,0x00,0x00,0x00,0x00,0x00}; + /* nopw %cs:0L(%[re]ax,%[re]ax,1) */ + static const char alt_10[] = + {0x66,0x2e,0x0f,0x1f,0x84,0x00,0x00,0x00,0x00,0x00}; + /* data16 + nopw %cs:0L(%[re]ax,%[re]ax,1) */ + static const char alt_long_11[] = + {0x66, + 0x66,0x2e,0x0f,0x1f,0x84,0x00,0x00,0x00,0x00,0x00}; + /* data16 + data16 + nopw %cs:0L(%[re]ax,%[re]ax,1) */ + static const char alt_long_12[] = + {0x66, + 0x66, + 0x66,0x2e,0x0f,0x1f,0x84,0x00,0x00,0x00,0x00,0x00}; + /* data16 + data16 + data16 + nopw %cs:0L(%[re]ax,%[re]ax,1) */ + static const char alt_long_13[] = + {0x66, + 0x66, + 0x66, + 0x66,0x2e,0x0f,0x1f,0x84,0x00,0x00,0x00,0x00,0x00}; + /* data16 + data16 + data16 + data16 + nopw %cs:0L(%[re]ax,%[re]ax,1) */ + static const char alt_long_14[] = + {0x66, + 0x66, + 0x66, + 0x66, + 0x66,0x2e,0x0f,0x1f,0x84,0x00,0x00,0x00,0x00,0x00}; + /* data16 + data16 + data16 + data16 + data16 + nopw %cs:0L(%[re]ax,%[re]ax,1) */ + static const char alt_long_15[] = + {0x66, + 0x66, + 0x66, + 0x66, + 0x66, + 0x66,0x2e,0x0f,0x1f,0x84,0x00,0x00,0x00,0x00,0x00}; + /* nopl 0(%[re]ax,%[re]ax,1) + nopw 0(%[re]ax,%[re]ax,1) */ + static const char alt_short_11[] = + {0x0f,0x1f,0x44,0x00,0x00, + 0x66,0x0f,0x1f,0x44,0x00,0x00}; + /* nopw 0(%[re]ax,%[re]ax,1) + nopw 0(%[re]ax,%[re]ax,1) */ + static const char alt_short_12[] = + {0x66,0x0f,0x1f,0x44,0x00,0x00, + 0x66,0x0f,0x1f,0x44,0x00,0x00}; + /* nopw 0(%[re]ax,%[re]ax,1) + nopl 0L(%[re]ax) */ + static const char alt_short_13[] = + {0x66,0x0f,0x1f,0x44,0x00,0x00, + 0x0f,0x1f,0x80,0x00,0x00,0x00,0x00}; + /* nopl 0L(%[re]ax) + nopl 0L(%[re]ax) */ + static const char alt_short_14[] = + {0x0f,0x1f,0x80,0x00,0x00,0x00,0x00, + 0x0f,0x1f,0x80,0x00,0x00,0x00,0x00}; + /* nopl 0L(%[re]ax) + nopl 0L(%[re]ax,%[re]ax,1) */ + static const char alt_short_15[] = + {0x0f,0x1f,0x80,0x00,0x00,0x00,0x00, + 0x0f,0x1f,0x84,0x00,0x00,0x00,0x00,0x00}; + static const char *const alt_short_patt[] = { + f32_1, f32_2, alt_3, alt_4, alt_5, alt_6, alt_7, alt_8, + alt_9, alt_10, alt_short_11, alt_short_12, alt_short_13, + alt_short_14, alt_short_15 + }; + static const char *const alt_long_patt[] = { + f32_1, f32_2, alt_3, alt_4, alt_5, alt_6, alt_7, alt_8, + alt_9, alt_10, alt_long_11, alt_long_12, alt_long_13, + alt_long_14, alt_long_15 + }; if (count <= 0 || count > 15) return; - /* The recommended way to pad 64bit code is to use NOPs preceded by - maximally four 0x66 prefixes. Balance the size of nops. */ - if (flag_code == CODE_64BIT) + /* We need to decide which NOP sequence to use for 32bit and + 64bit. When -mtune= is used: + + 1. For PROCESSOR_I486, PROCESSOR_PENTIUM and PROCESSOR_GENERIC32, + f32_patt will be used. + 2. For PROCESSOR_K8 in 64bit, NOPs with 0x66 prefixe will be used. + 3. For PROCESSOR_MEROM, alt_long_patt will be used. + 4. For PROCESSOR_PENTIUMPRO, PROCESSOR_PENTIUM4, PROCESSOR_NOCONA, + PROCESSOR_YONAH, PROCESSOR_MEROM, PROCESSOR_K6, PROCESSOR_ATHLON + and PROCESSOR_GENERIC64, alt_short_patt will be used. + + When -mtune= isn't used, alt_short_patt will be used if + cpu_arch_isa_flags has Cpu686. Otherwise, f32_patt will be used. + + When -march= or .arch is used, we can't use anything beyond + cpu_arch_isa_flags. */ + + if (flag_code == CODE_16BIT) + { + memcpy (fragP->fr_literal + fragP->fr_fix, + f16_patt[count - 1], count); + if (count > 8) + /* Adjust jump offset. */ + fragP->fr_literal[fragP->fr_fix + 1] = count - 2; + } + else if (flag_code == CODE_64BIT && cpu_arch_tune == PROCESSOR_K8) { int i; int nnops = (count + 3) / 4; @@ -636,6 +769,8 @@ i386_align_code (fragP, count) int remains = count - nnops * len; int pos = 0; + /* The recommended way to pad 64bit code is to use NOPs preceded + by maximally four 0x66 prefixes. Balance the size of nops. */ for (i = 0; i < remains; i++) { memset (fragP->fr_literal + fragP->fr_fix + pos, 0x66, len); @@ -650,17 +785,84 @@ i386_align_code (fragP, count) } } else - if (flag_code == CODE_16BIT) - { - memcpy (fragP->fr_literal + fragP->fr_fix, - f16_patt[count - 1], count); - if (count > 8) - /* Adjust jump offset. */ - fragP->fr_literal[fragP->fr_fix + 1] = count - 2; - } - else + { + const char *const *patt = NULL; + + if (cpu_arch_isa == PROCESSOR_UNKNOWN) + { + /* PROCESSOR_UNKNOWN means that all ISAs may be used. */ + switch (cpu_arch_tune) + { + case PROCESSOR_UNKNOWN: + /* We use cpu_arch_isa_flags to check if we SHOULD + optimize for Cpu686. */ + if ((cpu_arch_isa_flags & Cpu686) != 0) + patt = alt_short_patt; + else + patt = f32_patt; + break; + case PROCESSOR_MEROM: + patt = alt_long_patt; + break; + case PROCESSOR_PENTIUMPRO: + case PROCESSOR_PENTIUM4: + case PROCESSOR_NOCONA: + case PROCESSOR_YONAH: + case PROCESSOR_K6: + case PROCESSOR_ATHLON: + case PROCESSOR_K8: + case PROCESSOR_GENERIC64: + patt = alt_short_patt; + break; + case PROCESSOR_I486: + case PROCESSOR_PENTIUM: + case PROCESSOR_GENERIC32: + patt = f32_patt; + break; + } + } + else + { + switch (cpu_arch_tune) + { + case PROCESSOR_UNKNOWN: + /* When cpu_arch_isa is net, cpu_arch_tune shouldn't be + PROCESSOR_UNKNOWN. */ + abort (); + break; + + case PROCESSOR_I486: + case PROCESSOR_PENTIUM: + case PROCESSOR_PENTIUMPRO: + case PROCESSOR_PENTIUM4: + case PROCESSOR_NOCONA: + case PROCESSOR_YONAH: + case PROCESSOR_K6: + case PROCESSOR_ATHLON: + case PROCESSOR_K8: + case PROCESSOR_GENERIC32: + /* We use cpu_arch_isa_flags to check if we CAN optimize + for Cpu686. */ + if ((cpu_arch_isa_flags & Cpu686) != 0) + patt = alt_short_patt; + else + patt = f32_patt; + break; + case PROCESSOR_MEROM: + if ((cpu_arch_isa_flags & Cpu686) != 0) + patt = alt_long_patt; + else + patt = f32_patt; + break; + case PROCESSOR_GENERIC64: + patt = alt_short_patt; + break; + } + } + memcpy (fragP->fr_literal + fragP->fr_fix, - f32_patt[count - 1], count); + patt[count - 1], count); + } fragP->fr_var = count; } @@ -937,7 +1139,13 @@ set_cpu_arch (dummy) cpu_sub_arch_name = NULL; cpu_arch_flags = (cpu_arch[i].flags | (flag_code == CODE_64BIT ? Cpu64 : CpuNo64)); + cpu_arch_isa = cpu_arch[i].type; cpu_arch_isa_flags = cpu_arch[i].flags; + if (!cpu_arch_tune_set) + { + cpu_arch_tune = cpu_arch_isa; + cpu_arch_tune_flags = cpu_arch_isa_flags; + } break; } if ((cpu_arch_flags | cpu_arch[i].flags) != cpu_arch_flags) @@ -5587,7 +5795,13 @@ md_parse_option (int c, char *arg) { if (strcmp (arg, cpu_arch [i].name) == 0) { + cpu_arch_isa = cpu_arch[i].type; cpu_arch_isa_flags = cpu_arch[i].flags; + if (!cpu_arch_tune_set) + { + cpu_arch_tune = cpu_arch_isa; + cpu_arch_tune_flags = cpu_arch_isa_flags; + } break; } } @@ -5602,6 +5816,7 @@ md_parse_option (int c, char *arg) { if (strcmp (arg, cpu_arch [i].name) == 0) { + cpu_arch_tune_set = 1; cpu_arch_tune = cpu_arch [i].type; cpu_arch_tune_flags = cpu_arch[i].flags; break; @@ -5663,24 +5878,18 @@ i386_target_format () cpu_arch_isa_flags = Cpu086|Cpu186|Cpu286|Cpu386|Cpu486 |Cpu586|Cpu686|CpuP4|CpuMMX|CpuMMX2 |CpuSSE|CpuSSE2; - if (cpu_arch_tune == PROCESSOR_UNKNOWN) - { - cpu_arch_tune = PROCESSOR_GENERIC64; - cpu_arch_tune_flags = Cpu086|Cpu186|Cpu286|Cpu386|Cpu486 - |Cpu586|Cpu686|CpuP4|CpuMMX|CpuMMX2 - |CpuSSE|CpuSSE2; - } + if (cpu_arch_tune_flags == 0) + cpu_arch_tune_flags = Cpu086|Cpu186|Cpu286|Cpu386|Cpu486 + |Cpu586|Cpu686|CpuP4|CpuMMX|CpuMMX2 + |CpuSSE|CpuSSE2; } else if (!strcmp (default_arch, "i386")) { set_code_flag (CODE_32BIT); if (cpu_arch_isa_flags == 0) cpu_arch_isa_flags = Cpu086|Cpu186|Cpu286|Cpu386; - if (cpu_arch_tune == PROCESSOR_UNKNOWN) - { - cpu_arch_tune = PROCESSOR_GENERIC32; - cpu_arch_tune_flags = Cpu086|Cpu186|Cpu286|Cpu386; - } + if (cpu_arch_tune_flags == 0) + cpu_arch_tune_flags = Cpu086|Cpu186|Cpu286|Cpu386; } else as_fatal (_("Unknown architecture")); diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index c0a2fc015b..6408a041da 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,27 @@ +2006-06-23 H.J. Lu + + * gas/i386/i386.exp: Run nops-1, nops-1-i386, nops-1-i686, + nops-1-merom, nops-2, nops-2-i386, nops-2-merom, x86-64-nops-1, + x86-64-nops-1-k8, x86-64-nops-1-nocona and x86-64-nops-1-merom. + + * gas/i386/nops-1.s: New file. + * gas/i386/nops-2.s: Likewise. + * gas/i386/nops-1-i386.d: Likewise. + * gas/i386/nops-1-i686.d: Likewise. + * gas/i386/nops-1-merom.d: Likewise. + * gas/i386/nops-1.d: Likewise. + * gas/i386/nops-2-i386.d: Likewise. + * gas/i386/nops-2-merom.d: Likewise. + * gas/i386/nops-2.d: Likewise. + * gas/i386/x86-64-nops-1.s: Likewise. + * gas/i386/x86-64-nops-1-k8.d: Likewise. + * gas/i386/x86-64-nops-1-merom.d: Likewise. + * gas/i386/x86-64-nops-1-nocona.d: Likewise. + * gas/i386/x86-64-nops-1.d: Likewise. + + * gas/i386/sse2.d: Updated to expect xchg %ax,%ax as 2 byte + nop. + 2006-06-20 Thiemo Seufer * gas/mips/mips.exp: Explicitly specify o32 ABI. diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp index 3f353bc8b9..71e2ee961a 100644 --- a/gas/testsuite/gas/i386/i386.exp +++ b/gas/testsuite/gas/i386/i386.exp @@ -73,6 +73,13 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_32_check]] run_dump_test "rep-suffix" run_dump_test "fp" run_dump_test "nops" + run_dump_test "nops-1" + run_dump_test "nops-1-i386" + run_dump_test "nops-1-i686" + run_dump_test "nops-1-merom" + run_dump_test "nops-2" + run_dump_test "nops-2-i386" + run_dump_test "nops-2-merom" # These tests require support for 8 and 16 bit relocs, # so we only run them for ELF and COFF targets. @@ -146,6 +153,10 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_64_check]] t run_dump_test "x86-64-rep-suffix" run_dump_test "x86-64-gidt" run_dump_test "x86-64-nops" + run_dump_test "x86-64-nops-1" + run_dump_test "x86-64-nops-1-k8" + run_dump_test "x86-64-nops-1-nocona" + run_dump_test "x86-64-nops-1-merom" if { ![istarget "*-*-aix*"] && ![istarget "*-*-beos*"] diff --git a/gas/testsuite/gas/i386/nops-1-i386.d b/gas/testsuite/gas/i386/nops-1-i386.d new file mode 100644 index 0000000000..6d1582aa37 --- /dev/null +++ b/gas/testsuite/gas/i386/nops-1-i386.d @@ -0,0 +1,177 @@ +#as: -mtune=i686 -march=i386 +#source: nops-1.s +#objdump: -drw +#name: i386 -mtune=i686 -march=i386 nops 1 + +.*: +file format .* + +Disassembly of section .text: + +0+ : +[ ]*0:[ ]+90[ ]+nop[ ]* +[ ]*1:[ ]+eb 0d[ ]+jmp[ ]+10[ ]+ +[ ]*3:[ ]+90[ ]+nop[ ]* +[ ]*4:[ ]+90[ ]+nop[ ]* +[ ]*5:[ ]+90[ ]+nop[ ]* +[ ]*6:[ ]+90[ ]+nop[ ]* +[ ]*7:[ ]+90[ ]+nop[ ]* +[ ]*8:[ ]+90[ ]+nop[ ]* +[ ]*9:[ ]+90[ ]+nop[ ]* +[ ]*a:[ ]+90[ ]+nop[ ]* +[ ]*b:[ ]+90[ ]+nop[ ]* +[ ]*c:[ ]+90[ ]+nop[ ]* +[ ]*d:[ ]+90[ ]+nop[ ]* +[ ]*e:[ ]+90[ ]+nop[ ]* +[ ]*f:[ ]+90[ ]+nop[ ]* + +0+10 : +[ ]*10:[ ]+90[ ]+nop[ ]* +[ ]*11:[ ]+90[ ]+nop[ ]* +[ ]*12:[ ]+8d b4 26 00 00 00 00[ ]+lea[ ]+0x0\(%esi\),%esi +[ ]*19:[ ]+8d bc 27 00 00 00 00[ ]+lea[ ]+0x0\(%edi\),%edi + +0+20 : +[ ]*20:[ ]+90[ ]+nop[ ]* +[ ]*21:[ ]+90[ ]+nop[ ]* +[ ]*22:[ ]+90[ ]+nop[ ]* +[ ]*23:[ ]+8d b6 00 00 00 00[ ]+lea[ ]+0x0\(%esi\),%esi +[ ]*29:[ ]+8d bc 27 00 00 00 00[ ]+lea[ ]+0x0\(%edi\),%edi + +0+30 : +[ ]*30:[ ]+90[ ]+nop[ ]* +[ ]*31:[ ]+90[ ]+nop[ ]* +[ ]*32:[ ]+90[ ]+nop[ ]* +[ ]*33:[ ]+90[ ]+nop[ ]* +[ ]*34:[ ]+8d b6 00 00 00 00[ ]+lea[ ]+0x0\(%esi\),%esi +[ ]*3a:[ ]+8d bf 00 00 00 00[ ]+lea[ ]+0x0\(%edi\),%edi + +0+40 : +[ ]*40:[ ]+90[ ]+nop[ ]* +[ ]*41:[ ]+90[ ]+nop[ ]* +[ ]*42:[ ]+90[ ]+nop[ ]* +[ ]*43:[ ]+90[ ]+nop[ ]* +[ ]*44:[ ]+90[ ]+nop[ ]* +[ ]*45:[ ]+8d 74 26 00[ ]+lea[ ]+0x0\(%esi\),%esi +[ ]*49:[ ]+8d bc 27 00 00 00 00[ ]+lea[ ]+0x0\(%edi\),%edi + +0+50 : +[ ]*50:[ ]+90[ ]+nop[ ]* +[ ]*51:[ ]+90[ ]+nop[ ]* +[ ]*52:[ ]+90[ ]+nop[ ]* +[ ]*53:[ ]+90[ ]+nop[ ]* +[ ]*54:[ ]+90[ ]+nop[ ]* +[ ]*55:[ ]+90[ ]+nop[ ]* +[ ]*56:[ ]+8d 76 00[ ]+lea[ ]+0x0\(%esi\),%esi +[ ]*59:[ ]+8d bc 27 00 00 00 00[ ]+lea[ ]+0x0\(%edi\),%edi + +0+60 : +[ ]*60:[ ]+90[ ]+nop[ ]* +[ ]*61:[ ]+90[ ]+nop[ ]* +[ ]*62:[ ]+90[ ]+nop[ ]* +[ ]*63:[ ]+90[ ]+nop[ ]* +[ ]*64:[ ]+90[ ]+nop[ ]* +[ ]*65:[ ]+90[ ]+nop[ ]* +[ ]*66:[ ]+90[ ]+nop[ ]* +[ ]*67:[ ]+89 f6[ ]+mov[ ]+%esi,%esi +[ ]*69:[ ]+8d bc 27 00 00 00 00[ ]+lea[ ]+0x0\(%edi\),%edi + +0+70 : +[ ]*70:[ ]+90[ ]+nop[ ]* +[ ]*71:[ ]+90[ ]+nop[ ]* +[ ]*72:[ ]+90[ ]+nop[ ]* +[ ]*73:[ ]+90[ ]+nop[ ]* +[ ]*74:[ ]+90[ ]+nop[ ]* +[ ]*75:[ ]+90[ ]+nop[ ]* +[ ]*76:[ ]+90[ ]+nop[ ]* +[ ]*77:[ ]+90[ ]+nop[ ]* +[ ]*78:[ ]+90[ ]+nop[ ]* +[ ]*79:[ ]+8d b4 26 00 00 00 00[ ]+lea[ ]+0x0\(%esi\),%esi + +0+80 : +[ ]*80:[ ]+90[ ]+nop[ ]* +[ ]*81:[ ]+90[ ]+nop[ ]* +[ ]*82:[ ]+90[ ]+nop[ ]* +[ ]*83:[ ]+90[ ]+nop[ ]* +[ ]*84:[ ]+90[ ]+nop[ ]* +[ ]*85:[ ]+90[ ]+nop[ ]* +[ ]*86:[ ]+90[ ]+nop[ ]* +[ ]*87:[ ]+90[ ]+nop[ ]* +[ ]*88:[ ]+90[ ]+nop[ ]* +[ ]*89:[ ]+8d b4 26 00 00 00 00[ ]+lea[ ]+0x0\(%esi\),%esi + +0+90 : +[ ]*90:[ ]+90[ ]+nop[ ]* +[ ]*91:[ ]+90[ ]+nop[ ]* +[ ]*92:[ ]+90[ ]+nop[ ]* +[ ]*93:[ ]+90[ ]+nop[ ]* +[ ]*94:[ ]+90[ ]+nop[ ]* +[ ]*95:[ ]+90[ ]+nop[ ]* +[ ]*96:[ ]+90[ ]+nop[ ]* +[ ]*97:[ ]+90[ ]+nop[ ]* +[ ]*98:[ ]+90[ ]+nop[ ]* +[ ]*99:[ ]+90[ ]+nop[ ]* +[ ]*9a:[ ]+8d b6 00 00 00 00[ ]+lea[ ]+0x0\(%esi\),%esi + +0+a0 : +[ ]*a0:[ ]+90[ ]+nop[ ]* +[ ]*a1:[ ]+90[ ]+nop[ ]* +[ ]*a2:[ ]+90[ ]+nop[ ]* +[ ]*a3:[ ]+90[ ]+nop[ ]* +[ ]*a4:[ ]+90[ ]+nop[ ]* +[ ]*a5:[ ]+90[ ]+nop[ ]* +[ ]*a6:[ ]+90[ ]+nop[ ]* +[ ]*a7:[ ]+90[ ]+nop[ ]* +[ ]*a8:[ ]+90[ ]+nop[ ]* +[ ]*a9:[ ]+90[ ]+nop[ ]* +[ ]*aa:[ ]+90[ ]+nop[ ]* +[ ]*ab:[ ]+90[ ]+nop[ ]* +[ ]*ac:[ ]+8d 74 26 00[ ]+lea[ ]+0x0\(%esi\),%esi + +0+b0 : +[ ]*b0:[ ]+90[ ]+nop[ ]* +[ ]*b1:[ ]+90[ ]+nop[ ]* +[ ]*b2:[ ]+90[ ]+nop[ ]* +[ ]*b3:[ ]+90[ ]+nop[ ]* +[ ]*b4:[ ]+90[ ]+nop[ ]* +[ ]*b5:[ ]+90[ ]+nop[ ]* +[ ]*b6:[ ]+90[ ]+nop[ ]* +[ ]*b7:[ ]+90[ ]+nop[ ]* +[ ]*b8:[ ]+90[ ]+nop[ ]* +[ ]*b9:[ ]+90[ ]+nop[ ]* +[ ]*ba:[ ]+90[ ]+nop[ ]* +[ ]*bb:[ ]+90[ ]+nop[ ]* +[ ]*bc:[ ]+8d 74 26 00[ ]+lea[ ]+0x0\(%esi\),%esi + +0+c0 : +[ ]*c0:[ ]+90[ ]+nop[ ]* +[ ]*c1:[ ]+90[ ]+nop[ ]* +[ ]*c2:[ ]+90[ ]+nop[ ]* +[ ]*c3:[ ]+90[ ]+nop[ ]* +[ ]*c4:[ ]+90[ ]+nop[ ]* +[ ]*c5:[ ]+90[ ]+nop[ ]* +[ ]*c6:[ ]+90[ ]+nop[ ]* +[ ]*c7:[ ]+90[ ]+nop[ ]* +[ ]*c8:[ ]+90[ ]+nop[ ]* +[ ]*c9:[ ]+90[ ]+nop[ ]* +[ ]*ca:[ ]+90[ ]+nop[ ]* +[ ]*cb:[ ]+90[ ]+nop[ ]* +[ ]*cc:[ ]+90[ ]+nop[ ]* +[ ]*cd:[ ]+8d 76 00[ ]+lea[ ]+0x0\(%esi\),%esi + +0+d0 : +[ ]*d0:[ ]+90[ ]+nop[ ]* +[ ]*d1:[ ]+90[ ]+nop[ ]* +[ ]*d2:[ ]+90[ ]+nop[ ]* +[ ]*d3:[ ]+90[ ]+nop[ ]* +[ ]*d4:[ ]+90[ ]+nop[ ]* +[ ]*d5:[ ]+90[ ]+nop[ ]* +[ ]*d6:[ ]+90[ ]+nop[ ]* +[ ]*d7:[ ]+90[ ]+nop[ ]* +[ ]*d8:[ ]+90[ ]+nop[ ]* +[ ]*d9:[ ]+90[ ]+nop[ ]* +[ ]*da:[ ]+90[ ]+nop[ ]* +[ ]*db:[ ]+90[ ]+nop[ ]* +[ ]*dc:[ ]+90[ ]+nop[ ]* +[ ]*dd:[ ]+90[ ]+nop[ ]* +[ ]*de:[ ]+66 90[ ]+xchg[ ]+%ax,%ax +#pass diff --git a/gas/testsuite/gas/i386/nops-1-i686.d b/gas/testsuite/gas/i386/nops-1-i686.d new file mode 100644 index 0000000000..b3ee23bb24 --- /dev/null +++ b/gas/testsuite/gas/i386/nops-1-i686.d @@ -0,0 +1,161 @@ +#as: -mtune=i686 +#source: nops-1.s +#objdump: -drw +#name: i386 -mtune=i686 nops 1 + +.*: +file format .* + +Disassembly of section .text: + +0+ : +[ ]*0:[ ]+90[ ]+nop[ ]* +[ ]*1:[ ]+0f 1f 80 00 00 00 00[ ]+nopl[ ]+0x0\(%eax\) +[ ]*8:[ ]+0f 1f 84 00 00 00 00 00[ ]+nopl[ ]+0x0\(%eax,%eax,1\) + +0+10 : +[ ]*10:[ ]+90[ ]+nop[ ]* +[ ]*11:[ ]+90[ ]+nop[ ]* +[ ]*12:[ ]+0f 1f 80 00 00 00 00[ ]+nopl[ ]+0x0\(%eax\) +[ ]*19:[ ]+0f 1f 80 00 00 00 00[ ]+nopl[ ]+0x0\(%eax\) + +0+20 : +[ ]*20:[ ]+90[ ]+nop[ ]* +[ ]*21:[ ]+90[ ]+nop[ ]* +[ ]*22:[ ]+90[ ]+nop[ ]* +[ ]*23:[ ]+66 0f 1f 44 00 00[ ]+nopw[ ]+0x0\(%eax,%eax,1\) +[ ]*29:[ ]+0f 1f 80 00 00 00 00[ ]+nopl[ ]+0x0\(%eax\) + +0+30 : +[ ]*30:[ ]+90[ ]+nop[ ]* +[ ]*31:[ ]+90[ ]+nop[ ]* +[ ]*32:[ ]+90[ ]+nop[ ]* +[ ]*33:[ ]+90[ ]+nop[ ]* +[ ]*34:[ ]+66 0f 1f 44 00 00[ ]+nopw[ ]+0x0\(%eax,%eax,1\) +[ ]*3a:[ ]+66 0f 1f 44 00 00[ ]+nopw[ ]+0x0\(%eax,%eax,1\) + +0+40 : +[ ]*40:[ ]+90[ ]+nop[ ]* +[ ]*41:[ ]+90[ ]+nop[ ]* +[ ]*42:[ ]+90[ ]+nop[ ]* +[ ]*43:[ ]+90[ ]+nop[ ]* +[ ]*44:[ ]+90[ ]+nop[ ]* +[ ]*45:[ ]+0f 1f 44 00 00[ ]+nopl[ ]+0x0\(%eax,%eax,1\) +[ ]*4a:[ ]+66 0f 1f 44 00 00[ ]+nopw[ ]+0x0\(%eax,%eax,1\) + +0+50 : +[ ]*50:[ ]+90[ ]+nop[ ]* +[ ]*51:[ ]+90[ ]+nop[ ]* +[ ]*52:[ ]+90[ ]+nop[ ]* +[ ]*53:[ ]+90[ ]+nop[ ]* +[ ]*54:[ ]+90[ ]+nop[ ]* +[ ]*55:[ ]+90[ ]+nop[ ]* +[ ]*56:[ ]+66 2e 0f 1f 84 00 00 00 00 00[ ]+nopw[ ]+%cs:0x0\(%eax,%eax,1\) + +0+60 : +[ ]*60:[ ]+90[ ]+nop[ ]* +[ ]*61:[ ]+90[ ]+nop[ ]* +[ ]*62:[ ]+90[ ]+nop[ ]* +[ ]*63:[ ]+90[ ]+nop[ ]* +[ ]*64:[ ]+90[ ]+nop[ ]* +[ ]*65:[ ]+90[ ]+nop[ ]* +[ ]*66:[ ]+90[ ]+nop[ ]* +[ ]*67:[ ]+66 0f 1f 84 00 00 00 00 00[ ]+nopw[ ]+0x0\(%eax,%eax,1\) + +0+70 : +[ ]*70:[ ]+90[ ]+nop[ ]* +[ ]*71:[ ]+90[ ]+nop[ ]* +[ ]*72:[ ]+90[ ]+nop[ ]* +[ ]*73:[ ]+90[ ]+nop[ ]* +[ ]*74:[ ]+90[ ]+nop[ ]* +[ ]*75:[ ]+90[ ]+nop[ ]* +[ ]*76:[ ]+90[ ]+nop[ ]* +[ ]*77:[ ]+90[ ]+nop[ ]* +[ ]*78:[ ]+0f 1f 84 00 00 00 00 00[ ]+nopl[ ]+0x0\(%eax,%eax,1\) + +0+80 : +[ ]*80:[ ]+90[ ]+nop[ ]* +[ ]*81:[ ]+90[ ]+nop[ ]* +[ ]*82:[ ]+90[ ]+nop[ ]* +[ ]*83:[ ]+90[ ]+nop[ ]* +[ ]*84:[ ]+90[ ]+nop[ ]* +[ ]*85:[ ]+90[ ]+nop[ ]* +[ ]*86:[ ]+90[ ]+nop[ ]* +[ ]*87:[ ]+90[ ]+nop[ ]* +[ ]*88:[ ]+90[ ]+nop[ ]* +[ ]*89:[ ]+0f 1f 80 00 00 00 00[ ]+nopl[ ]+0x0\(%eax\) + +0+90 : +[ ]*90:[ ]+90[ ]+nop[ ]* +[ ]*91:[ ]+90[ ]+nop[ ]* +[ ]*92:[ ]+90[ ]+nop[ ]* +[ ]*93:[ ]+90[ ]+nop[ ]* +[ ]*94:[ ]+90[ ]+nop[ ]* +[ ]*95:[ ]+90[ ]+nop[ ]* +[ ]*96:[ ]+90[ ]+nop[ ]* +[ ]*97:[ ]+90[ ]+nop[ ]* +[ ]*98:[ ]+90[ ]+nop[ ]* +[ ]*99:[ ]+90[ ]+nop[ ]* +[ ]*9a:[ ]+66 0f 1f 44 00 00[ ]+nopw[ ]+0x0\(%eax,%eax,1\) + +0+a0 : +[ ]*a0:[ ]+90[ ]+nop[ ]* +[ ]*a1:[ ]+90[ ]+nop[ ]* +[ ]*a2:[ ]+90[ ]+nop[ ]* +[ ]*a3:[ ]+90[ ]+nop[ ]* +[ ]*a4:[ ]+90[ ]+nop[ ]* +[ ]*a5:[ ]+90[ ]+nop[ ]* +[ ]*a6:[ ]+90[ ]+nop[ ]* +[ ]*a7:[ ]+90[ ]+nop[ ]* +[ ]*a8:[ ]+90[ ]+nop[ ]* +[ ]*a9:[ ]+90[ ]+nop[ ]* +[ ]*aa:[ ]+90[ ]+nop[ ]* +[ ]*ab:[ ]+0f 1f 44 00 00[ ]+nopl[ ]+0x0\(%eax,%eax,1\) + +0+b0 : +[ ]*b0:[ ]+90[ ]+nop[ ]* +[ ]*b1:[ ]+90[ ]+nop[ ]* +[ ]*b2:[ ]+90[ ]+nop[ ]* +[ ]*b3:[ ]+90[ ]+nop[ ]* +[ ]*b4:[ ]+90[ ]+nop[ ]* +[ ]*b5:[ ]+90[ ]+nop[ ]* +[ ]*b6:[ ]+90[ ]+nop[ ]* +[ ]*b7:[ ]+90[ ]+nop[ ]* +[ ]*b8:[ ]+90[ ]+nop[ ]* +[ ]*b9:[ ]+90[ ]+nop[ ]* +[ ]*ba:[ ]+90[ ]+nop[ ]* +[ ]*bb:[ ]+90[ ]+nop[ ]* +[ ]*bc:[ ]+0f 1f 40 00[ ]+nopl[ ]+0x0\(%eax\) + +0+c0 : +[ ]*c0:[ ]+90[ ]+nop[ ]* +[ ]*c1:[ ]+90[ ]+nop[ ]* +[ ]*c2:[ ]+90[ ]+nop[ ]* +[ ]*c3:[ ]+90[ ]+nop[ ]* +[ ]*c4:[ ]+90[ ]+nop[ ]* +[ ]*c5:[ ]+90[ ]+nop[ ]* +[ ]*c6:[ ]+90[ ]+nop[ ]* +[ ]*c7:[ ]+90[ ]+nop[ ]* +[ ]*c8:[ ]+90[ ]+nop[ ]* +[ ]*c9:[ ]+90[ ]+nop[ ]* +[ ]*ca:[ ]+90[ ]+nop[ ]* +[ ]*cb:[ ]+90[ ]+nop[ ]* +[ ]*cc:[ ]+90[ ]+nop[ ]* +[ ]*cd:[ ]+0f 1f 00[ ]+nopl[ ]+\(%eax\) + +0+d0 : +[ ]*d0:[ ]+90[ ]+nop[ ]* +[ ]*d1:[ ]+90[ ]+nop[ ]* +[ ]*d2:[ ]+90[ ]+nop[ ]* +[ ]*d3:[ ]+90[ ]+nop[ ]* +[ ]*d4:[ ]+90[ ]+nop[ ]* +[ ]*d5:[ ]+90[ ]+nop[ ]* +[ ]*d6:[ ]+90[ ]+nop[ ]* +[ ]*d7:[ ]+90[ ]+nop[ ]* +[ ]*d8:[ ]+90[ ]+nop[ ]* +[ ]*d9:[ ]+90[ ]+nop[ ]* +[ ]*da:[ ]+90[ ]+nop[ ]* +[ ]*db:[ ]+90[ ]+nop[ ]* +[ ]*dc:[ ]+90[ ]+nop[ ]* +[ ]*dd:[ ]+90[ ]+nop[ ]* +[ ]*de:[ ]+66 90[ ]+xchg[ ]+%ax,%ax +#pass diff --git a/gas/testsuite/gas/i386/nops-1-merom.d b/gas/testsuite/gas/i386/nops-1-merom.d new file mode 100644 index 0000000000..90668e56f0 --- /dev/null +++ b/gas/testsuite/gas/i386/nops-1-merom.d @@ -0,0 +1,156 @@ +#as: -mtune=merom +#source: nops-1.s +#objdump: -drw +#name: i386 -mtune=merom nops 1 + +.*: +file format .* + +Disassembly of section .text: + +0+ : +[ ]*0:[ ]+90[ ]+nop[ ]* +[ ]*1:[ ]+66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00[ ]+nopw[ ]+%cs:0x0\(%eax,%eax,1\) + +0+10 : +[ ]*10:[ ]+90[ ]+nop[ ]* +[ ]*11:[ ]+90[ ]+nop[ ]* +[ ]*12:[ ]+66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00[ ]+nopw[ ]+%cs:0x0\(%eax,%eax,1\) + +0+20 : +[ ]*20:[ ]+90[ ]+nop[ ]* +[ ]*21:[ ]+90[ ]+nop[ ]* +[ ]*22:[ ]+90[ ]+nop[ ]* +[ ]*23:[ ]+66 66 66 66 2e 0f 1f 84 00 00 00 00 00[ ]+nopw[ ]+%cs:0x0\(%eax,%eax,1\) + +0+30 : +[ ]*30:[ ]+90[ ]+nop[ ]* +[ ]*31:[ ]+90[ ]+nop[ ]* +[ ]*32:[ ]+90[ ]+nop[ ]* +[ ]*33:[ ]+90[ ]+nop[ ]* +[ ]*34:[ ]+66 66 66 2e 0f 1f 84 00 00 00 00 00[ ]+nopw[ ]+%cs:0x0\(%eax,%eax,1\) + +0+40 : +[ ]*40:[ ]+90[ ]+nop[ ]* +[ ]*41:[ ]+90[ ]+nop[ ]* +[ ]*42:[ ]+90[ ]+nop[ ]* +[ ]*43:[ ]+90[ ]+nop[ ]* +[ ]*44:[ ]+90[ ]+nop[ ]* +[ ]*45:[ ]+66 66 2e 0f 1f 84 00 00 00 00 00[ ]+nopw[ ]+%cs:0x0\(%eax,%eax,1\) + +0+50 : +[ ]*50:[ ]+90[ ]+nop[ ]* +[ ]*51:[ ]+90[ ]+nop[ ]* +[ ]*52:[ ]+90[ ]+nop[ ]* +[ ]*53:[ ]+90[ ]+nop[ ]* +[ ]*54:[ ]+90[ ]+nop[ ]* +[ ]*55:[ ]+90[ ]+nop[ ]* +[ ]*56:[ ]+66 2e 0f 1f 84 00 00 00 00 00[ ]+nopw[ ]+%cs:0x0\(%eax,%eax,1\) + +0+60 : +[ ]*60:[ ]+90[ ]+nop[ ]* +[ ]*61:[ ]+90[ ]+nop[ ]* +[ ]*62:[ ]+90[ ]+nop[ ]* +[ ]*63:[ ]+90[ ]+nop[ ]* +[ ]*64:[ ]+90[ ]+nop[ ]* +[ ]*65:[ ]+90[ ]+nop[ ]* +[ ]*66:[ ]+90[ ]+nop[ ]* +[ ]*67:[ ]+66 0f 1f 84 00 00 00 00 00[ ]+nopw[ ]+0x0\(%eax,%eax,1\) + +0+70 : +[ ]*70:[ ]+90[ ]+nop[ ]* +[ ]*71:[ ]+90[ ]+nop[ ]* +[ ]*72:[ ]+90[ ]+nop[ ]* +[ ]*73:[ ]+90[ ]+nop[ ]* +[ ]*74:[ ]+90[ ]+nop[ ]* +[ ]*75:[ ]+90[ ]+nop[ ]* +[ ]*76:[ ]+90[ ]+nop[ ]* +[ ]*77:[ ]+90[ ]+nop[ ]* +[ ]*78:[ ]+0f 1f 84 00 00 00 00 00[ ]+nopl[ ]+0x0\(%eax,%eax,1\) + +0+80 : +[ ]*80:[ ]+90[ ]+nop[ ]* +[ ]*81:[ ]+90[ ]+nop[ ]* +[ ]*82:[ ]+90[ ]+nop[ ]* +[ ]*83:[ ]+90[ ]+nop[ ]* +[ ]*84:[ ]+90[ ]+nop[ ]* +[ ]*85:[ ]+90[ ]+nop[ ]* +[ ]*86:[ ]+90[ ]+nop[ ]* +[ ]*87:[ ]+90[ ]+nop[ ]* +[ ]*88:[ ]+90[ ]+nop[ ]* +[ ]*89:[ ]+0f 1f 80 00 00 00 00[ ]+nopl[ ]+0x0\(%eax\) + +0+90 : +[ ]*90:[ ]+90[ ]+nop[ ]* +[ ]*91:[ ]+90[ ]+nop[ ]* +[ ]*92:[ ]+90[ ]+nop[ ]* +[ ]*93:[ ]+90[ ]+nop[ ]* +[ ]*94:[ ]+90[ ]+nop[ ]* +[ ]*95:[ ]+90[ ]+nop[ ]* +[ ]*96:[ ]+90[ ]+nop[ ]* +[ ]*97:[ ]+90[ ]+nop[ ]* +[ ]*98:[ ]+90[ ]+nop[ ]* +[ ]*99:[ ]+90[ ]+nop[ ]* +[ ]*9a:[ ]+66 0f 1f 44 00 00[ ]+nopw[ ]+0x0\(%eax,%eax,1\) + +0+a0 : +[ ]*a0:[ ]+90[ ]+nop[ ]* +[ ]*a1:[ ]+90[ ]+nop[ ]* +[ ]*a2:[ ]+90[ ]+nop[ ]* +[ ]*a3:[ ]+90[ ]+nop[ ]* +[ ]*a4:[ ]+90[ ]+nop[ ]* +[ ]*a5:[ ]+90[ ]+nop[ ]* +[ ]*a6:[ ]+90[ ]+nop[ ]* +[ ]*a7:[ ]+90[ ]+nop[ ]* +[ ]*a8:[ ]+90[ ]+nop[ ]* +[ ]*a9:[ ]+90[ ]+nop[ ]* +[ ]*aa:[ ]+90[ ]+nop[ ]* +[ ]*ab:[ ]+0f 1f 44 00 00[ ]+nopl[ ]+0x0\(%eax,%eax,1\) + +0+b0 : +[ ]*b0:[ ]+90[ ]+nop[ ]* +[ ]*b1:[ ]+90[ ]+nop[ ]* +[ ]*b2:[ ]+90[ ]+nop[ ]* +[ ]*b3:[ ]+90[ ]+nop[ ]* +[ ]*b4:[ ]+90[ ]+nop[ ]* +[ ]*b5:[ ]+90[ ]+nop[ ]* +[ ]*b6:[ ]+90[ ]+nop[ ]* +[ ]*b7:[ ]+90[ ]+nop[ ]* +[ ]*b8:[ ]+90[ ]+nop[ ]* +[ ]*b9:[ ]+90[ ]+nop[ ]* +[ ]*ba:[ ]+90[ ]+nop[ ]* +[ ]*bb:[ ]+90[ ]+nop[ ]* +[ ]*bc:[ ]+0f 1f 40 00[ ]+nopl[ ]+0x0\(%eax\) + +0+c0 : +[ ]*c0:[ ]+90[ ]+nop[ ]* +[ ]*c1:[ ]+90[ ]+nop[ ]* +[ ]*c2:[ ]+90[ ]+nop[ ]* +[ ]*c3:[ ]+90[ ]+nop[ ]* +[ ]*c4:[ ]+90[ ]+nop[ ]* +[ ]*c5:[ ]+90[ ]+nop[ ]* +[ ]*c6:[ ]+90[ ]+nop[ ]* +[ ]*c7:[ ]+90[ ]+nop[ ]* +[ ]*c8:[ ]+90[ ]+nop[ ]* +[ ]*c9:[ ]+90[ ]+nop[ ]* +[ ]*ca:[ ]+90[ ]+nop[ ]* +[ ]*cb:[ ]+90[ ]+nop[ ]* +[ ]*cc:[ ]+90[ ]+nop[ ]* +[ ]*cd:[ ]+0f 1f 00[ ]+nopl[ ]+\(%eax\) + +0+d0 : +[ ]*d0:[ ]+90[ ]+nop[ ]* +[ ]*d1:[ ]+90[ ]+nop[ ]* +[ ]*d2:[ ]+90[ ]+nop[ ]* +[ ]*d3:[ ]+90[ ]+nop[ ]* +[ ]*d4:[ ]+90[ ]+nop[ ]* +[ ]*d5:[ ]+90[ ]+nop[ ]* +[ ]*d6:[ ]+90[ ]+nop[ ]* +[ ]*d7:[ ]+90[ ]+nop[ ]* +[ ]*d8:[ ]+90[ ]+nop[ ]* +[ ]*d9:[ ]+90[ ]+nop[ ]* +[ ]*da:[ ]+90[ ]+nop[ ]* +[ ]*db:[ ]+90[ ]+nop[ ]* +[ ]*dc:[ ]+90[ ]+nop[ ]* +[ ]*dd:[ ]+90[ ]+nop[ ]* +[ ]*de:[ ]+66 90[ ]+xchg[ ]+%ax,%ax +#pass diff --git a/gas/testsuite/gas/i386/nops-1.d b/gas/testsuite/gas/i386/nops-1.d new file mode 100644 index 0000000000..4e81e95545 --- /dev/null +++ b/gas/testsuite/gas/i386/nops-1.d @@ -0,0 +1,176 @@ +#source: nops-1.s +#objdump: -drw +#name: i386 nops 1 + +.*: +file format .* + +Disassembly of section .text: + +0+ : +[ ]*0:[ ]+90[ ]+nop[ ]* +[ ]*1:[ ]+eb 0d[ ]+jmp[ ]+10[ ]+ +[ ]*3:[ ]+90[ ]+nop[ ]* +[ ]*4:[ ]+90[ ]+nop[ ]* +[ ]*5:[ ]+90[ ]+nop[ ]* +[ ]*6:[ ]+90[ ]+nop[ ]* +[ ]*7:[ ]+90[ ]+nop[ ]* +[ ]*8:[ ]+90[ ]+nop[ ]* +[ ]*9:[ ]+90[ ]+nop[ ]* +[ ]*a:[ ]+90[ ]+nop[ ]* +[ ]*b:[ ]+90[ ]+nop[ ]* +[ ]*c:[ ]+90[ ]+nop[ ]* +[ ]*d:[ ]+90[ ]+nop[ ]* +[ ]*e:[ ]+90[ ]+nop[ ]* +[ ]*f:[ ]+90[ ]+nop[ ]* + +0+10 : +[ ]*10:[ ]+90[ ]+nop[ ]* +[ ]*11:[ ]+90[ ]+nop[ ]* +[ ]*12:[ ]+8d b4 26 00 00 00 00[ ]+lea[ ]+0x0\(%esi\),%esi +[ ]*19:[ ]+8d bc 27 00 00 00 00[ ]+lea[ ]+0x0\(%edi\),%edi + +0+20 : +[ ]*20:[ ]+90[ ]+nop[ ]* +[ ]*21:[ ]+90[ ]+nop[ ]* +[ ]*22:[ ]+90[ ]+nop[ ]* +[ ]*23:[ ]+8d b6 00 00 00 00[ ]+lea[ ]+0x0\(%esi\),%esi +[ ]*29:[ ]+8d bc 27 00 00 00 00[ ]+lea[ ]+0x0\(%edi\),%edi + +0+30 : +[ ]*30:[ ]+90[ ]+nop[ ]* +[ ]*31:[ ]+90[ ]+nop[ ]* +[ ]*32:[ ]+90[ ]+nop[ ]* +[ ]*33:[ ]+90[ ]+nop[ ]* +[ ]*34:[ ]+8d b6 00 00 00 00[ ]+lea[ ]+0x0\(%esi\),%esi +[ ]*3a:[ ]+8d bf 00 00 00 00[ ]+lea[ ]+0x0\(%edi\),%edi + +0+40 : +[ ]*40:[ ]+90[ ]+nop[ ]* +[ ]*41:[ ]+90[ ]+nop[ ]* +[ ]*42:[ ]+90[ ]+nop[ ]* +[ ]*43:[ ]+90[ ]+nop[ ]* +[ ]*44:[ ]+90[ ]+nop[ ]* +[ ]*45:[ ]+8d 74 26 00[ ]+lea[ ]+0x0\(%esi\),%esi +[ ]*49:[ ]+8d bc 27 00 00 00 00[ ]+lea[ ]+0x0\(%edi\),%edi + +0+50 : +[ ]*50:[ ]+90[ ]+nop[ ]* +[ ]*51:[ ]+90[ ]+nop[ ]* +[ ]*52:[ ]+90[ ]+nop[ ]* +[ ]*53:[ ]+90[ ]+nop[ ]* +[ ]*54:[ ]+90[ ]+nop[ ]* +[ ]*55:[ ]+90[ ]+nop[ ]* +[ ]*56:[ ]+8d 76 00[ ]+lea[ ]+0x0\(%esi\),%esi +[ ]*59:[ ]+8d bc 27 00 00 00 00[ ]+lea[ ]+0x0\(%edi\),%edi + +0+60 : +[ ]*60:[ ]+90[ ]+nop[ ]* +[ ]*61:[ ]+90[ ]+nop[ ]* +[ ]*62:[ ]+90[ ]+nop[ ]* +[ ]*63:[ ]+90[ ]+nop[ ]* +[ ]*64:[ ]+90[ ]+nop[ ]* +[ ]*65:[ ]+90[ ]+nop[ ]* +[ ]*66:[ ]+90[ ]+nop[ ]* +[ ]*67:[ ]+89 f6[ ]+mov[ ]+%esi,%esi +[ ]*69:[ ]+8d bc 27 00 00 00 00[ ]+lea[ ]+0x0\(%edi\),%edi + +0+70 : +[ ]*70:[ ]+90[ ]+nop[ ]* +[ ]*71:[ ]+90[ ]+nop[ ]* +[ ]*72:[ ]+90[ ]+nop[ ]* +[ ]*73:[ ]+90[ ]+nop[ ]* +[ ]*74:[ ]+90[ ]+nop[ ]* +[ ]*75:[ ]+90[ ]+nop[ ]* +[ ]*76:[ ]+90[ ]+nop[ ]* +[ ]*77:[ ]+90[ ]+nop[ ]* +[ ]*78:[ ]+90[ ]+nop[ ]* +[ ]*79:[ ]+8d b4 26 00 00 00 00[ ]+lea[ ]+0x0\(%esi\),%esi + +0+80 : +[ ]*80:[ ]+90[ ]+nop[ ]* +[ ]*81:[ ]+90[ ]+nop[ ]* +[ ]*82:[ ]+90[ ]+nop[ ]* +[ ]*83:[ ]+90[ ]+nop[ ]* +[ ]*84:[ ]+90[ ]+nop[ ]* +[ ]*85:[ ]+90[ ]+nop[ ]* +[ ]*86:[ ]+90[ ]+nop[ ]* +[ ]*87:[ ]+90[ ]+nop[ ]* +[ ]*88:[ ]+90[ ]+nop[ ]* +[ ]*89:[ ]+8d b4 26 00 00 00 00[ ]+lea[ ]+0x0\(%esi\),%esi + +0+90 : +[ ]*90:[ ]+90[ ]+nop[ ]* +[ ]*91:[ ]+90[ ]+nop[ ]* +[ ]*92:[ ]+90[ ]+nop[ ]* +[ ]*93:[ ]+90[ ]+nop[ ]* +[ ]*94:[ ]+90[ ]+nop[ ]* +[ ]*95:[ ]+90[ ]+nop[ ]* +[ ]*96:[ ]+90[ ]+nop[ ]* +[ ]*97:[ ]+90[ ]+nop[ ]* +[ ]*98:[ ]+90[ ]+nop[ ]* +[ ]*99:[ ]+90[ ]+nop[ ]* +[ ]*9a:[ ]+8d b6 00 00 00 00[ ]+lea[ ]+0x0\(%esi\),%esi + +0+a0 : +[ ]*a0:[ ]+90[ ]+nop[ ]* +[ ]*a1:[ ]+90[ ]+nop[ ]* +[ ]*a2:[ ]+90[ ]+nop[ ]* +[ ]*a3:[ ]+90[ ]+nop[ ]* +[ ]*a4:[ ]+90[ ]+nop[ ]* +[ ]*a5:[ ]+90[ ]+nop[ ]* +[ ]*a6:[ ]+90[ ]+nop[ ]* +[ ]*a7:[ ]+90[ ]+nop[ ]* +[ ]*a8:[ ]+90[ ]+nop[ ]* +[ ]*a9:[ ]+90[ ]+nop[ ]* +[ ]*aa:[ ]+90[ ]+nop[ ]* +[ ]*ab:[ ]+90[ ]+nop[ ]* +[ ]*ac:[ ]+8d 74 26 00[ ]+lea[ ]+0x0\(%esi\),%esi + +0+b0 : +[ ]*b0:[ ]+90[ ]+nop[ ]* +[ ]*b1:[ ]+90[ ]+nop[ ]* +[ ]*b2:[ ]+90[ ]+nop[ ]* +[ ]*b3:[ ]+90[ ]+nop[ ]* +[ ]*b4:[ ]+90[ ]+nop[ ]* +[ ]*b5:[ ]+90[ ]+nop[ ]* +[ ]*b6:[ ]+90[ ]+nop[ ]* +[ ]*b7:[ ]+90[ ]+nop[ ]* +[ ]*b8:[ ]+90[ ]+nop[ ]* +[ ]*b9:[ ]+90[ ]+nop[ ]* +[ ]*ba:[ ]+90[ ]+nop[ ]* +[ ]*bb:[ ]+90[ ]+nop[ ]* +[ ]*bc:[ ]+8d 74 26 00[ ]+lea[ ]+0x0\(%esi\),%esi + +0+c0 : +[ ]*c0:[ ]+90[ ]+nop[ ]* +[ ]*c1:[ ]+90[ ]+nop[ ]* +[ ]*c2:[ ]+90[ ]+nop[ ]* +[ ]*c3:[ ]+90[ ]+nop[ ]* +[ ]*c4:[ ]+90[ ]+nop[ ]* +[ ]*c5:[ ]+90[ ]+nop[ ]* +[ ]*c6:[ ]+90[ ]+nop[ ]* +[ ]*c7:[ ]+90[ ]+nop[ ]* +[ ]*c8:[ ]+90[ ]+nop[ ]* +[ ]*c9:[ ]+90[ ]+nop[ ]* +[ ]*ca:[ ]+90[ ]+nop[ ]* +[ ]*cb:[ ]+90[ ]+nop[ ]* +[ ]*cc:[ ]+90[ ]+nop[ ]* +[ ]*cd:[ ]+8d 76 00[ ]+lea[ ]+0x0\(%esi\),%esi + +0+d0 : +[ ]*d0:[ ]+90[ ]+nop[ ]* +[ ]*d1:[ ]+90[ ]+nop[ ]* +[ ]*d2:[ ]+90[ ]+nop[ ]* +[ ]*d3:[ ]+90[ ]+nop[ ]* +[ ]*d4:[ ]+90[ ]+nop[ ]* +[ ]*d5:[ ]+90[ ]+nop[ ]* +[ ]*d6:[ ]+90[ ]+nop[ ]* +[ ]*d7:[ ]+90[ ]+nop[ ]* +[ ]*d8:[ ]+90[ ]+nop[ ]* +[ ]*d9:[ ]+90[ ]+nop[ ]* +[ ]*da:[ ]+90[ ]+nop[ ]* +[ ]*db:[ ]+90[ ]+nop[ ]* +[ ]*dc:[ ]+90[ ]+nop[ ]* +[ ]*dd:[ ]+90[ ]+nop[ ]* +[ ]*de:[ ]+66 90[ ]+xchg[ ]+%ax,%ax +#pass diff --git a/gas/testsuite/gas/i386/nops-1.s b/gas/testsuite/gas/i386/nops-1.s new file mode 100644 index 0000000000..a4fd7694de --- /dev/null +++ b/gas/testsuite/gas/i386/nops-1.s @@ -0,0 +1,147 @@ + .text +nop15: + nop + .p2align 4 + +nop14: + nop + nop + .p2align 4 + +nop13: + nop + nop + nop + .p2align 4 + +nop12: + nop + nop + nop + nop + .p2align 4 + +nop11: + nop + nop + nop + nop + nop + .p2align 4 + +nop10: + nop + nop + nop + nop + nop + nop + .p2align 4 + +nop9: + nop + nop + nop + nop + nop + nop + nop + .p2align 4 + +nop8: + nop + nop + nop + nop + nop + nop + nop + nop + .p2align 4 + +nop7: + nop + nop + nop + nop + nop + nop + nop + nop + nop + .p2align 4 + +nop6: + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + .p2align 4 + +nop5: + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + .p2align 4 + +nop4: + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + .p2align 4 + +nop3: + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + .p2align 4 + +nop2: + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + .p2align 4 diff --git a/gas/testsuite/gas/i386/nops-2-i386.d b/gas/testsuite/gas/i386/nops-2-i386.d new file mode 100644 index 0000000000..2b245071cd --- /dev/null +++ b/gas/testsuite/gas/i386/nops-2-i386.d @@ -0,0 +1,166 @@ +#as: -march=i386 +#source: nops-2.s +#objdump: -drw +#name: i386 -march=i386 nops 2 + +.*: +file format .* + +Disassembly of section .text: + +0+ : +[ ]*0:[ ]+0f 44 c0[ ]+cmove[ ]+%eax,%eax +[ ]*3:[ ]+66 0f 1f 44 00 00[ ]+nopw[ ]+0x0\(%eax,%eax,1\) +[ ]*9:[ ]+0f 1f 80 00 00 00 00[ ]+nopl[ ]+0x0\(%eax\) + +0+10 : +[ ]*10:[ ]+90[ ]+nop[ ]* +[ ]*11:[ ]+0f 1f 80 00 00 00 00[ ]+nopl[ ]+0x0\(%eax\) +[ ]*18:[ ]+0f 1f 84 00 00 00 00 00[ ]+nopl[ ]+0x0\(%eax,%eax,1\) + +0+20 : +[ ]*20:[ ]+90[ ]+nop[ ]* +[ ]*21:[ ]+90[ ]+nop[ ]* +[ ]*22:[ ]+0f 1f 80 00 00 00 00[ ]+nopl[ ]+0x0\(%eax\) +[ ]*29:[ ]+0f 1f 80 00 00 00 00[ ]+nopl[ ]+0x0\(%eax\) + +0+30 : +[ ]*30:[ ]+90[ ]+nop[ ]* +[ ]*31:[ ]+90[ ]+nop[ ]* +[ ]*32:[ ]+90[ ]+nop[ ]* +[ ]*33:[ ]+66 0f 1f 44 00 00[ ]+nopw[ ]+0x0\(%eax,%eax,1\) +[ ]*39:[ ]+0f 1f 80 00 00 00 00[ ]+nopl[ ]+0x0\(%eax\) + +0+40 : +[ ]*40:[ ]+90[ ]+nop[ ]* +[ ]*41:[ ]+90[ ]+nop[ ]* +[ ]*42:[ ]+90[ ]+nop[ ]* +[ ]*43:[ ]+90[ ]+nop[ ]* +[ ]*44:[ ]+66 0f 1f 44 00 00[ ]+nopw[ ]+0x0\(%eax,%eax,1\) +[ ]*4a:[ ]+66 0f 1f 44 00 00[ ]+nopw[ ]+0x0\(%eax,%eax,1\) + +0+50 : +[ ]*50:[ ]+90[ ]+nop[ ]* +[ ]*51:[ ]+90[ ]+nop[ ]* +[ ]*52:[ ]+90[ ]+nop[ ]* +[ ]*53:[ ]+90[ ]+nop[ ]* +[ ]*54:[ ]+90[ ]+nop[ ]* +[ ]*55:[ ]+0f 1f 44 00 00[ ]+nopl[ ]+0x0\(%eax,%eax,1\) +[ ]*5a:[ ]+66 0f 1f 44 00 00[ ]+nopw[ ]+0x0\(%eax,%eax,1\) + +0+60 : +[ ]*60:[ ]+90[ ]+nop[ ]* +[ ]*61:[ ]+90[ ]+nop[ ]* +[ ]*62:[ ]+90[ ]+nop[ ]* +[ ]*63:[ ]+90[ ]+nop[ ]* +[ ]*64:[ ]+90[ ]+nop[ ]* +[ ]*65:[ ]+90[ ]+nop[ ]* +[ ]*66:[ ]+66 2e 0f 1f 84 00 00 00 00 00[ ]+nopw[ ]+%cs:0x0\(%eax,%eax,1\) + +0+70 : +[ ]*70:[ ]+90[ ]+nop[ ]* +[ ]*71:[ ]+90[ ]+nop[ ]* +[ ]*72:[ ]+90[ ]+nop[ ]* +[ ]*73:[ ]+90[ ]+nop[ ]* +[ ]*74:[ ]+90[ ]+nop[ ]* +[ ]*75:[ ]+90[ ]+nop[ ]* +[ ]*76:[ ]+90[ ]+nop[ ]* +[ ]*77:[ ]+66 0f 1f 84 00 00 00 00 00[ ]+nopw[ ]+0x0\(%eax,%eax,1\) + +0+80 : +[ ]*80:[ ]+90[ ]+nop[ ]* +[ ]*81:[ ]+90[ ]+nop[ ]* +[ ]*82:[ ]+90[ ]+nop[ ]* +[ ]*83:[ ]+90[ ]+nop[ ]* +[ ]*84:[ ]+90[ ]+nop[ ]* +[ ]*85:[ ]+90[ ]+nop[ ]* +[ ]*86:[ ]+90[ ]+nop[ ]* +[ ]*87:[ ]+90[ ]+nop[ ]* +[ ]*88:[ ]+0f 1f 84 00 00 00 00 00[ ]+nopl[ ]+0x0\(%eax,%eax,1\) + +0+90 : +[ ]*90:[ ]+90[ ]+nop[ ]* +[ ]*91:[ ]+90[ ]+nop[ ]* +[ ]*92:[ ]+90[ ]+nop[ ]* +[ ]*93:[ ]+90[ ]+nop[ ]* +[ ]*94:[ ]+90[ ]+nop[ ]* +[ ]*95:[ ]+90[ ]+nop[ ]* +[ ]*96:[ ]+90[ ]+nop[ ]* +[ ]*97:[ ]+90[ ]+nop[ ]* +[ ]*98:[ ]+90[ ]+nop[ ]* +[ ]*99:[ ]+0f 1f 80 00 00 00 00[ ]+nopl[ ]+0x0\(%eax\) + +0+a0 : +[ ]*a0:[ ]+90[ ]+nop[ ]* +[ ]*a1:[ ]+90[ ]+nop[ ]* +[ ]*a2:[ ]+90[ ]+nop[ ]* +[ ]*a3:[ ]+90[ ]+nop[ ]* +[ ]*a4:[ ]+90[ ]+nop[ ]* +[ ]*a5:[ ]+90[ ]+nop[ ]* +[ ]*a6:[ ]+90[ ]+nop[ ]* +[ ]*a7:[ ]+90[ ]+nop[ ]* +[ ]*a8:[ ]+90[ ]+nop[ ]* +[ ]*a9:[ ]+90[ ]+nop[ ]* +[ ]*aa:[ ]+66 0f 1f 44 00 00[ ]+nopw[ ]+0x0\(%eax,%eax,1\) + +0+b0 : +[ ]*b0:[ ]+90[ ]+nop[ ]* +[ ]*b1:[ ]+90[ ]+nop[ ]* +[ ]*b2:[ ]+90[ ]+nop[ ]* +[ ]*b3:[ ]+90[ ]+nop[ ]* +[ ]*b4:[ ]+90[ ]+nop[ ]* +[ ]*b5:[ ]+90[ ]+nop[ ]* +[ ]*b6:[ ]+90[ ]+nop[ ]* +[ ]*b7:[ ]+90[ ]+nop[ ]* +[ ]*b8:[ ]+90[ ]+nop[ ]* +[ ]*b9:[ ]+90[ ]+nop[ ]* +[ ]*ba:[ ]+90[ ]+nop[ ]* +[ ]*bb:[ ]+0f 1f 44 00 00[ ]+nopl[ ]+0x0\(%eax,%eax,1\) + +0+c0 : +[ ]*c0:[ ]+90[ ]+nop[ ]* +[ ]*c1:[ ]+90[ ]+nop[ ]* +[ ]*c2:[ ]+90[ ]+nop[ ]* +[ ]*c3:[ ]+90[ ]+nop[ ]* +[ ]*c4:[ ]+90[ ]+nop[ ]* +[ ]*c5:[ ]+90[ ]+nop[ ]* +[ ]*c6:[ ]+90[ ]+nop[ ]* +[ ]*c7:[ ]+90[ ]+nop[ ]* +[ ]*c8:[ ]+90[ ]+nop[ ]* +[ ]*c9:[ ]+90[ ]+nop[ ]* +[ ]*ca:[ ]+90[ ]+nop[ ]* +[ ]*cb:[ ]+90[ ]+nop[ ]* +[ ]*cc:[ ]+0f 1f 40 00[ ]+nopl[ ]+0x0\(%eax\) + +0+d0 : +[ ]*d0:[ ]+90[ ]+nop[ ]* +[ ]*d1:[ ]+90[ ]+nop[ ]* +[ ]*d2:[ ]+90[ ]+nop[ ]* +[ ]*d3:[ ]+90[ ]+nop[ ]* +[ ]*d4:[ ]+90[ ]+nop[ ]* +[ ]*d5:[ ]+90[ ]+nop[ ]* +[ ]*d6:[ ]+90[ ]+nop[ ]* +[ ]*d7:[ ]+90[ ]+nop[ ]* +[ ]*d8:[ ]+90[ ]+nop[ ]* +[ ]*d9:[ ]+90[ ]+nop[ ]* +[ ]*da:[ ]+90[ ]+nop[ ]* +[ ]*db:[ ]+90[ ]+nop[ ]* +[ ]*dc:[ ]+90[ ]+nop[ ]* +[ ]*dd:[ ]+0f 1f 00[ ]+nopl[ ]+\(%eax\) + +0+e0 : +[ ]*e0:[ ]+90[ ]+nop[ ]* +[ ]*e1:[ ]+90[ ]+nop[ ]* +[ ]*e2:[ ]+90[ ]+nop[ ]* +[ ]*e3:[ ]+90[ ]+nop[ ]* +[ ]*e4:[ ]+90[ ]+nop[ ]* +[ ]*e5:[ ]+90[ ]+nop[ ]* +[ ]*e6:[ ]+90[ ]+nop[ ]* +[ ]*e7:[ ]+90[ ]+nop[ ]* +[ ]*e8:[ ]+90[ ]+nop[ ]* +[ ]*e9:[ ]+90[ ]+nop[ ]* +[ ]*ea:[ ]+90[ ]+nop[ ]* +[ ]*eb:[ ]+90[ ]+nop[ ]* +[ ]*ec:[ ]+90[ ]+nop[ ]* +[ ]*ed:[ ]+90[ ]+nop[ ]* +[ ]*ee:[ ]+66 90[ ]+xchg[ ]+%ax,%ax +#pass diff --git a/gas/testsuite/gas/i386/nops-2-merom.d b/gas/testsuite/gas/i386/nops-2-merom.d new file mode 100644 index 0000000000..b84aeff451 --- /dev/null +++ b/gas/testsuite/gas/i386/nops-2-merom.d @@ -0,0 +1,160 @@ +#as: -march=i386 -mtune=merom +#source: nops-2.s +#objdump: -drw +#name: i386 -march=i386 -mtune=merom nops 2 + +.*: +file format .* + +Disassembly of section .text: + +0+ : +[ ]*0:[ ]+0f 44 c0[ ]+cmove[ ]+%eax,%eax +[ ]*3:[ ]+66 66 66 66 2e 0f 1f 84 00 00 00 00 00[ ]+nopw[ ]+%cs:0x0\(%eax,%eax,1\) + +0+10 : +[ ]*10:[ ]+90[ ]+nop[ ]* +[ ]*11:[ ]+66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00[ ]+nopw[ ]+%cs:0x0\(%eax,%eax,1\) + +0+20 : +[ ]*20:[ ]+90[ ]+nop[ ]* +[ ]*21:[ ]+90[ ]+nop[ ]* +[ ]*22:[ ]+66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00[ ]+nopw[ ]+%cs:0x0\(%eax,%eax,1\) + +0+30 : +[ ]*30:[ ]+90[ ]+nop[ ]* +[ ]*31:[ ]+90[ ]+nop[ ]* +[ ]*32:[ ]+90[ ]+nop[ ]* +[ ]*33:[ ]+66 66 66 66 2e 0f 1f 84 00 00 00 00 00[ ]+nopw[ ]+%cs:0x0\(%eax,%eax,1\) + +0+40 : +[ ]*40:[ ]+90[ ]+nop[ ]* +[ ]*41:[ ]+90[ ]+nop[ ]* +[ ]*42:[ ]+90[ ]+nop[ ]* +[ ]*43:[ ]+90[ ]+nop[ ]* +[ ]*44:[ ]+66 66 66 2e 0f 1f 84 00 00 00 00 00[ ]+nopw[ ]+%cs:0x0\(%eax,%eax,1\) + +0+50 : +[ ]*50:[ ]+90[ ]+nop[ ]* +[ ]*51:[ ]+90[ ]+nop[ ]* +[ ]*52:[ ]+90[ ]+nop[ ]* +[ ]*53:[ ]+90[ ]+nop[ ]* +[ ]*54:[ ]+90[ ]+nop[ ]* +[ ]*55:[ ]+66 66 2e 0f 1f 84 00 00 00 00 00[ ]+nopw[ ]+%cs:0x0\(%eax,%eax,1\) + +0+60 : +[ ]*60:[ ]+90[ ]+nop[ ]* +[ ]*61:[ ]+90[ ]+nop[ ]* +[ ]*62:[ ]+90[ ]+nop[ ]* +[ ]*63:[ ]+90[ ]+nop[ ]* +[ ]*64:[ ]+90[ ]+nop[ ]* +[ ]*65:[ ]+90[ ]+nop[ ]* +[ ]*66:[ ]+66 2e 0f 1f 84 00 00 00 00 00[ ]+nopw[ ]+%cs:0x0\(%eax,%eax,1\) + +0+70 : +[ ]*70:[ ]+90[ ]+nop[ ]* +[ ]*71:[ ]+90[ ]+nop[ ]* +[ ]*72:[ ]+90[ ]+nop[ ]* +[ ]*73:[ ]+90[ ]+nop[ ]* +[ ]*74:[ ]+90[ ]+nop[ ]* +[ ]*75:[ ]+90[ ]+nop[ ]* +[ ]*76:[ ]+90[ ]+nop[ ]* +[ ]*77:[ ]+66 0f 1f 84 00 00 00 00 00[ ]+nopw[ ]+0x0\(%eax,%eax,1\) + +0+80 : +[ ]*80:[ ]+90[ ]+nop[ ]* +[ ]*81:[ ]+90[ ]+nop[ ]* +[ ]*82:[ ]+90[ ]+nop[ ]* +[ ]*83:[ ]+90[ ]+nop[ ]* +[ ]*84:[ ]+90[ ]+nop[ ]* +[ ]*85:[ ]+90[ ]+nop[ ]* +[ ]*86:[ ]+90[ ]+nop[ ]* +[ ]*87:[ ]+90[ ]+nop[ ]* +[ ]*88:[ ]+0f 1f 84 00 00 00 00 00[ ]+nopl[ ]+0x0\(%eax,%eax,1\) + +0+90 : +[ ]*90:[ ]+90[ ]+nop[ ]* +[ ]*91:[ ]+90[ ]+nop[ ]* +[ ]*92:[ ]+90[ ]+nop[ ]* +[ ]*93:[ ]+90[ ]+nop[ ]* +[ ]*94:[ ]+90[ ]+nop[ ]* +[ ]*95:[ ]+90[ ]+nop[ ]* +[ ]*96:[ ]+90[ ]+nop[ ]* +[ ]*97:[ ]+90[ ]+nop[ ]* +[ ]*98:[ ]+90[ ]+nop[ ]* +[ ]*99:[ ]+0f 1f 80 00 00 00 00[ ]+nopl[ ]+0x0\(%eax\) + +0+a0 : +[ ]*a0:[ ]+90[ ]+nop[ ]* +[ ]*a1:[ ]+90[ ]+nop[ ]* +[ ]*a2:[ ]+90[ ]+nop[ ]* +[ ]*a3:[ ]+90[ ]+nop[ ]* +[ ]*a4:[ ]+90[ ]+nop[ ]* +[ ]*a5:[ ]+90[ ]+nop[ ]* +[ ]*a6:[ ]+90[ ]+nop[ ]* +[ ]*a7:[ ]+90[ ]+nop[ ]* +[ ]*a8:[ ]+90[ ]+nop[ ]* +[ ]*a9:[ ]+90[ ]+nop[ ]* +[ ]*aa:[ ]+66 0f 1f 44 00 00[ ]+nopw[ ]+0x0\(%eax,%eax,1\) + +0+b0 : +[ ]*b0:[ ]+90[ ]+nop[ ]* +[ ]*b1:[ ]+90[ ]+nop[ ]* +[ ]*b2:[ ]+90[ ]+nop[ ]* +[ ]*b3:[ ]+90[ ]+nop[ ]* +[ ]*b4:[ ]+90[ ]+nop[ ]* +[ ]*b5:[ ]+90[ ]+nop[ ]* +[ ]*b6:[ ]+90[ ]+nop[ ]* +[ ]*b7:[ ]+90[ ]+nop[ ]* +[ ]*b8:[ ]+90[ ]+nop[ ]* +[ ]*b9:[ ]+90[ ]+nop[ ]* +[ ]*ba:[ ]+90[ ]+nop[ ]* +[ ]*bb:[ ]+0f 1f 44 00 00[ ]+nopl[ ]+0x0\(%eax,%eax,1\) + +0+c0 : +[ ]*c0:[ ]+90[ ]+nop[ ]* +[ ]*c1:[ ]+90[ ]+nop[ ]* +[ ]*c2:[ ]+90[ ]+nop[ ]* +[ ]*c3:[ ]+90[ ]+nop[ ]* +[ ]*c4:[ ]+90[ ]+nop[ ]* +[ ]*c5:[ ]+90[ ]+nop[ ]* +[ ]*c6:[ ]+90[ ]+nop[ ]* +[ ]*c7:[ ]+90[ ]+nop[ ]* +[ ]*c8:[ ]+90[ ]+nop[ ]* +[ ]*c9:[ ]+90[ ]+nop[ ]* +[ ]*ca:[ ]+90[ ]+nop[ ]* +[ ]*cb:[ ]+90[ ]+nop[ ]* +[ ]*cc:[ ]+0f 1f 40 00[ ]+nopl[ ]+0x0\(%eax\) + +0+d0 : +[ ]*d0:[ ]+90[ ]+nop[ ]* +[ ]*d1:[ ]+90[ ]+nop[ ]* +[ ]*d2:[ ]+90[ ]+nop[ ]* +[ ]*d3:[ ]+90[ ]+nop[ ]* +[ ]*d4:[ ]+90[ ]+nop[ ]* +[ ]*d5:[ ]+90[ ]+nop[ ]* +[ ]*d6:[ ]+90[ ]+nop[ ]* +[ ]*d7:[ ]+90[ ]+nop[ ]* +[ ]*d8:[ ]+90[ ]+nop[ ]* +[ ]*d9:[ ]+90[ ]+nop[ ]* +[ ]*da:[ ]+90[ ]+nop[ ]* +[ ]*db:[ ]+90[ ]+nop[ ]* +[ ]*dc:[ ]+90[ ]+nop[ ]* +[ ]*dd:[ ]+0f 1f 00[ ]+nopl[ ]+\(%eax\) + +0+e0 : +[ ]*e0:[ ]+90[ ]+nop[ ]* +[ ]*e1:[ ]+90[ ]+nop[ ]* +[ ]*e2:[ ]+90[ ]+nop[ ]* +[ ]*e3:[ ]+90[ ]+nop[ ]* +[ ]*e4:[ ]+90[ ]+nop[ ]* +[ ]*e5:[ ]+90[ ]+nop[ ]* +[ ]*e6:[ ]+90[ ]+nop[ ]* +[ ]*e7:[ ]+90[ ]+nop[ ]* +[ ]*e8:[ ]+90[ ]+nop[ ]* +[ ]*e9:[ ]+90[ ]+nop[ ]* +[ ]*ea:[ ]+90[ ]+nop[ ]* +[ ]*eb:[ ]+90[ ]+nop[ ]* +[ ]*ec:[ ]+90[ ]+nop[ ]* +[ ]*ed:[ ]+90[ ]+nop[ ]* +[ ]*ee:[ ]+66 90[ ]+xchg[ ]+%ax,%ax +#pass diff --git a/gas/testsuite/gas/i386/nops-2.d b/gas/testsuite/gas/i386/nops-2.d new file mode 100644 index 0000000000..cface9cc9c --- /dev/null +++ b/gas/testsuite/gas/i386/nops-2.d @@ -0,0 +1,165 @@ +#source: nops-2.s +#objdump: -drw +#name: i386 nops 2 + +.*: +file format .* + +Disassembly of section .text: + +0+ : +[ ]*0:[ ]+0f 44 c0[ ]+cmove[ ]+%eax,%eax +[ ]*3:[ ]+66 0f 1f 44 00 00[ ]+nopw[ ]+0x0\(%eax,%eax,1\) +[ ]*9:[ ]+0f 1f 80 00 00 00 00[ ]+nopl[ ]+0x0\(%eax\) + +0+10 : +[ ]*10:[ ]+90[ ]+nop[ ]* +[ ]*11:[ ]+0f 1f 80 00 00 00 00[ ]+nopl[ ]+0x0\(%eax\) +[ ]*18:[ ]+0f 1f 84 00 00 00 00 00[ ]+nopl[ ]+0x0\(%eax,%eax,1\) + +0+20 : +[ ]*20:[ ]+90[ ]+nop[ ]* +[ ]*21:[ ]+90[ ]+nop[ ]* +[ ]*22:[ ]+0f 1f 80 00 00 00 00[ ]+nopl[ ]+0x0\(%eax\) +[ ]*29:[ ]+0f 1f 80 00 00 00 00[ ]+nopl[ ]+0x0\(%eax\) + +0+30 : +[ ]*30:[ ]+90[ ]+nop[ ]* +[ ]*31:[ ]+90[ ]+nop[ ]* +[ ]*32:[ ]+90[ ]+nop[ ]* +[ ]*33:[ ]+66 0f 1f 44 00 00[ ]+nopw[ ]+0x0\(%eax,%eax,1\) +[ ]*39:[ ]+0f 1f 80 00 00 00 00[ ]+nopl[ ]+0x0\(%eax\) + +0+40 : +[ ]*40:[ ]+90[ ]+nop[ ]* +[ ]*41:[ ]+90[ ]+nop[ ]* +[ ]*42:[ ]+90[ ]+nop[ ]* +[ ]*43:[ ]+90[ ]+nop[ ]* +[ ]*44:[ ]+66 0f 1f 44 00 00[ ]+nopw[ ]+0x0\(%eax,%eax,1\) +[ ]*4a:[ ]+66 0f 1f 44 00 00[ ]+nopw[ ]+0x0\(%eax,%eax,1\) + +0+50 : +[ ]*50:[ ]+90[ ]+nop[ ]* +[ ]*51:[ ]+90[ ]+nop[ ]* +[ ]*52:[ ]+90[ ]+nop[ ]* +[ ]*53:[ ]+90[ ]+nop[ ]* +[ ]*54:[ ]+90[ ]+nop[ ]* +[ ]*55:[ ]+0f 1f 44 00 00[ ]+nopl[ ]+0x0\(%eax,%eax,1\) +[ ]*5a:[ ]+66 0f 1f 44 00 00[ ]+nopw[ ]+0x0\(%eax,%eax,1\) + +0+60 : +[ ]*60:[ ]+90[ ]+nop[ ]* +[ ]*61:[ ]+90[ ]+nop[ ]* +[ ]*62:[ ]+90[ ]+nop[ ]* +[ ]*63:[ ]+90[ ]+nop[ ]* +[ ]*64:[ ]+90[ ]+nop[ ]* +[ ]*65:[ ]+90[ ]+nop[ ]* +[ ]*66:[ ]+66 2e 0f 1f 84 00 00 00 00 00[ ]+nopw[ ]+%cs:0x0\(%eax,%eax,1\) + +0+70 : +[ ]*70:[ ]+90[ ]+nop[ ]* +[ ]*71:[ ]+90[ ]+nop[ ]* +[ ]*72:[ ]+90[ ]+nop[ ]* +[ ]*73:[ ]+90[ ]+nop[ ]* +[ ]*74:[ ]+90[ ]+nop[ ]* +[ ]*75:[ ]+90[ ]+nop[ ]* +[ ]*76:[ ]+90[ ]+nop[ ]* +[ ]*77:[ ]+66 0f 1f 84 00 00 00 00 00[ ]+nopw[ ]+0x0\(%eax,%eax,1\) + +0+80 : +[ ]*80:[ ]+90[ ]+nop[ ]* +[ ]*81:[ ]+90[ ]+nop[ ]* +[ ]*82:[ ]+90[ ]+nop[ ]* +[ ]*83:[ ]+90[ ]+nop[ ]* +[ ]*84:[ ]+90[ ]+nop[ ]* +[ ]*85:[ ]+90[ ]+nop[ ]* +[ ]*86:[ ]+90[ ]+nop[ ]* +[ ]*87:[ ]+90[ ]+nop[ ]* +[ ]*88:[ ]+0f 1f 84 00 00 00 00 00[ ]+nopl[ ]+0x0\(%eax,%eax,1\) + +0+90 : +[ ]*90:[ ]+90[ ]+nop[ ]* +[ ]*91:[ ]+90[ ]+nop[ ]* +[ ]*92:[ ]+90[ ]+nop[ ]* +[ ]*93:[ ]+90[ ]+nop[ ]* +[ ]*94:[ ]+90[ ]+nop[ ]* +[ ]*95:[ ]+90[ ]+nop[ ]* +[ ]*96:[ ]+90[ ]+nop[ ]* +[ ]*97:[ ]+90[ ]+nop[ ]* +[ ]*98:[ ]+90[ ]+nop[ ]* +[ ]*99:[ ]+0f 1f 80 00 00 00 00[ ]+nopl[ ]+0x0\(%eax\) + +0+a0 : +[ ]*a0:[ ]+90[ ]+nop[ ]* +[ ]*a1:[ ]+90[ ]+nop[ ]* +[ ]*a2:[ ]+90[ ]+nop[ ]* +[ ]*a3:[ ]+90[ ]+nop[ ]* +[ ]*a4:[ ]+90[ ]+nop[ ]* +[ ]*a5:[ ]+90[ ]+nop[ ]* +[ ]*a6:[ ]+90[ ]+nop[ ]* +[ ]*a7:[ ]+90[ ]+nop[ ]* +[ ]*a8:[ ]+90[ ]+nop[ ]* +[ ]*a9:[ ]+90[ ]+nop[ ]* +[ ]*aa:[ ]+66 0f 1f 44 00 00[ ]+nopw[ ]+0x0\(%eax,%eax,1\) + +0+b0 : +[ ]*b0:[ ]+90[ ]+nop[ ]* +[ ]*b1:[ ]+90[ ]+nop[ ]* +[ ]*b2:[ ]+90[ ]+nop[ ]* +[ ]*b3:[ ]+90[ ]+nop[ ]* +[ ]*b4:[ ]+90[ ]+nop[ ]* +[ ]*b5:[ ]+90[ ]+nop[ ]* +[ ]*b6:[ ]+90[ ]+nop[ ]* +[ ]*b7:[ ]+90[ ]+nop[ ]* +[ ]*b8:[ ]+90[ ]+nop[ ]* +[ ]*b9:[ ]+90[ ]+nop[ ]* +[ ]*ba:[ ]+90[ ]+nop[ ]* +[ ]*bb:[ ]+0f 1f 44 00 00[ ]+nopl[ ]+0x0\(%eax,%eax,1\) + +0+c0 : +[ ]*c0:[ ]+90[ ]+nop[ ]* +[ ]*c1:[ ]+90[ ]+nop[ ]* +[ ]*c2:[ ]+90[ ]+nop[ ]* +[ ]*c3:[ ]+90[ ]+nop[ ]* +[ ]*c4:[ ]+90[ ]+nop[ ]* +[ ]*c5:[ ]+90[ ]+nop[ ]* +[ ]*c6:[ ]+90[ ]+nop[ ]* +[ ]*c7:[ ]+90[ ]+nop[ ]* +[ ]*c8:[ ]+90[ ]+nop[ ]* +[ ]*c9:[ ]+90[ ]+nop[ ]* +[ ]*ca:[ ]+90[ ]+nop[ ]* +[ ]*cb:[ ]+90[ ]+nop[ ]* +[ ]*cc:[ ]+0f 1f 40 00[ ]+nopl[ ]+0x0\(%eax\) + +0+d0 : +[ ]*d0:[ ]+90[ ]+nop[ ]* +[ ]*d1:[ ]+90[ ]+nop[ ]* +[ ]*d2:[ ]+90[ ]+nop[ ]* +[ ]*d3:[ ]+90[ ]+nop[ ]* +[ ]*d4:[ ]+90[ ]+nop[ ]* +[ ]*d5:[ ]+90[ ]+nop[ ]* +[ ]*d6:[ ]+90[ ]+nop[ ]* +[ ]*d7:[ ]+90[ ]+nop[ ]* +[ ]*d8:[ ]+90[ ]+nop[ ]* +[ ]*d9:[ ]+90[ ]+nop[ ]* +[ ]*da:[ ]+90[ ]+nop[ ]* +[ ]*db:[ ]+90[ ]+nop[ ]* +[ ]*dc:[ ]+90[ ]+nop[ ]* +[ ]*dd:[ ]+0f 1f 00[ ]+nopl[ ]+\(%eax\) + +0+e0 : +[ ]*e0:[ ]+90[ ]+nop[ ]* +[ ]*e1:[ ]+90[ ]+nop[ ]* +[ ]*e2:[ ]+90[ ]+nop[ ]* +[ ]*e3:[ ]+90[ ]+nop[ ]* +[ ]*e4:[ ]+90[ ]+nop[ ]* +[ ]*e5:[ ]+90[ ]+nop[ ]* +[ ]*e6:[ ]+90[ ]+nop[ ]* +[ ]*e7:[ ]+90[ ]+nop[ ]* +[ ]*e8:[ ]+90[ ]+nop[ ]* +[ ]*e9:[ ]+90[ ]+nop[ ]* +[ ]*ea:[ ]+90[ ]+nop[ ]* +[ ]*eb:[ ]+90[ ]+nop[ ]* +[ ]*ec:[ ]+90[ ]+nop[ ]* +[ ]*ed:[ ]+90[ ]+nop[ ]* +[ ]*ee:[ ]+66 90[ ]+xchg[ ]+%ax,%ax +#pass diff --git a/gas/testsuite/gas/i386/nops-2.s b/gas/testsuite/gas/i386/nops-2.s new file mode 100644 index 0000000000..afbb87e094 --- /dev/null +++ b/gas/testsuite/gas/i386/nops-2.s @@ -0,0 +1,151 @@ + .text +nop: + cmove %eax,%eax + .p2align 4 + +nop15: + nop + .p2align 4 + +nop14: + nop + nop + .p2align 4 + +nop13: + nop + nop + nop + .p2align 4 + +nop12: + nop + nop + nop + nop + .p2align 4 + +nop11: + nop + nop + nop + nop + nop + .p2align 4 + +nop10: + nop + nop + nop + nop + nop + nop + .p2align 4 + +nop9: + nop + nop + nop + nop + nop + nop + nop + .p2align 4 + +nop8: + nop + nop + nop + nop + nop + nop + nop + nop + .p2align 4 + +nop7: + nop + nop + nop + nop + nop + nop + nop + nop + nop + .p2align 4 + +nop6: + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + .p2align 4 + +nop5: + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + .p2align 4 + +nop4: + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + .p2align 4 + +nop3: + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + .p2align 4 + +nop2: + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + .p2align 4 diff --git a/gas/testsuite/gas/i386/sse2.d b/gas/testsuite/gas/i386/sse2.d index eb6a161cbf..545def3bb6 100644 --- a/gas/testsuite/gas/i386/sse2.d +++ b/gas/testsuite/gas/i386/sse2.d @@ -153,4 +153,4 @@ Disassembly of section .text: 270: 66 0f 73 f8 01[ ]+pslldq \$0x1,%xmm0 275: 66 0f 73 d8 01[ ]+psrldq \$0x1,%xmm0 27a: 66 0f 6d c8[ ]+punpckhqdq %xmm0,%xmm1 - 27e: 89 f6[ ]+mov[ ]+%esi,%esi + 27e: 66 90[ ]+xchg[ ]+%ax,%ax diff --git a/gas/testsuite/gas/i386/x86-64-nops-1-k8.d b/gas/testsuite/gas/i386/x86-64-nops-1-k8.d new file mode 100644 index 0000000000..6785fbb065 --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-nops-1-k8.d @@ -0,0 +1,177 @@ +#as: -mtune=k8 +#source: x86-64-nops-1.s +#objdump: -drw +#name: x86-64 -mtune=k8 nops 1 + +.*: +file format .* + +Disassembly of section .text: + +0+ : +[ ]*0:[ ]+90[ ]+nop[ ]* +[ ]*1:[ ]+66 66 66 90[ ]+xchg[ ]+%ax,%ax +[ ]*5:[ ]+66 66 66 90[ ]+xchg[ ]+%ax,%ax +[ ]*9:[ ]+66 66 66 90[ ]+xchg[ ]+%ax,%ax +[ ]*d:[ ]+66 66 90[ ]+xchg[ ]+%ax,%ax + +0+10 : +[ ]*10:[ ]+90[ ]+nop[ ]* +[ ]*11:[ ]+90[ ]+nop[ ]* +[ ]*12:[ ]+66 66 66 90[ ]+xchg[ ]+%ax,%ax +[ ]*16:[ ]+66 66 66 90[ ]+xchg[ ]+%ax,%ax +[ ]*1a:[ ]+66 66 90[ ]+xchg[ ]+%ax,%ax +[ ]*1d:[ ]+66 66 90[ ]+xchg[ ]+%ax,%ax + +0+20 : +[ ]*20:[ ]+90[ ]+nop[ ]* +[ ]*21:[ ]+90[ ]+nop[ ]* +[ ]*22:[ ]+90[ ]+nop[ ]* +[ ]*23:[ ]+66 66 66 90[ ]+xchg[ ]+%ax,%ax +[ ]*27:[ ]+66 66 90[ ]+xchg[ ]+%ax,%ax +[ ]*2a:[ ]+66 66 90[ ]+xchg[ ]+%ax,%ax +[ ]*2d:[ ]+66 66 90[ ]+xchg[ ]+%ax,%ax + +0+30 : +[ ]*30:[ ]+90[ ]+nop[ ]* +[ ]*31:[ ]+90[ ]+nop[ ]* +[ ]*32:[ ]+90[ ]+nop[ ]* +[ ]*33:[ ]+90[ ]+nop[ ]* +[ ]*34:[ ]+66 66 66 90[ ]+xchg[ ]+%ax,%ax +[ ]*38:[ ]+66 66 66 90[ ]+xchg[ ]+%ax,%ax +[ ]*3c:[ ]+66 66 66 90[ ]+xchg[ ]+%ax,%ax + +0+40 : +[ ]*40:[ ]+90[ ]+nop[ ]* +[ ]*41:[ ]+90[ ]+nop[ ]* +[ ]*42:[ ]+90[ ]+nop[ ]* +[ ]*43:[ ]+90[ ]+nop[ ]* +[ ]*44:[ ]+90[ ]+nop[ ]* +[ ]*45:[ ]+66 66 66 90[ ]+xchg[ ]+%ax,%ax +[ ]*49:[ ]+66 66 66 90[ ]+xchg[ ]+%ax,%ax +[ ]*4d:[ ]+66 66 90[ ]+xchg[ ]+%ax,%ax + +0+50 : +[ ]*50:[ ]+90[ ]+nop[ ]* +[ ]*51:[ ]+90[ ]+nop[ ]* +[ ]*52:[ ]+90[ ]+nop[ ]* +[ ]*53:[ ]+90[ ]+nop[ ]* +[ ]*54:[ ]+90[ ]+nop[ ]* +[ ]*55:[ ]+90[ ]+nop[ ]* +[ ]*56:[ ]+66 66 66 90[ ]+xchg[ ]+%ax,%ax +[ ]*5a:[ ]+66 66 90[ ]+xchg[ ]+%ax,%ax +[ ]*5d:[ ]+66 66 90[ ]+xchg[ ]+%ax,%ax + +0+60 : +[ ]*60:[ ]+90[ ]+nop[ ]* +[ ]*61:[ ]+90[ ]+nop[ ]* +[ ]*62:[ ]+90[ ]+nop[ ]* +[ ]*63:[ ]+90[ ]+nop[ ]* +[ ]*64:[ ]+90[ ]+nop[ ]* +[ ]*65:[ ]+90[ ]+nop[ ]* +[ ]*66:[ ]+90[ ]+nop[ ]* +[ ]*67:[ ]+66 66 90[ ]+xchg[ ]+%ax,%ax +[ ]*6a:[ ]+66 66 90[ ]+xchg[ ]+%ax,%ax +[ ]*6d:[ ]+66 66 90[ ]+xchg[ ]+%ax,%ax + +0+70 : +[ ]*70:[ ]+90[ ]+nop[ ]* +[ ]*71:[ ]+90[ ]+nop[ ]* +[ ]*72:[ ]+90[ ]+nop[ ]* +[ ]*73:[ ]+90[ ]+nop[ ]* +[ ]*74:[ ]+90[ ]+nop[ ]* +[ ]*75:[ ]+90[ ]+nop[ ]* +[ ]*76:[ ]+90[ ]+nop[ ]* +[ ]*77:[ ]+90[ ]+nop[ ]* +[ ]*78:[ ]+66 66 66 90[ ]+xchg[ ]+%ax,%ax +[ ]*7c:[ ]+66 66 66 90[ ]+xchg[ ]+%ax,%ax + +0+80 : +[ ]*80:[ ]+90[ ]+nop[ ]* +[ ]*81:[ ]+90[ ]+nop[ ]* +[ ]*82:[ ]+90[ ]+nop[ ]* +[ ]*83:[ ]+90[ ]+nop[ ]* +[ ]*84:[ ]+90[ ]+nop[ ]* +[ ]*85:[ ]+90[ ]+nop[ ]* +[ ]*86:[ ]+90[ ]+nop[ ]* +[ ]*87:[ ]+90[ ]+nop[ ]* +[ ]*88:[ ]+90[ ]+nop[ ]* +[ ]*89:[ ]+66 66 66 90[ ]+xchg[ ]+%ax,%ax +[ ]*8d:[ ]+66 66 90[ ]+xchg[ ]+%ax,%ax + +0+90 : +[ ]*90:[ ]+90[ ]+nop[ ]* +[ ]*91:[ ]+90[ ]+nop[ ]* +[ ]*92:[ ]+90[ ]+nop[ ]* +[ ]*93:[ ]+90[ ]+nop[ ]* +[ ]*94:[ ]+90[ ]+nop[ ]* +[ ]*95:[ ]+90[ ]+nop[ ]* +[ ]*96:[ ]+90[ ]+nop[ ]* +[ ]*97:[ ]+90[ ]+nop[ ]* +[ ]*98:[ ]+90[ ]+nop[ ]* +[ ]*99:[ ]+90[ ]+nop[ ]* +[ ]*9a:[ ]+66 66 90[ ]+xchg[ ]+%ax,%ax +[ ]*9d:[ ]+66 66 90[ ]+xchg[ ]+%ax,%ax + +0+a0 : +[ ]*a0:[ ]+90[ ]+nop[ ]* +[ ]*a1:[ ]+90[ ]+nop[ ]* +[ ]*a2:[ ]+90[ ]+nop[ ]* +[ ]*a3:[ ]+90[ ]+nop[ ]* +[ ]*a4:[ ]+90[ ]+nop[ ]* +[ ]*a5:[ ]+90[ ]+nop[ ]* +[ ]*a6:[ ]+90[ ]+nop[ ]* +[ ]*a7:[ ]+90[ ]+nop[ ]* +[ ]*a8:[ ]+90[ ]+nop[ ]* +[ ]*a9:[ ]+90[ ]+nop[ ]* +[ ]*aa:[ ]+90[ ]+nop[ ]* +[ ]*ab:[ ]+66 66 90[ ]+xchg[ ]+%ax,%ax +[ ]*ae:[ ]+66 90[ ]+xchg[ ]+%ax,%ax + +0+b0 : +[ ]*b0:[ ]+90[ ]+nop[ ]* +[ ]*b1:[ ]+90[ ]+nop[ ]* +[ ]*b2:[ ]+90[ ]+nop[ ]* +[ ]*b3:[ ]+90[ ]+nop[ ]* +[ ]*b4:[ ]+90[ ]+nop[ ]* +[ ]*b5:[ ]+90[ ]+nop[ ]* +[ ]*b6:[ ]+90[ ]+nop[ ]* +[ ]*b7:[ ]+90[ ]+nop[ ]* +[ ]*b8:[ ]+90[ ]+nop[ ]* +[ ]*b9:[ ]+90[ ]+nop[ ]* +[ ]*ba:[ ]+90[ ]+nop[ ]* +[ ]*bb:[ ]+90[ ]+nop[ ]* +[ ]*bc:[ ]+66 66 66 90[ ]+xchg[ ]+%ax,%ax + +0+c0 : +[ ]*c0:[ ]+90[ ]+nop[ ]* +[ ]*c1:[ ]+90[ ]+nop[ ]* +[ ]*c2:[ ]+90[ ]+nop[ ]* +[ ]*c3:[ ]+90[ ]+nop[ ]* +[ ]*c4:[ ]+90[ ]+nop[ ]* +[ ]*c5:[ ]+90[ ]+nop[ ]* +[ ]*c6:[ ]+90[ ]+nop[ ]* +[ ]*c7:[ ]+90[ ]+nop[ ]* +[ ]*c8:[ ]+90[ ]+nop[ ]* +[ ]*c9:[ ]+90[ ]+nop[ ]* +[ ]*ca:[ ]+90[ ]+nop[ ]* +[ ]*cb:[ ]+90[ ]+nop[ ]* +[ ]*cc:[ ]+90[ ]+nop[ ]* +[ ]*cd:[ ]+66 66 90[ ]+xchg[ ]+%ax,%ax + +0+d0 : +[ ]*d0:[ ]+90[ ]+nop[ ]* +[ ]*d1:[ ]+90[ ]+nop[ ]* +[ ]*d2:[ ]+90[ ]+nop[ ]* +[ ]*d3:[ ]+90[ ]+nop[ ]* +[ ]*d4:[ ]+90[ ]+nop[ ]* +[ ]*d5:[ ]+90[ ]+nop[ ]* +[ ]*d6:[ ]+90[ ]+nop[ ]* +[ ]*d7:[ ]+90[ ]+nop[ ]* +[ ]*d8:[ ]+90[ ]+nop[ ]* +[ ]*d9:[ ]+90[ ]+nop[ ]* +[ ]*da:[ ]+90[ ]+nop[ ]* +[ ]*db:[ ]+90[ ]+nop[ ]* +[ ]*dc:[ ]+90[ ]+nop[ ]* +[ ]*dd:[ ]+90[ ]+nop[ ]* +[ ]*de:[ ]+66 90[ ]+xchg[ ]+%ax,%ax +#pass diff --git a/gas/testsuite/gas/i386/x86-64-nops-1-merom.d b/gas/testsuite/gas/i386/x86-64-nops-1-merom.d new file mode 100644 index 0000000000..2aa49aeeec --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-nops-1-merom.d @@ -0,0 +1,156 @@ +#as: -mtune=merom +#source: x86-64-nops-1.s +#objdump: -drw +#name: x86-64 -mtune=merom nops 1 + +.*: +file format .* + +Disassembly of section .text: + +0+ : +[ ]*0:[ ]+90[ ]+nop[ ]* +[ ]*1:[ ]+66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00[ ]+nopw[ ]+%cs:0x0\(%rax,%rax,1\) + +0+10 : +[ ]*10:[ ]+90[ ]+nop[ ]* +[ ]*11:[ ]+90[ ]+nop[ ]* +[ ]*12:[ ]+66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00[ ]+nopw[ ]+%cs:0x0\(%rax,%rax,1\) + +0+20 : +[ ]*20:[ ]+90[ ]+nop[ ]* +[ ]*21:[ ]+90[ ]+nop[ ]* +[ ]*22:[ ]+90[ ]+nop[ ]* +[ ]*23:[ ]+66 66 66 66 2e 0f 1f 84 00 00 00 00 00[ ]+nopw[ ]+%cs:0x0\(%rax,%rax,1\) + +0+30 : +[ ]*30:[ ]+90[ ]+nop[ ]* +[ ]*31:[ ]+90[ ]+nop[ ]* +[ ]*32:[ ]+90[ ]+nop[ ]* +[ ]*33:[ ]+90[ ]+nop[ ]* +[ ]*34:[ ]+66 66 66 2e 0f 1f 84 00 00 00 00 00[ ]+nopw[ ]+%cs:0x0\(%rax,%rax,1\) + +0+40 : +[ ]*40:[ ]+90[ ]+nop[ ]* +[ ]*41:[ ]+90[ ]+nop[ ]* +[ ]*42:[ ]+90[ ]+nop[ ]* +[ ]*43:[ ]+90[ ]+nop[ ]* +[ ]*44:[ ]+90[ ]+nop[ ]* +[ ]*45:[ ]+66 66 2e 0f 1f 84 00 00 00 00 00[ ]+nopw[ ]+%cs:0x0\(%rax,%rax,1\) + +0+50 : +[ ]*50:[ ]+90[ ]+nop[ ]* +[ ]*51:[ ]+90[ ]+nop[ ]* +[ ]*52:[ ]+90[ ]+nop[ ]* +[ ]*53:[ ]+90[ ]+nop[ ]* +[ ]*54:[ ]+90[ ]+nop[ ]* +[ ]*55:[ ]+90[ ]+nop[ ]* +[ ]*56:[ ]+66 2e 0f 1f 84 00 00 00 00 00[ ]+nopw[ ]+%cs:0x0\(%rax,%rax,1\) + +0+60 : +[ ]*60:[ ]+90[ ]+nop[ ]* +[ ]*61:[ ]+90[ ]+nop[ ]* +[ ]*62:[ ]+90[ ]+nop[ ]* +[ ]*63:[ ]+90[ ]+nop[ ]* +[ ]*64:[ ]+90[ ]+nop[ ]* +[ ]*65:[ ]+90[ ]+nop[ ]* +[ ]*66:[ ]+90[ ]+nop[ ]* +[ ]*67:[ ]+66 0f 1f 84 00 00 00 00 00[ ]+nopw[ ]+0x0\(%rax,%rax,1\) + +0+70 : +[ ]*70:[ ]+90[ ]+nop[ ]* +[ ]*71:[ ]+90[ ]+nop[ ]* +[ ]*72:[ ]+90[ ]+nop[ ]* +[ ]*73:[ ]+90[ ]+nop[ ]* +[ ]*74:[ ]+90[ ]+nop[ ]* +[ ]*75:[ ]+90[ ]+nop[ ]* +[ ]*76:[ ]+90[ ]+nop[ ]* +[ ]*77:[ ]+90[ ]+nop[ ]* +[ ]*78:[ ]+0f 1f 84 00 00 00 00 00[ ]+nopl[ ]+0x0\(%rax,%rax,1\) + +0+80 : +[ ]*80:[ ]+90[ ]+nop[ ]* +[ ]*81:[ ]+90[ ]+nop[ ]* +[ ]*82:[ ]+90[ ]+nop[ ]* +[ ]*83:[ ]+90[ ]+nop[ ]* +[ ]*84:[ ]+90[ ]+nop[ ]* +[ ]*85:[ ]+90[ ]+nop[ ]* +[ ]*86:[ ]+90[ ]+nop[ ]* +[ ]*87:[ ]+90[ ]+nop[ ]* +[ ]*88:[ ]+90[ ]+nop[ ]* +[ ]*89:[ ]+0f 1f 80 00 00 00 00[ ]+nopl[ ]+0x0\(%rax\) + +0+90 : +[ ]*90:[ ]+90[ ]+nop[ ]* +[ ]*91:[ ]+90[ ]+nop[ ]* +[ ]*92:[ ]+90[ ]+nop[ ]* +[ ]*93:[ ]+90[ ]+nop[ ]* +[ ]*94:[ ]+90[ ]+nop[ ]* +[ ]*95:[ ]+90[ ]+nop[ ]* +[ ]*96:[ ]+90[ ]+nop[ ]* +[ ]*97:[ ]+90[ ]+nop[ ]* +[ ]*98:[ ]+90[ ]+nop[ ]* +[ ]*99:[ ]+90[ ]+nop[ ]* +[ ]*9a:[ ]+66 0f 1f 44 00 00[ ]+nopw[ ]+0x0\(%rax,%rax,1\) + +0+a0 : +[ ]*a0:[ ]+90[ ]+nop[ ]* +[ ]*a1:[ ]+90[ ]+nop[ ]* +[ ]*a2:[ ]+90[ ]+nop[ ]* +[ ]*a3:[ ]+90[ ]+nop[ ]* +[ ]*a4:[ ]+90[ ]+nop[ ]* +[ ]*a5:[ ]+90[ ]+nop[ ]* +[ ]*a6:[ ]+90[ ]+nop[ ]* +[ ]*a7:[ ]+90[ ]+nop[ ]* +[ ]*a8:[ ]+90[ ]+nop[ ]* +[ ]*a9:[ ]+90[ ]+nop[ ]* +[ ]*aa:[ ]+90[ ]+nop[ ]* +[ ]*ab:[ ]+0f 1f 44 00 00[ ]+nopl[ ]+0x0\(%rax,%rax,1\) + +0+b0 : +[ ]*b0:[ ]+90[ ]+nop[ ]* +[ ]*b1:[ ]+90[ ]+nop[ ]* +[ ]*b2:[ ]+90[ ]+nop[ ]* +[ ]*b3:[ ]+90[ ]+nop[ ]* +[ ]*b4:[ ]+90[ ]+nop[ ]* +[ ]*b5:[ ]+90[ ]+nop[ ]* +[ ]*b6:[ ]+90[ ]+nop[ ]* +[ ]*b7:[ ]+90[ ]+nop[ ]* +[ ]*b8:[ ]+90[ ]+nop[ ]* +[ ]*b9:[ ]+90[ ]+nop[ ]* +[ ]*ba:[ ]+90[ ]+nop[ ]* +[ ]*bb:[ ]+90[ ]+nop[ ]* +[ ]*bc:[ ]+0f 1f 40 00[ ]+nopl[ ]+0x0\(%rax\) + +0+c0 : +[ ]*c0:[ ]+90[ ]+nop[ ]* +[ ]*c1:[ ]+90[ ]+nop[ ]* +[ ]*c2:[ ]+90[ ]+nop[ ]* +[ ]*c3:[ ]+90[ ]+nop[ ]* +[ ]*c4:[ ]+90[ ]+nop[ ]* +[ ]*c5:[ ]+90[ ]+nop[ ]* +[ ]*c6:[ ]+90[ ]+nop[ ]* +[ ]*c7:[ ]+90[ ]+nop[ ]* +[ ]*c8:[ ]+90[ ]+nop[ ]* +[ ]*c9:[ ]+90[ ]+nop[ ]* +[ ]*ca:[ ]+90[ ]+nop[ ]* +[ ]*cb:[ ]+90[ ]+nop[ ]* +[ ]*cc:[ ]+90[ ]+nop[ ]* +[ ]*cd:[ ]+0f 1f 00[ ]+nopl[ ]+\(%rax\) + +0+d0 : +[ ]*d0:[ ]+90[ ]+nop[ ]* +[ ]*d1:[ ]+90[ ]+nop[ ]* +[ ]*d2:[ ]+90[ ]+nop[ ]* +[ ]*d3:[ ]+90[ ]+nop[ ]* +[ ]*d4:[ ]+90[ ]+nop[ ]* +[ ]*d5:[ ]+90[ ]+nop[ ]* +[ ]*d6:[ ]+90[ ]+nop[ ]* +[ ]*d7:[ ]+90[ ]+nop[ ]* +[ ]*d8:[ ]+90[ ]+nop[ ]* +[ ]*d9:[ ]+90[ ]+nop[ ]* +[ ]*da:[ ]+90[ ]+nop[ ]* +[ ]*db:[ ]+90[ ]+nop[ ]* +[ ]*dc:[ ]+90[ ]+nop[ ]* +[ ]*dd:[ ]+90[ ]+nop[ ]* +[ ]*de:[ ]+66 90[ ]+xchg[ ]+%ax,%ax +#pass diff --git a/gas/testsuite/gas/i386/x86-64-nops-1-nocona.d b/gas/testsuite/gas/i386/x86-64-nops-1-nocona.d new file mode 100644 index 0000000000..c1886b605a --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-nops-1-nocona.d @@ -0,0 +1,161 @@ +#as: -mtune=nocona +#source: x86-64-nops-1.s +#objdump: -drw +#name: x86-64 -mtune=nocona nops 1 + +.*: +file format .* + +Disassembly of section .text: + +0+ : +[ ]*0:[ ]+90[ ]+nop[ ]* +[ ]*1:[ ]+0f 1f 80 00 00 00 00[ ]+nopl[ ]+0x0\(%rax\) +[ ]*8:[ ]+0f 1f 84 00 00 00 00 00[ ]+nopl[ ]+0x0\(%rax,%rax,1\) + +0+10 : +[ ]*10:[ ]+90[ ]+nop[ ]* +[ ]*11:[ ]+90[ ]+nop[ ]* +[ ]*12:[ ]+0f 1f 80 00 00 00 00[ ]+nopl[ ]+0x0\(%rax\) +[ ]*19:[ ]+0f 1f 80 00 00 00 00[ ]+nopl[ ]+0x0\(%rax\) + +0+20 : +[ ]*20:[ ]+90[ ]+nop[ ]* +[ ]*21:[ ]+90[ ]+nop[ ]* +[ ]*22:[ ]+90[ ]+nop[ ]* +[ ]*23:[ ]+66 0f 1f 44 00 00[ ]+nopw[ ]+0x0\(%rax,%rax,1\) +[ ]*29:[ ]+0f 1f 80 00 00 00 00[ ]+nopl[ ]+0x0\(%rax\) + +0+30 : +[ ]*30:[ ]+90[ ]+nop[ ]* +[ ]*31:[ ]+90[ ]+nop[ ]* +[ ]*32:[ ]+90[ ]+nop[ ]* +[ ]*33:[ ]+90[ ]+nop[ ]* +[ ]*34:[ ]+66 0f 1f 44 00 00[ ]+nopw[ ]+0x0\(%rax,%rax,1\) +[ ]*3a:[ ]+66 0f 1f 44 00 00[ ]+nopw[ ]+0x0\(%rax,%rax,1\) + +0+40 : +[ ]*40:[ ]+90[ ]+nop[ ]* +[ ]*41:[ ]+90[ ]+nop[ ]* +[ ]*42:[ ]+90[ ]+nop[ ]* +[ ]*43:[ ]+90[ ]+nop[ ]* +[ ]*44:[ ]+90[ ]+nop[ ]* +[ ]*45:[ ]+0f 1f 44 00 00[ ]+nopl[ ]+0x0\(%rax,%rax,1\) +[ ]*4a:[ ]+66 0f 1f 44 00 00[ ]+nopw[ ]+0x0\(%rax,%rax,1\) + +0+50 : +[ ]*50:[ ]+90[ ]+nop[ ]* +[ ]*51:[ ]+90[ ]+nop[ ]* +[ ]*52:[ ]+90[ ]+nop[ ]* +[ ]*53:[ ]+90[ ]+nop[ ]* +[ ]*54:[ ]+90[ ]+nop[ ]* +[ ]*55:[ ]+90[ ]+nop[ ]* +[ ]*56:[ ]+66 2e 0f 1f 84 00 00 00 00 00[ ]+nopw[ ]+%cs:0x0\(%rax,%rax,1\) + +0+60 : +[ ]*60:[ ]+90[ ]+nop[ ]* +[ ]*61:[ ]+90[ ]+nop[ ]* +[ ]*62:[ ]+90[ ]+nop[ ]* +[ ]*63:[ ]+90[ ]+nop[ ]* +[ ]*64:[ ]+90[ ]+nop[ ]* +[ ]*65:[ ]+90[ ]+nop[ ]* +[ ]*66:[ ]+90[ ]+nop[ ]* +[ ]*67:[ ]+66 0f 1f 84 00 00 00 00 00[ ]+nopw[ ]+0x0\(%rax,%rax,1\) + +0+70 : +[ ]*70:[ ]+90[ ]+nop[ ]* +[ ]*71:[ ]+90[ ]+nop[ ]* +[ ]*72:[ ]+90[ ]+nop[ ]* +[ ]*73:[ ]+90[ ]+nop[ ]* +[ ]*74:[ ]+90[ ]+nop[ ]* +[ ]*75:[ ]+90[ ]+nop[ ]* +[ ]*76:[ ]+90[ ]+nop[ ]* +[ ]*77:[ ]+90[ ]+nop[ ]* +[ ]*78:[ ]+0f 1f 84 00 00 00 00 00[ ]+nopl[ ]+0x0\(%rax,%rax,1\) + +0+80 : +[ ]*80:[ ]+90[ ]+nop[ ]* +[ ]*81:[ ]+90[ ]+nop[ ]* +[ ]*82:[ ]+90[ ]+nop[ ]* +[ ]*83:[ ]+90[ ]+nop[ ]* +[ ]*84:[ ]+90[ ]+nop[ ]* +[ ]*85:[ ]+90[ ]+nop[ ]* +[ ]*86:[ ]+90[ ]+nop[ ]* +[ ]*87:[ ]+90[ ]+nop[ ]* +[ ]*88:[ ]+90[ ]+nop[ ]* +[ ]*89:[ ]+0f 1f 80 00 00 00 00[ ]+nopl[ ]+0x0\(%rax\) + +0+90 : +[ ]*90:[ ]+90[ ]+nop[ ]* +[ ]*91:[ ]+90[ ]+nop[ ]* +[ ]*92:[ ]+90[ ]+nop[ ]* +[ ]*93:[ ]+90[ ]+nop[ ]* +[ ]*94:[ ]+90[ ]+nop[ ]* +[ ]*95:[ ]+90[ ]+nop[ ]* +[ ]*96:[ ]+90[ ]+nop[ ]* +[ ]*97:[ ]+90[ ]+nop[ ]* +[ ]*98:[ ]+90[ ]+nop[ ]* +[ ]*99:[ ]+90[ ]+nop[ ]* +[ ]*9a:[ ]+66 0f 1f 44 00 00[ ]+nopw[ ]+0x0\(%rax,%rax,1\) + +0+a0 : +[ ]*a0:[ ]+90[ ]+nop[ ]* +[ ]*a1:[ ]+90[ ]+nop[ ]* +[ ]*a2:[ ]+90[ ]+nop[ ]* +[ ]*a3:[ ]+90[ ]+nop[ ]* +[ ]*a4:[ ]+90[ ]+nop[ ]* +[ ]*a5:[ ]+90[ ]+nop[ ]* +[ ]*a6:[ ]+90[ ]+nop[ ]* +[ ]*a7:[ ]+90[ ]+nop[ ]* +[ ]*a8:[ ]+90[ ]+nop[ ]* +[ ]*a9:[ ]+90[ ]+nop[ ]* +[ ]*aa:[ ]+90[ ]+nop[ ]* +[ ]*ab:[ ]+0f 1f 44 00 00[ ]+nopl[ ]+0x0\(%rax,%rax,1\) + +0+b0 : +[ ]*b0:[ ]+90[ ]+nop[ ]* +[ ]*b1:[ ]+90[ ]+nop[ ]* +[ ]*b2:[ ]+90[ ]+nop[ ]* +[ ]*b3:[ ]+90[ ]+nop[ ]* +[ ]*b4:[ ]+90[ ]+nop[ ]* +[ ]*b5:[ ]+90[ ]+nop[ ]* +[ ]*b6:[ ]+90[ ]+nop[ ]* +[ ]*b7:[ ]+90[ ]+nop[ ]* +[ ]*b8:[ ]+90[ ]+nop[ ]* +[ ]*b9:[ ]+90[ ]+nop[ ]* +[ ]*ba:[ ]+90[ ]+nop[ ]* +[ ]*bb:[ ]+90[ ]+nop[ ]* +[ ]*bc:[ ]+0f 1f 40 00[ ]+nopl[ ]+0x0\(%rax\) + +0+c0 : +[ ]*c0:[ ]+90[ ]+nop[ ]* +[ ]*c1:[ ]+90[ ]+nop[ ]* +[ ]*c2:[ ]+90[ ]+nop[ ]* +[ ]*c3:[ ]+90[ ]+nop[ ]* +[ ]*c4:[ ]+90[ ]+nop[ ]* +[ ]*c5:[ ]+90[ ]+nop[ ]* +[ ]*c6:[ ]+90[ ]+nop[ ]* +[ ]*c7:[ ]+90[ ]+nop[ ]* +[ ]*c8:[ ]+90[ ]+nop[ ]* +[ ]*c9:[ ]+90[ ]+nop[ ]* +[ ]*ca:[ ]+90[ ]+nop[ ]* +[ ]*cb:[ ]+90[ ]+nop[ ]* +[ ]*cc:[ ]+90[ ]+nop[ ]* +[ ]*cd:[ ]+0f 1f 00[ ]+nopl[ ]+\(%rax\) + +0+d0 : +[ ]*d0:[ ]+90[ ]+nop[ ]* +[ ]*d1:[ ]+90[ ]+nop[ ]* +[ ]*d2:[ ]+90[ ]+nop[ ]* +[ ]*d3:[ ]+90[ ]+nop[ ]* +[ ]*d4:[ ]+90[ ]+nop[ ]* +[ ]*d5:[ ]+90[ ]+nop[ ]* +[ ]*d6:[ ]+90[ ]+nop[ ]* +[ ]*d7:[ ]+90[ ]+nop[ ]* +[ ]*d8:[ ]+90[ ]+nop[ ]* +[ ]*d9:[ ]+90[ ]+nop[ ]* +[ ]*da:[ ]+90[ ]+nop[ ]* +[ ]*db:[ ]+90[ ]+nop[ ]* +[ ]*dc:[ ]+90[ ]+nop[ ]* +[ ]*dd:[ ]+90[ ]+nop[ ]* +[ ]*de:[ ]+66 90[ ]+xchg[ ]+%ax,%ax +#pass diff --git a/gas/testsuite/gas/i386/x86-64-nops-1.d b/gas/testsuite/gas/i386/x86-64-nops-1.d new file mode 100644 index 0000000000..a6d8188754 --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-nops-1.d @@ -0,0 +1,160 @@ +#source: x86-64-nops-1.s +#objdump: -drw +#name: x86-64 nops 1 + +.*: +file format .* + +Disassembly of section .text: + +0+ : +[ ]*0:[ ]+90[ ]+nop[ ]* +[ ]*1:[ ]+0f 1f 80 00 00 00 00[ ]+nopl[ ]+0x0\(%rax\) +[ ]*8:[ ]+0f 1f 84 00 00 00 00 00[ ]+nopl[ ]+0x0\(%rax,%rax,1\) + +0+10 : +[ ]*10:[ ]+90[ ]+nop[ ]* +[ ]*11:[ ]+90[ ]+nop[ ]* +[ ]*12:[ ]+0f 1f 80 00 00 00 00[ ]+nopl[ ]+0x0\(%rax\) +[ ]*19:[ ]+0f 1f 80 00 00 00 00[ ]+nopl[ ]+0x0\(%rax\) + +0+20 : +[ ]*20:[ ]+90[ ]+nop[ ]* +[ ]*21:[ ]+90[ ]+nop[ ]* +[ ]*22:[ ]+90[ ]+nop[ ]* +[ ]*23:[ ]+66 0f 1f 44 00 00[ ]+nopw[ ]+0x0\(%rax,%rax,1\) +[ ]*29:[ ]+0f 1f 80 00 00 00 00[ ]+nopl[ ]+0x0\(%rax\) + +0+30 : +[ ]*30:[ ]+90[ ]+nop[ ]* +[ ]*31:[ ]+90[ ]+nop[ ]* +[ ]*32:[ ]+90[ ]+nop[ ]* +[ ]*33:[ ]+90[ ]+nop[ ]* +[ ]*34:[ ]+66 0f 1f 44 00 00[ ]+nopw[ ]+0x0\(%rax,%rax,1\) +[ ]*3a:[ ]+66 0f 1f 44 00 00[ ]+nopw[ ]+0x0\(%rax,%rax,1\) + +0+40 : +[ ]*40:[ ]+90[ ]+nop[ ]* +[ ]*41:[ ]+90[ ]+nop[ ]* +[ ]*42:[ ]+90[ ]+nop[ ]* +[ ]*43:[ ]+90[ ]+nop[ ]* +[ ]*44:[ ]+90[ ]+nop[ ]* +[ ]*45:[ ]+0f 1f 44 00 00[ ]+nopl[ ]+0x0\(%rax,%rax,1\) +[ ]*4a:[ ]+66 0f 1f 44 00 00[ ]+nopw[ ]+0x0\(%rax,%rax,1\) + +0+50 : +[ ]*50:[ ]+90[ ]+nop[ ]* +[ ]*51:[ ]+90[ ]+nop[ ]* +[ ]*52:[ ]+90[ ]+nop[ ]* +[ ]*53:[ ]+90[ ]+nop[ ]* +[ ]*54:[ ]+90[ ]+nop[ ]* +[ ]*55:[ ]+90[ ]+nop[ ]* +[ ]*56:[ ]+66 2e 0f 1f 84 00 00 00 00 00[ ]+nopw[ ]+%cs:0x0\(%rax,%rax,1\) + +0+60 : +[ ]*60:[ ]+90[ ]+nop[ ]* +[ ]*61:[ ]+90[ ]+nop[ ]* +[ ]*62:[ ]+90[ ]+nop[ ]* +[ ]*63:[ ]+90[ ]+nop[ ]* +[ ]*64:[ ]+90[ ]+nop[ ]* +[ ]*65:[ ]+90[ ]+nop[ ]* +[ ]*66:[ ]+90[ ]+nop[ ]* +[ ]*67:[ ]+66 0f 1f 84 00 00 00 00 00[ ]+nopw[ ]+0x0\(%rax,%rax,1\) + +0+70 : +[ ]*70:[ ]+90[ ]+nop[ ]* +[ ]*71:[ ]+90[ ]+nop[ ]* +[ ]*72:[ ]+90[ ]+nop[ ]* +[ ]*73:[ ]+90[ ]+nop[ ]* +[ ]*74:[ ]+90[ ]+nop[ ]* +[ ]*75:[ ]+90[ ]+nop[ ]* +[ ]*76:[ ]+90[ ]+nop[ ]* +[ ]*77:[ ]+90[ ]+nop[ ]* +[ ]*78:[ ]+0f 1f 84 00 00 00 00 00[ ]+nopl[ ]+0x0\(%rax,%rax,1\) + +0+80 : +[ ]*80:[ ]+90[ ]+nop[ ]* +[ ]*81:[ ]+90[ ]+nop[ ]* +[ ]*82:[ ]+90[ ]+nop[ ]* +[ ]*83:[ ]+90[ ]+nop[ ]* +[ ]*84:[ ]+90[ ]+nop[ ]* +[ ]*85:[ ]+90[ ]+nop[ ]* +[ ]*86:[ ]+90[ ]+nop[ ]* +[ ]*87:[ ]+90[ ]+nop[ ]* +[ ]*88:[ ]+90[ ]+nop[ ]* +[ ]*89:[ ]+0f 1f 80 00 00 00 00[ ]+nopl[ ]+0x0\(%rax\) + +0+90 : +[ ]*90:[ ]+90[ ]+nop[ ]* +[ ]*91:[ ]+90[ ]+nop[ ]* +[ ]*92:[ ]+90[ ]+nop[ ]* +[ ]*93:[ ]+90[ ]+nop[ ]* +[ ]*94:[ ]+90[ ]+nop[ ]* +[ ]*95:[ ]+90[ ]+nop[ ]* +[ ]*96:[ ]+90[ ]+nop[ ]* +[ ]*97:[ ]+90[ ]+nop[ ]* +[ ]*98:[ ]+90[ ]+nop[ ]* +[ ]*99:[ ]+90[ ]+nop[ ]* +[ ]*9a:[ ]+66 0f 1f 44 00 00[ ]+nopw[ ]+0x0\(%rax,%rax,1\) + +0+a0 : +[ ]*a0:[ ]+90[ ]+nop[ ]* +[ ]*a1:[ ]+90[ ]+nop[ ]* +[ ]*a2:[ ]+90[ ]+nop[ ]* +[ ]*a3:[ ]+90[ ]+nop[ ]* +[ ]*a4:[ ]+90[ ]+nop[ ]* +[ ]*a5:[ ]+90[ ]+nop[ ]* +[ ]*a6:[ ]+90[ ]+nop[ ]* +[ ]*a7:[ ]+90[ ]+nop[ ]* +[ ]*a8:[ ]+90[ ]+nop[ ]* +[ ]*a9:[ ]+90[ ]+nop[ ]* +[ ]*aa:[ ]+90[ ]+nop[ ]* +[ ]*ab:[ ]+0f 1f 44 00 00[ ]+nopl[ ]+0x0\(%rax,%rax,1\) + +0+b0 : +[ ]*b0:[ ]+90[ ]+nop[ ]* +[ ]*b1:[ ]+90[ ]+nop[ ]* +[ ]*b2:[ ]+90[ ]+nop[ ]* +[ ]*b3:[ ]+90[ ]+nop[ ]* +[ ]*b4:[ ]+90[ ]+nop[ ]* +[ ]*b5:[ ]+90[ ]+nop[ ]* +[ ]*b6:[ ]+90[ ]+nop[ ]* +[ ]*b7:[ ]+90[ ]+nop[ ]* +[ ]*b8:[ ]+90[ ]+nop[ ]* +[ ]*b9:[ ]+90[ ]+nop[ ]* +[ ]*ba:[ ]+90[ ]+nop[ ]* +[ ]*bb:[ ]+90[ ]+nop[ ]* +[ ]*bc:[ ]+0f 1f 40 00[ ]+nopl[ ]+0x0\(%rax\) + +0+c0 : +[ ]*c0:[ ]+90[ ]+nop[ ]* +[ ]*c1:[ ]+90[ ]+nop[ ]* +[ ]*c2:[ ]+90[ ]+nop[ ]* +[ ]*c3:[ ]+90[ ]+nop[ ]* +[ ]*c4:[ ]+90[ ]+nop[ ]* +[ ]*c5:[ ]+90[ ]+nop[ ]* +[ ]*c6:[ ]+90[ ]+nop[ ]* +[ ]*c7:[ ]+90[ ]+nop[ ]* +[ ]*c8:[ ]+90[ ]+nop[ ]* +[ ]*c9:[ ]+90[ ]+nop[ ]* +[ ]*ca:[ ]+90[ ]+nop[ ]* +[ ]*cb:[ ]+90[ ]+nop[ ]* +[ ]*cc:[ ]+90[ ]+nop[ ]* +[ ]*cd:[ ]+0f 1f 00[ ]+nopl[ ]+\(%rax\) + +0+d0 : +[ ]*d0:[ ]+90[ ]+nop[ ]* +[ ]*d1:[ ]+90[ ]+nop[ ]* +[ ]*d2:[ ]+90[ ]+nop[ ]* +[ ]*d3:[ ]+90[ ]+nop[ ]* +[ ]*d4:[ ]+90[ ]+nop[ ]* +[ ]*d5:[ ]+90[ ]+nop[ ]* +[ ]*d6:[ ]+90[ ]+nop[ ]* +[ ]*d7:[ ]+90[ ]+nop[ ]* +[ ]*d8:[ ]+90[ ]+nop[ ]* +[ ]*d9:[ ]+90[ ]+nop[ ]* +[ ]*da:[ ]+90[ ]+nop[ ]* +[ ]*db:[ ]+90[ ]+nop[ ]* +[ ]*dc:[ ]+90[ ]+nop[ ]* +[ ]*dd:[ ]+90[ ]+nop[ ]* +[ ]*de:[ ]+66 90[ ]+xchg[ ]+%ax,%ax +#pass diff --git a/gas/testsuite/gas/i386/x86-64-nops-1.s b/gas/testsuite/gas/i386/x86-64-nops-1.s new file mode 100644 index 0000000000..a4fd7694de --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-nops-1.s @@ -0,0 +1,147 @@ + .text +nop15: + nop + .p2align 4 + +nop14: + nop + nop + .p2align 4 + +nop13: + nop + nop + nop + .p2align 4 + +nop12: + nop + nop + nop + nop + .p2align 4 + +nop11: + nop + nop + nop + nop + nop + .p2align 4 + +nop10: + nop + nop + nop + nop + nop + nop + .p2align 4 + +nop9: + nop + nop + nop + nop + nop + nop + nop + .p2align 4 + +nop8: + nop + nop + nop + nop + nop + nop + nop + nop + .p2align 4 + +nop7: + nop + nop + nop + nop + nop + nop + nop + nop + nop + .p2align 4 + +nop6: + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + .p2align 4 + +nop5: + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + .p2align 4 + +nop4: + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + .p2align 4 + +nop3: + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + .p2align 4 + +nop2: + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + .p2align 4