diff mbox

[AVR] Fix PR49881

Message ID 4E3836CE.7070100@redhat.com
State New
Headers show

Commit Message

Richard Henderson Aug. 2, 2011, 5:41 p.m. UTC
On 08/02/2011 12:52 AM, Georg-Johann Lay wrote:
> There are still unrecognizables:
> 
> gcc.c-torture/execute/complex-7.c:56:1: error: unrecognizable insn:
> (insn 17 14 18 3 (set (mem:SF (post_dec:HI (reg/f:HI 32 __SP_L__)) [0 S4 A8])
>         (reg:SF 43 [ f5.0+4 ]))
> /mnt/nfs/home/georg/gnu/gcc.gnu.org/trunk/gcc/testsuite/gcc.c-torture/execute/complex-7.c:52 -1
>      (nil))

I was pretty sure I ran the compile tests.  I've tried several
times to come up with an environment that would properly run
the simulator, without success.  AVR support seems to be in
too many different places, none of which properly communicate
with each other.

That said, this fixes that test case, committed as obvious.


r~
* config/avr/avr.md (push<MPUSH>1): Don't constrain the operand.

Comments

Georg-Johann Lay Aug. 2, 2011, 7:01 p.m. UTC | #1
In CCing Jörg.

Richard Henderson schrieb:
> On 08/02/2011 12:52 AM, Georg-Johann Lay wrote:
> 
>>There are still unrecognizables:
>>
>>gcc.c-torture/execute/complex-7.c:56:1: error: unrecognizable insn:
>>(insn 17 14 18 3 (set (mem:SF (post_dec:HI (reg/f:HI 32 __SP_L__)) [0 S4 A8])
>>        (reg:SF 43 [ f5.0+4 ]))
>>     (nil))
> 
> I was pretty sure I ran the compile tests.  I've tried several
> times to come up with an environment that would properly run
> the simulator, without success.  AVR support seems to be in
> too many different places, none of which properly communicate
> with each other.

Just ask :-)

For questions/answers you may want to read/post to the looow traffic 
avr-gcc-list:
    http://lists.gnu.org/archive/html/avr-gcc-list/

== binutils ==

configure plain vanilla: --target=avr --prefix=<same-as-avr-gcc>
build and install

== gcc ==

You've done that already. I'm using something around
configure --target=avr --enable-languages=c,c++ --disable-nls 
--prefix=<same-as-binutils> --with-dwarf2

== avr-libc ==

Needed to run because it provides startup code and C libs.
A bit tricky, easiest to use is current CVS head.

With the latest version 1.7.1 from
http://download.savannah.gnu.org/releases/avr-libc/
you will need the patches
http://svn.sv.gnu.org/viewvc?view=rev&root=avr-libc&revision=2239
http://svn.sv.gnu.org/viewvc?view=rev&root=avr-libc&revision=2241

configure with --host=avr --prefix=<same-as-avr-gcc> CC=avr-gcc
If you give CC= (e.g. if your avr-gcc is noz in PATH) note that
the name must contain "avr" i.e. build using CC=xgcc or so does
not work. In-tree build is not supported.

Building is currently blocked by PR49864 so you have a dead-lock
and may want to downgrade gcc or avr BE to r177070 to build avr-libc.

Install it.

If I overlooked something Joerg will correct me.

== avrtest ==

There is a text
http://lists.gnu.org/archive/html/avr-gcc-list/2011-06/msg00015.html
and a README:
http://winavr.cvs.sourceforge.net/viewvc/winavr/avrtest/README?view=markup

In the case there are questions: Ask.

> That said, this fixes that test case, committed as obvious.

Didn't try it yet. Is that capable of fixing the runtime FAILs?

Johann

> 
> r~
>
Richard Henderson Aug. 2, 2011, 7:10 p.m. UTC | #2
On 08/02/2011 12:01 PM, Georg-Johann Lay wrote:
> == avrtest ==
> 
> There is a text
> http://lists.gnu.org/archive/html/avr-gcc-list/2011-06/msg00015.html
> and a README:
> http://winavr.cvs.sourceforge.net/viewvc/winavr/avrtest/README?view=markup
> 
> In the case there are questions: Ask.

Ah, a totally different simulator than google found.

I don't suppose you've ever looked into fixing up what's
in binutils/sim/avr/ so that it works well enough, and 
gets automatically included into gdb as "target sim"?


r~
Richard Henderson Aug. 2, 2011, 7:53 p.m. UTC | #3
On 08/02/2011 12:01 PM, Georg-Johann Lay wrote:
> Didn't try it yet. Is that capable of fixing the runtime FAILs?

Apparently.  I installed your simulator and get comparable results to 

  http://gcc.gnu.org/ml/gcc-testresults/2011-07/msg03632.html


r~
diff mbox

Patch

diff --git a/gcc/config/avr/avr.md b/gcc/config/avr/avr.md
index f60f9f0..b8560df 100644
--- a/gcc/config/avr/avr.md
+++ b/gcc/config/avr/avr.md
@@ -221,7 +221,7 @@ 
    (SF "") (SC "")])
 
 (define_expand "push<mode>1"
-  [(match_operand:MPUSH 0 "general_operand" "")]
+  [(match_operand:MPUSH 0 "" "")]
   ""
 {
   int i;