Bug 25706 - [4.2 regression]: invalid asm: "mov"
Summary: [4.2 regression]: invalid asm: "mov"
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: target (show other bugs)
Version: 4.2.0
: P3 normal
Target Milestone: 4.2.0
Assignee: Hans-Peter Nilsson
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-01-07 01:27 UTC by Hans-Peter Nilsson
Modified: 2006-01-11 13:51 UTC (History)
1 user (show)

See Also:
Host:
Target: cris-axis-linux-gnu
Build:
Known to work:
Known to fail:
Last reconfirmed: 2006-01-07 01:30:47


Attachments
test-case (299 bytes, text/plain)
2006-01-07 01:30 UTC, Hans-Peter Nilsson
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Hans-Peter Nilsson 2006-01-07 01:27:08 UTC
Last known to work with: "Thu Dec  8 10:28:12 UTC 2005 (revision 108225M)".
Known to fail with: "Thu Jan  5 03:26:35 UTC 2006 (revision 109371M)".

For the test-case in the attachment named bug.i, this line is emitted:
 mov.w [$r12=$r10+8],$r9
That's an invalid asm; it should have been movs.w or movu.w.
The error is in the CRIS port; setting state when the %x asm operand output
modifier is seen, and clearing it with %e, except there are other %x that
aren't followed by %e.
Comment 1 Hans-Peter Nilsson 2006-01-07 01:30:03 UTC
Created attachment 10591 [details]
test-case

Compile with
./cc1 -fpreprocessed -march=v10 -quiet -O2 -w -fno-strict-aliasing -fno-common -fomit-frame-pointer -fno-strength-reduce
Comment 2 Hans-Peter Nilsson 2006-01-11 13:43:12 UTC
Subject: Bug 25706

Author: hp
Date: Wed Jan 11 13:43:08 2006
New Revision: 109584

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=109584
Log:
	PR target/25706
	* config/cris/cris.md ("*extopqihi_side", "*extop<mode>si_side")
	("*extop<mode>si_swap_side_biap", "*extop<mode>si_swap_side",
	("*extopqihi", "*extop<mode>si", "*extop<mode>si_swap"): Use %E
	output pattern modifier, not %e.
	* config/cris/cris.c (cris_op_str): Update comment about pattern
	modifier.
	(cris_print_operand) <case 'e'>: Clear cris_output_insn_is_bound
	before falling through into...
	<case 'E'>: Redefined from old 'e' case.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/cris/cris.c
    trunk/gcc/config/cris/cris.md

Comment 3 Hans-Peter Nilsson 2006-01-11 13:45:08 UTC
Subject: Bug 25706

Author: hp
Date: Wed Jan 11 13:45:03 2006
New Revision: 109585

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=109585
Log:
	PR target/25706
	* gcc.dg/torture/pr25706-1.c: New test.

Added:
    trunk/gcc/testsuite/gcc.dg/torture/pr25706-1.c
Modified:
    trunk/gcc/testsuite/ChangeLog

Comment 4 Hans-Peter Nilsson 2006-01-11 13:51:38 UTC
.
Comment 5 Hans-Peter Nilsson 2006-01-28 23:03:03 UTC
Subject: Bug 25706

Author: hp
Date: Sat Jan 28 23:03:00 2006
New Revision: 110346

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=110346
Log:
	PR target/25706
	* gcc.dg/torture/pr25706-1.c: New test.

Added:
    branches/gcc-4_1-branch/gcc/testsuite/gcc.dg/torture/pr25706-1.c
Modified:
    branches/gcc-4_1-branch/gcc/testsuite/ChangeLog

Comment 6 Hans-Peter Nilsson 2006-01-28 23:04:02 UTC
Subject: Bug 25706

Author: hp
Date: Sat Jan 28 23:03:58 2006
New Revision: 110347

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=110347
Log:
	PR target/25706
	* config/cris/cris.md ("*extopqihi_side", "*extop<mode>si_side")
	("*extop<mode>si_swap_side_biap", "*extop<mode>si_swap_side",
	("*extopqihi", "*extop<mode>si", "*extop<mode>si_swap"): Use %E
	output pattern modifier, not %e.
	* config/cris/cris.c (cris_op_str): Update comment about pattern
	modifier.
	(cris_print_operand) <case 'e'>: Clear cris_output_insn_is_bound
	before falling through into...
	<case 'E'>: Redefined from old 'e' case.

Modified:
    branches/gcc-4_1-branch/gcc/ChangeLog
    branches/gcc-4_1-branch/gcc/config/cris/cris.c
    branches/gcc-4_1-branch/gcc/config/cris/cris.md