qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Juergen Keil <jk@tools.de>
To: Heiko.Nardmann@secunet.com, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] qemu-0.7.0 Solaris Host patch (Real)
Date: Mon, 2 May 2005 20:35:19 +0200 (CEST)	[thread overview]
Message-ID: <200505021835.j42IZJTg010971@imap3.tools.intra> (raw)



> gcc-3.4.2 -Wall -O2 -g -fno-strict-aliasing -m32 -ffixed-g1 -ffixed-g2 
> - -ffixed-g3 -ffixed-g6 -fno-delayed-branch -ffixed-i0 -fno-reorder-blocks 
> - -fno-optimize-sibling-calls -I. -I/home/nardmann/qemu-0.7.0/target-i386 
> - -I/home/nardmann/qemu-0.7.0 -I/opt/SUNWspro/prod/include/cc -D_GNU_SOURCE 
> - -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -I/home/nardmann/qemu-0.7.0/fpu 
> - -I/home/nardmann/qemu-0.7.0/slirp -c -o 
> op.o /home/nardmann/qemu-0.7.0/target-i386/op.c
> In file included from /home/nardmann/qemu-0.7.0/fpu/softfloat-native.h:7,
>                  from /home/nardmann/qemu-0.7.0/fpu/softfloat.h:394,
>                  from /home/nardmann/qemu-0.7.0/target-i386/cpu.h:41,
>                  from /home/nardmann/qemu-0.7.0/target-i386/exec.h:143,
>                  from /home/nardmann/qemu-0.7.0/target-i386/op.c:22:
> /opt/SUNWspro/prod/include/cc/fenv.h:8: warning: ignoring #pragma ident
> In file included from /home/nardmann/qemu-0.7.0/fpu/softfloat.h:394,
>                  from /home/nardmann/qemu-0.7.0/target-i386/cpu.h:41,
>                  from /home/nardmann/qemu-0.7.0/target-i386/exec.h:143,
>                  from /home/nardmann/qemu-0.7.0/target-i386/op.c:22:
> /home/nardmann/qemu-0.7.0/fpu/softfloat-native.h: In function `float32_abs':
> /home/nardmann/qemu-0.7.0/fpu/softfloat-native.h:164: warning: implicit 
> declaration of function `fabsf'
> In file included from /home/nardmann/qemu-0.7.0/target-i386/op.c:724:
> /home/nardmann/qemu-0.7.0/target-i386/ops_template.h: In function 
> `op_jb_subb':
> /home/nardmann/qemu-0.7.0/target-i386/ops_template.h:278: warning: implicit 
> declaration of function `GOTO_LABEL_PARAM'
> ../dyngen -o op.h op.o
> dyngen: Found bogus save at the start of op_pavgw_xmm
> 
> 
> 
> I found that GOTO_LABEL_PARAM ist not defined for sparc in dyngen-exec.h; any 
> reason for this?


I've fixed the 'bogus save' issue (and another sparc problem with 
incorrect C syntax generated by dyngen) with this patch:

Index: dyngen.c
===================================================================
RCS file: /cvsroot/qemu/qemu/dyngen.c,v
retrieving revision 1.40
diff -u -B -r1.40 dyngen.c
--- dyngen.c    27 Apr 2005 19:55:58 -0000      1.40
+++ dyngen.c    2 May 2005 18:29:08 -0000
@@ -1196,7 +1196,7 @@
     } else {
 #ifdef HOST_SPARC
         if (sym_name[0] == '.')
-            snprintf(name, sizeof(name),
+            snprintf(name, name_size,
                      "(long)(&__dot_%s)",
                      sym_name + 1);
         else
@@ -1451,7 +1451,9 @@
         if ((start_insn & ~0x1fff) == 0x9de3a000) {
             p_start += 0x4;
             start_offset += 0x4;
-            if ((int)(start_insn | ~0x1fff) < -128)
+            // if ((int)(start_insn | ~0x1fff) < -128)
+           // Why -128?  op_pavgb_xmm adjusts the stack by -0x110 == -272
+            if ((int)(start_insn | ~0x1fff) < -272)
                 error("Found bogus save at the start of %s", name);
             if (end_insn1 != 0x81c7e008 || end_insn2 != 0x81e80000)
                 error("ret; restore; not found at end of %s", name);



The missing GOTO_LABEL_PARAM macro needs a patch like this:

Index: dyngen-exec.h
===================================================================
RCS file: /cvsroot/qemu/qemu/dyngen-exec.h,v
retrieving revision 1.25
diff -u -B -r1.25 dyngen-exec.h
--- dyngen-exec.h       24 Apr 2005 18:01:56 -0000      1.25
+++ dyngen-exec.h       2 May 2005 18:29:07 -0000
@@ -230,6 +237,8 @@
 #ifdef __sparc__
 #define EXIT_TB() asm volatile ("jmpl %i0 + 8, %g0\n" \
                                 "nop")
+#define        GOTO_LABEL_PARAM(n) asm volatile ( \
+               "set " ASM_NAME(__op_gen_label) #n ", %g1; jmp %g1; nop")
 #endif
 #ifdef __arm__
 #define EXIT_TB() asm volatile ("b exec_loop")

             reply	other threads:[~2005-05-02 18:51 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-05-02 18:35 Juergen Keil [this message]
2005-05-03 13:10 ` [Qemu-devel] [PATCH] qemu-0.7.0 Solaris Host patch (Real) Nardmann, Heiko
  -- strict thread matches above, loose matches on Subject: below --
2005-05-03 17:24 Juergen Keil
2005-04-28 14:24 Ben Taylor
2005-04-30  9:40 ` Alex Beregszaszi
2005-05-02 10:12 ` Nardmann, Heiko
2005-05-02 10:51   ` Nardmann, Heiko

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=200505021835.j42IZJTg010971@imap3.tools.intra \
    --to=jk@tools.de \
    --cc=Heiko.Nardmann@secunet.com \
    --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).