[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Re: [Qemu-devel] [PATCH] qemu-0.7.0 Solaris Host patch (Real)
From: |
Ben Taylor |
Subject: |
Re: Re: [Qemu-devel] [PATCH] qemu-0.7.0 Solaris Host patch (Real) |
Date: |
Fri, 6 May 2005 16:21:49 -0400 |
Juergen Keil <address@hidden>
>
> > 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 have retested on sparc (sol9), by adding some of the
defines in fenv.h for Solaris 10 to the gnu-c99-math.h
file you created, and the patches you posted, and now
I'm getting an error when I compile that looks like this:
for d in i386-softmmu ppc-softmmu sparc-softmmu x86_64-softmmu; do \
gmake -C $d all || exit 1 ; \
done
gmake[1]: Entering directory
`/export/src/qemu-snapshot-2005-05-04_23-sol/i386-softmmu'
../dyngen -c -o opc.h op.o
dyngen: ret; restore; not found at end of op_fstt_ST0_A0
gmake[1]: *** [opc.h] Error 1
gmake[1]: Leaving directory
`/export/src/qemu-snapshot-2005-05-04_23-sol/i386-softmmu'
gmake: *** [all] Error 1
Ideas?
> >
> >
> >
> > 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")
>
>
>
> _______________________________________________
> Qemu-devel mailing list
> address@hidden
> http://lists.nongnu.org/mailman/listinfo/qemu-devel
>
- Re: [Qemu-devel] [PATCH] qemu-0.7.0 Solaris Host patch (Real), Nardmann, Heiko, 2005/05/02
- Re: Re: [Qemu-devel] [PATCH] qemu-0.7.0 Solaris Host patch (Real), Ben Taylor, 2005/05/02
- Re: [Qemu-devel] [PATCH] qemu-0.7.0 Solaris Host patch (Real), Juergen Keil, 2005/05/02
- Re: Re: [Qemu-devel] [PATCH] qemu-0.7.0 Solaris Host patch (Real), Juergen Keil, 2005/05/02
- Re: [Qemu-devel] [PATCH] qemu-0.7.0 Solaris Host patch (Real), Juergen Keil, 2005/05/03
- Re: Re: [Qemu-devel] [PATCH] qemu-0.7.0 Solaris Host patch (Real),
Ben Taylor <=
- Re: Re: [Qemu-devel] [PATCH] qemu-0.7.0 Solaris Host patch (Real), Juergen Keil, 2005/05/06
- Re: Re: [Qemu-devel] [PATCH] qemu-0.7.0 Solaris Host patch (Real), Ben Taylor, 2005/05/06
- Re: Re: [Qemu-devel] [PATCH] qemu-0.7.0 Solaris Host patch (Real), Ben Taylor, 2005/05/06
- Re: [Qemu-devel] [PATCH] qemu-0.7.0 Solaris Host patch (Real), Alex Beregszaszi, 2005/05/07