i386.c (x86_print_call_or_nop): Emit 5 byte nop explicitly as a stream of bytes.
authorUros Bizjak <uros@gcc.gnu.org>
Wed, 15 Nov 2017 22:26:46 +0000 (23:26 +0100)
committerUros Bizjak <uros@gcc.gnu.org>
Wed, 15 Nov 2017 22:26:46 +0000 (23:26 +0100)
* config/i386/i386.c (x86_print_call_or_nop): Emit 5 byte nop
explicitly as a stream of bytes.

From-SVN: r254788

gcc/ChangeLog
gcc/config/i386/i386.c

index 8ad4d7b1d8cc7817330085c07f44714191694240..5ee467d399fe9d71337ae9a6a949093a7b398fed 100644 (file)
@@ -1,3 +1,8 @@
+2017-11-15  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.c (x86_print_call_or_nop): Emit 5 byte nop
+       explicitly as a stream of bytes.
+
 2017-11-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
 
        * config/rs6000/altivec.h (vec_xst_be): New #define.
        le_ and be_ prefixes to swap* variables.  Remove
        if (VECTOR_ELT_ORDER_BIG) statement. Remove E_V16QImode case
        statements.
-       
+
 2017-11-14  Jason Merrill  <jason@redhat.com>
 
        Support GTY((cache)) on hash_map.
 
 2017-11-10  Julia Koval  <julia.koval@intel.com>
 
-        * config/i386/gfniintrin.h (_mm_gf2p8affine_epi64_epi8,
-        _mm256_gf2p8affine_epi64_epi8, _mm_mask_gf2p8affine_epi64_epi8,
-        _mm_maskz_gf2p8affine_epi64_epi8, _mm256_mask_gf2p8affine_epi64_epi8,
-        _mm256_maskz_gf2p8affine_epi64_epi8,
-        _mm512_mask_gf2p8affine_epi64_epi8, _mm512_gf2p8affine_epi64_epi8
-        _mm512_maskz_gf2p8affine_epi64_epi8): New intrinsics.
-        * config/i386/i386-builtin.def (__builtin_ia32_vgf2p8affineqb_v64qi,
-        __builtin_ia32_vgf2p8affineqb_v32qi,
-        __builtin_ia32_vgf2p8affineqb_v16qi): New builtins.
-        * config/i386/sse.md (vgf2p8affineqb_<mode><mask_name>): New pattern.
+       * config/i386/gfniintrin.h (_mm_gf2p8affine_epi64_epi8)
+       (_mm256_gf2p8affine_epi64_epi8, _mm_mask_gf2p8affine_epi64_epi8)
+       (_mm_maskz_gf2p8affine_epi64_epi8, _mm256_mask_gf2p8affine_epi64_epi8)
+       (_mm256_maskz_gf2p8affine_epi64_epi8)
+       (_mm512_mask_gf2p8affine_epi64_epi8, _mm512_gf2p8affine_epi64_epi8)
+       (_mm512_maskz_gf2p8affine_epi64_epi8): New intrinsics.
+       * config/i386/i386-builtin.def (__builtin_ia32_vgf2p8affineqb_v64qi)
+       (__builtin_ia32_vgf2p8affineqb_v32qi)
+       (__builtin_ia32_vgf2p8affineqb_v16qi): New builtins.
+       * config/i386/sse.md (vgf2p8affineqb_<mode><mask_name>): New pattern.
 
 2017-11-10  Tamar Christina  <tamar.christina@arm.com>
 
        (arm_option_override): Refactor.
        (arm_option_reconfigure_globals): New.
        (arm_options_perform_arch_sanity_checks): New.
-       * config/arm/arm-protos.h (arm_option_reconfigure_globals): New prototype.
+       * config/arm/arm-protos.h (arm_option_reconfigure_globals):
+       New prototype.
        (arm_options_perform_arch_sanity_checks): Likewise
 
 2017-11-10  Pat Haugen  <pthaugen@us.ibm.com>
        Use vr_values to get to dump_all_value_ranges member function.
        Remove call to vrp_free_lattice.  Call vrp_initialize, vrp_finalize,
        and simplify_cond_using_ranges_2 via vrp_prop class instance.
-       Pass vr_values class instance down to identify_jump_threads.  
+       Pass vr_values class instance down to identify_jump_threads.
        Remove call to vrp_free_lattice.
        (debug_all_value_ranges): Remove.
 
        * config/arm/arm.md (predicable_short_it): Change default to "no",
        improve documentation, remove uses that are identical to the default.
        (enabled_for_depr_it): Rename to enabled_for_short_it.
-       * gcc/config/arm/arm-fixed.md (predicable_short_it): Remove default uses.
+       * gcc/config/arm/arm-fixed.md (predicable_short_it):
+       Remove default uses.
        * gcc/config/arm/ldmstm.md (predicable_short_it): Likewise.
        * gcc/config/arm/sync.md (predicable_short_it): Likewise.
        * gcc/config/arm/thumb2.md (predicable_short_it): Likewise.
        (find_trace): Use to_frequency.
        (tail_duplicate): Use to_frequency.
        * trans-mem.c (expand_transaction): Do not update frequency.
-       * tree-call-cdce.c: Do not update frequency. 
+       * tree-call-cdce.c: Do not update frequency.
        * tree-cfg.c (gimple_find_sub_bbs): Likewise.
        (gimple_merge_blocks): Likewise.
        (gimple_split_edge): Likewise.
index c6ca071275563f2ff654f0ebd7bd15ace568e611..85cc2a93bbf3f3b4a584d57d277a567c4697b7fe 100644 (file)
@@ -40474,7 +40474,8 @@ static void
 x86_print_call_or_nop (FILE *file, const char *target)
 {
   if (flag_nop_mcount)
-    fprintf (file, "1:\tnopl 0x00(%%eax,%%eax,1)\n"); /* 5 byte nop.  */
+    /* 5 byte nop: nopl 0(%[re]ax,%[re]ax,1) */
+    fprintf (file, "1:" ASM_BYTE "0x0f, 0x1f, 0x44, 0x00, 0x00\n");
   else
     fprintf (file, "1:\tcall\t%s\n", target);
 }