* config/tc-mips.c (s_cpload, s_cpsetup): Fail if MIPS16 mode.
authorMaciej W. Rozycki <macro@linux-mips.org>
Mon, 13 Aug 2012 14:09:44 +0000 (14:09 +0000)
committerMaciej W. Rozycki <macro@linux-mips.org>
Mon, 13 Aug 2012 14:09:44 +0000 (14:09 +0000)
(s_cplocal, s_cprestore, s_cpreturn): Likewise.

gas/ChangeLog
gas/config/tc-mips.c

index 72116dde77ffeb5f073dd3cc35a340333f4518f2..9f07d52448233256a9c50fcbb19d9c11ddb4ca7e 100644 (file)
@@ -1,3 +1,8 @@
+2012-08-13  Maciej W. Rozycki  <macro@codesourcery.com>
+
+       * config/tc-mips.c (s_cpload, s_cpsetup): Fail if MIPS16 mode.
+       (s_cplocal, s_cprestore, s_cpreturn): Likewise.
+
 2012-08-07  Jan Beulich <jbeulich@suse.com>
 
        * config/tc-i386-intel.c (build_modrm_byte): Split determining
index fa78840fc3f8d4344c086a688889a53f4f45feec..53e10eac8a7831eeb545bdfd974c60793ea988fb 100644 (file)
@@ -16439,6 +16439,13 @@ s_cpload (int ignore ATTRIBUTE_UNUSED)
       return;
     }
 
+  if (mips_opts.mips16)
+    {
+      as_bad (_("%s not supported in MIPS16 mode"), ".cpload");
+      ignore_rest_of_line ();
+      return;
+    }
+
   /* .cpload should be in a .set noreorder section.  */
   if (mips_opts.noreorder == 0)
     as_warn (_(".cpload not in noreorder section"));
@@ -16505,6 +16512,13 @@ s_cpsetup (int ignore ATTRIBUTE_UNUSED)
       return;
     }
 
+  if (mips_opts.mips16)
+    {
+      as_bad (_("%s not supported in MIPS16 mode"), ".cpsetup");
+      ignore_rest_of_line ();
+      return;
+    }
+
   reg1 = tc_get_register (0);
   SKIP_WHITESPACE ();
   if (*input_line_pointer != ',')
@@ -16597,6 +16611,13 @@ s_cplocal (int ignore ATTRIBUTE_UNUSED)
       return;
     }
 
+  if (mips_opts.mips16)
+    {
+      as_bad (_("%s not supported in MIPS16 mode"), ".cplocal");
+      ignore_rest_of_line ();
+      return;
+    }
+
   mips_gp_register = tc_get_register (0);
   demand_empty_rest_of_line ();
 }
@@ -16618,6 +16639,13 @@ s_cprestore (int ignore ATTRIBUTE_UNUSED)
       return;
     }
 
+  if (mips_opts.mips16)
+    {
+      as_bad (_("%s not supported in MIPS16 mode"), ".cprestore");
+      ignore_rest_of_line ();
+      return;
+    }
+
   mips_cprestore_offset = get_absolute_expression ();
   mips_cprestore_valid = 1;
 
@@ -16654,6 +16682,13 @@ s_cpreturn (int ignore ATTRIBUTE_UNUSED)
       return;
     }
 
+  if (mips_opts.mips16)
+    {
+      as_bad (_("%s not supported in MIPS16 mode"), ".cpreturn");
+      ignore_rest_of_line ();
+      return;
+    }
+
   macro_start ();
   if (mips_cpreturn_register == -1)
     {