x86: don't show suffixes for to-scalar-int conversion insns
[deliverable/binutils-gdb.git] / gas / read.c
index 6247b3ff58e1cf15b99dac0f9cfd247507762c8f..ff78caef38c77f77bfc959df3f2220c2955ebf42 100644 (file)
@@ -1,5 +1,5 @@
 /* read.c - read a source file -
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GAS, the GNU Assembler.
 
@@ -417,6 +417,7 @@ static const pseudo_typeS potable[] = {
   {"noformat", s_ignore, 0},
   {"nolist", listing_list, 0}, /* Turn listing off.  */
   {"nopage", listing_nopage, 0},
+  {"nops", s_nops, 0},
   {"octa", cons, 16},
   {"offset", s_struct, 0},
   {"org", s_org, 0},
@@ -3508,6 +3509,58 @@ s_space (int mult)
     mri_comment_end (stop, stopc);
 }
 
+void
+s_nops (int ignore ATTRIBUTE_UNUSED)
+{
+  expressionS exp;
+  expressionS val;
+
+#ifdef md_flush_pending_output
+  md_flush_pending_output ();
+#endif
+
+#ifdef md_cons_align
+  md_cons_align (1);
+#endif
+
+  expression (&exp);
+
+  if (*input_line_pointer == ',')
+    {
+      ++input_line_pointer;
+      expression (&val);
+    }
+  else
+    {
+      val.X_op = O_constant;
+      val.X_add_number = 0;
+    }
+
+  if (val.X_op == O_constant)
+    {
+      if (val.X_add_number < 0)
+       {
+         as_warn (_("negative nop control byte, ignored"));
+         val.X_add_number = 0;
+       }
+
+      if (!need_pass_2)
+       {
+         /* Store the no-op instruction control byte in the first byte
+            of frag.  */
+         char *p;
+         symbolS *sym = make_expr_symbol (&exp);
+         p = frag_var (rs_space_nop, 1, 1, (relax_substateT) 0,
+                       sym, (offsetT) 0, (char *) 0);
+         *p = val.X_add_number;
+       }
+    }
+  else
+    as_bad (_("unsupported variable nop control in .nops directive"));
+
+  demand_empty_rest_of_line ();
+}
+
 /* This is like s_space, but the value is a floating point number with
    the given precision.  This is for the MRI dcb.s pseudo-op and
    friends.  */
This page took 0.026225 seconds and 4 git commands to generate.