diff mbox

[target/52481] m68k-*: internal compiler error: in extract_insn, at recog.c:2123

Message ID 4F5655CD.7090502@redhat.com
State New
Headers show

Commit Message

Richard Henderson March 6, 2012, 6:22 p.m. UTC
On 03/06/12 09:55, Andreas Schwab wrote:
> Richard Henderson <rth@redhat.com> writes:
> 
>> On 03/06/12 02:13, Andreas Schwab wrote:
>>> Ralf Corsepius <ralf.corsepius@rtems.org> writes:
>>>
>>>> * Incompatiblible/insufficient binutils (I am using binutils-2.22)?
>>>> * Some as/ld-flags getting lost/improperly propagated during
>>>> assembly/linking?
>>>> * Bad/incompatible inline-asm hard-coded somewhere?
>>>
>>> TAS needs at least ISA_B, ie. at least CFV4.
>>
>> So... the correct test is what...
>>
>> #define ISA_HAS_TAS	(!TARGET_COLDFIRE || TARGET_ISAB || TARGET_ISAC)
> 
> Yes, that looks correct.

Thanks.

Ralf, I've committed the following to mainline.  Please try your rtems
testing again, and if that works I'll push the patch to 4.7 branch.


r~
* config/m68k/m68k.h (ISA_HAS_TAS): New.
	* config/m68k/sync.md (atomic_test_and_set): Use it.
	(atomic_test_and_set_1): Likewise.

Comments

Ralf Corsepius March 7, 2012, 4:45 a.m. UTC | #1
On 03/06/2012 07:22 PM, Richard Henderson wrote:
> On 03/06/12 09:55, Andreas Schwab wrote:
>> Richard Henderson<rth@redhat.com>  writes:
>>
>>> On 03/06/12 02:13, Andreas Schwab wrote:
>>>> Ralf Corsepius<ralf.corsepius@rtems.org>  writes:
>>>>
>>>>> * Incompatiblible/insufficient binutils (I am using binutils-2.22)?
>>>>> * Some as/ld-flags getting lost/improperly propagated during
>>>>> assembly/linking?
>>>>> * Bad/incompatible inline-asm hard-coded somewhere?
>>>> TAS needs at least ISA_B, ie. at least CFV4.
>>> So... the correct test is what...
>>>
>>> #define ISA_HAS_TAS	(!TARGET_COLDFIRE || TARGET_ISAB || TARGET_ISAC)
>> Yes, that looks correct.
> Thanks.
>
> Ralf, I've committed the following to mainline.  Please try your rtems
> testing again, and if that works I'll push the patch to 4.7 branch.
>
Thanks,

gcc-4_7-branch now finished bootstrapping for --target=m68k-rtems4.11 
with your patch applied.

Ralf
diff mbox

Patch

diff --git a/gcc/config/m68k/m68k.h b/gcc/config/m68k/m68k.h
index dbb9756..42d3779 100644
--- a/gcc/config/m68k/m68k.h
+++ b/gcc/config/m68k/m68k.h
@@ -249,6 +249,7 @@  along with GCC; see the file COPYING3.  If not see
 /* Some instructions are common to more than one ISA.  */
 #define ISA_HAS_MVS_MVZ	(TARGET_ISAB || TARGET_ISAC)
 #define ISA_HAS_FF1	(TARGET_ISAAPLUS || TARGET_ISAC)
+#define ISA_HAS_TAS	(!TARGET_COLDFIRE || TARGET_ISAB || TARGET_ISAC)
 
 #define TUNE_68000	(m68k_tune == u68000)
 #define TUNE_68010	(m68k_tune == u68010)
diff --git a/gcc/config/m68k/sync.md b/gcc/config/m68k/sync.md
index 6c840f5..d5cab79 100644
--- a/gcc/config/m68k/sync.md
+++ b/gcc/config/m68k/sync.md
@@ -60,7 +60,7 @@ 
   [(match_operand:QI 0 "register_operand" "")		;; bool success output
    (match_operand:QI 1 "memory_operand" "")		;; memory
    (match_operand:SI 2 "const_int_operand" "")]		;; model
-  ""
+  "ISA_HAS_TAS"
 {
   rtx t = gen_reg_rtx (QImode);
   emit_insn (gen_atomic_test_and_set_1 (t, operands[1]));
@@ -77,5 +77,5 @@ 
 	  UNSPECV_TAS_1))
    (set (match_dup 1)
 	(unspec_volatile:QI [(match_dup 1)] UNSPECV_TAS_2))]
-  ""
+  "ISA_HAS_TAS"
   "tas %1\;sne %0")