qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Ronald <look@reply.to>
To: qemu-devel@nongnu.org
Subject: [Qemu-devel] Re: MacOSX CVS build broken
Date: Fri, 21 Jan 2005 23:38:42 +0100	[thread overview]
Message-ID: <pan.2005.01.21.22.38.42.149661@reply.to> (raw)
In-Reply-To: 1f1698a605011520285bc01970@mail.gmail.com

Le Sat, 15 Jan 2005 23:28:31 -0500, Tim Douglas a écrit :

> On Fri, 14 Jan 2005 21:44:01 -0800, John Tangney <johnt@jdtangney.com>
> wrote:
>> I am still getting the same thing a week later after a fresh cvs update.
>> Any hints?
> 
> As am I. Check out this interesting log:
> 
> gcc -Wall -O2 -g -fno-strict-aliasing -D__powerpc__ -fno-reorder-blocks
> -fno-optimize-sibling-calls -mdynamic-no-pic -I.
> -I/Users/timdoug/Desktop/qemu/target-i386 -I/Users/timdoug/Desktop/qemu
> -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
> -I/Users/timdoug/Desktop/qemu/slirp -c -o op.o
> /Users/timdoug/Desktop/qemu/target-i386/op.c In file included from
> /Users/timdoug/Desktop/qemu/target-i386/exec.h:21,
>                  from /Users/timdoug/Desktop/qemu/target-i386/op.c:22:
> /Users/timdoug/Desktop/qemu/dyngen-exec.h:38: warning: redefinition of
> `int8_t' /usr/include/ppc/types.h:69: warning: `int8_t' previously
> declared here /Users/timdoug/Desktop/qemu/dyngen-exec.h:39: warning:
> redefinition of `int16_t' /usr/include/ppc/types.h:71: warning: `int16_t'
> previously declared here /Users/timdoug/Desktop/qemu/dyngen-exec.h:40:
> warning: redefinition of `int32_t' /usr/include/ppc/types.h:73: warning:
> `int32_t' previously declared here
> /Users/timdoug/Desktop/qemu/dyngen-exec.h:44: warning: redefinition of
> `int64_t' /usr/include/ppc/types.h:75: warning: `int64_t' previously
> declared here ../dyngen -o op.h op.o
> dyngen: blr expected at the end of op_pmaddwd_mmx make[1]: *** [op.h]
> Error 1
> make: *** [all] Error 1
[...]
> The first invocation of gcc here makes op.o at 536k. dyngen then fails,
> but still makes op.h.
> The second run of dyngen fails too, but again it
> outputs opc.h. And then translate-all.c fails to build because something
> is broken in dyngen_code which is in op.h. So something must indeed be
> wrong with dyngen or op.c or something else. Here, though, qemu's internal
> workings bypass my knowledge, so I've sent this to qemu-devel too to see
> what they can figure out.
> 

If I objdump -D op.o, the asm code for op_pmaddwd_mmx is like this

0000d984 <op_pmaddwd_mmx>:
    d984:       3d 20 00 00     lis     r9,0
    d988:       3d 60 00 00     lis     r11,0
    d98c:       39 29 00 00     addi    r9,r9,0
    d990:       39 6b 00 00     addi    r11,r11,0
    d994:       7d 1b 4a 14     add     r8,r27,r9
    d998:       7c 9b 5a 14     add     r4,r27,r11
    d99c:       38 a0 00 00     li      r5,0
    d9a0:       38 e0 00 04     li      r7,4
    d9a4:       38 c0 00 06     li      r6,6
    d9a8:       7d 26 22 ae     lhax    r9,r6,r4
    d9ac:       38 a5 00 01     addi    r5,r5,1
    d9b0:       7d 46 42 ae     lhax    r10,r6,r8
    d9b4:       2c 05 00 01     cmpwi   r5,1
    d9b8:       7c 07 22 ae     lhax    r0,r7,r4
    d9bc:       38 c6 ff fc     addi    r6,r6,-4
    d9c0:       7d 67 42 ae     lhax    r11,r7,r8
    d9c4:       7d 29 51 d6     mullw   r9,r9,r10
    d9c8:       7c 00 59 d6     mullw   r0,r0,r11
    d9cc:       7d 29 02 14     add     r9,r9,r0
    d9d0:       7d 27 41 2e     stwx    r9,r7,r8
    d9d4:       38 e7 ff fc     addi    r7,r7,-4
    d9d8:       4d 81 00 20     bgtlr
    d9dc:       4b ff ff cc     b       d9a8 <op_pmaddwd_mmx+0x24>

this really don't end with blr, but if I have understood correctly
what I have found about bgtlr, it should do what blr do with some
condition on r0.
May be dyngen should verify on 4bffffcc too and not only 4e800020.   

--- dyngen.c    2005-01-21 23:33:10.576942764 +0100
+++ dyngen.c.new        2005-01-21 23:34:38.326370710 +0100
@@ -1342,7 +1342,10 @@
         if (p == p_start)
             error("empty code for %s", name);
         if (get32((uint32_t *)p) != 0x4e800020)
-            error("blr expected at the end of %s", name);
+               {
+                       if (get32((uint32_t *)p) != 0x4bffffcc)
+            error("blr or b expected at the end of %s", name);
+               }
         copy_size = p - p_start;
     }
 #elif defined(HOST_S390)

Not sure if all that is correct.

> Cheers,
> -Tim

  parent reply	other threads:[~2005-01-21 23:01 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <BE0DEDA1.15F79%johnt@jdtangney.com>
2005-01-16  4:28 ` [Qemu-devel] Re: MacOSX CVS build broken Tim Douglas
2005-01-16  6:08   ` Phil Krylov
2005-01-21 22:38   ` Ronald [this message]
2005-01-21 23:08     ` Paul Brook
2005-01-21 23:09     ` Johannes Schindelin
2005-01-21 23:14     ` Daniel Egger
2005-01-23 21:11       ` Fabrice Bellard

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=pan.2005.01.21.22.38.42.149661@reply.to \
    --to=look@reply.to \
    --cc=daimon55@free.fr \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).