Juergen Keil <[EMAIL PROTECTED]> > > > 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 > Qemu-devel@nongnu.org > http://lists.nongnu.org/mailman/listinfo/qemu-devel > _______________________________________________ Qemu-devel mailing list Qemu-devel@nongnu.org http://lists.nongnu.org/mailman/listinfo/qemu-devel