diff options
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/tc-mips.c | 35 |
2 files changed, 40 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 72116dd..9f07d52 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -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 diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index fa78840..53e10ea 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c @@ -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) { |