Author: pfg
Date: Fri May 20 20:01:10 2016
New Revision: 300333
URL: https://svnweb.freebsd.org/changeset/base/300333

Log:
  gas: Implement the .inst assembler directive for arm.
  
  We normally use the binutils from ports but on other systems this
  is required for building gcc 4.9.
  
  Obtained from:        OpenBSD (CVS rev. 1.5)
  MFC after:    3 weeks

Modified:
  head/contrib/binutils/gas/config/tc-arm.c

Modified: head/contrib/binutils/gas/config/tc-arm.c
==============================================================================
--- head/contrib/binutils/gas/config/tc-arm.c   Fri May 20 19:50:32 2016        
(r300332)
+++ head/contrib/binutils/gas/config/tc-arm.c   Fri May 20 20:01:10 2016        
(r300333)
@@ -2284,6 +2284,37 @@ s_unreq (int a ATTRIBUTE_UNUSED)
   demand_empty_rest_of_line ();
 }
 
+static void
+s_inst(int unused ATTRIBUTE_UNUSED)
+{
+       expressionS exp;
+
+       if (thumb_mode) {
+               as_bad(".inst not implemented for Thumb mode");
+               ignore_rest_of_line();
+               return;
+       }
+
+       if (is_it_end_of_statement()) {
+               demand_empty_rest_of_line();
+               return;
+       }
+
+       do {
+               expression(&exp);
+
+               if (exp.X_op != O_constant)
+                       as_bad("constant expression required");
+               else
+                       emit_expr(&exp, 4);
+
+       } while (*input_line_pointer++ == ',');
+
+       /* Put terminator back into stream. */
+       input_line_pointer--;
+       demand_empty_rest_of_line();
+}
+
 /* Directives: Instruction set selection.  */
 
 #ifdef OBJ_ELF
@@ -3895,6 +3926,7 @@ const pseudo_typeS md_pseudo_table[] =
   { "object_arch", s_arm_object_arch,  0 },
   { "fpu",        s_arm_fpu,     0 },
   { "arch_extension",     s_arm_arch_extension,          0 },
+  { "inst",       s_inst,        0 },
 #ifdef OBJ_ELF
   { "word",       s_arm_elf_cons, 4 },
   { "long",       s_arm_elf_cons, 4 },
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to