From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1JvaLV-0001LY-5G for qemu-devel@nongnu.org; Mon, 12 May 2008 11:53:49 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1JvaLS-0001KT-OR for qemu-devel@nongnu.org; Mon, 12 May 2008 11:53:48 -0400 Received: from [199.232.76.173] (port=35619 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JvaLS-0001KL-CY for qemu-devel@nongnu.org; Mon, 12 May 2008 11:53:46 -0400 Received: from hobi.com ([130.94.185.247]:3245) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1JvaLR-0002Qg-AX for qemu-devel@nongnu.org; Mon, 12 May 2008 11:53:46 -0400 Received: from unknown (HELO ricklap) ([68.23.60.237]) (envelope-sender ) by 130.94.185.247 (qmail-ldap-1.03) with SMTP for ; 12 May 2008 15:53:38 -0000 From: Rick Vernam Subject: Re: [Qemu-devel] [4438] temporary hack to handle register shortage with dyngen for qemu_st64 () Date: Mon, 12 May 2008 10:53:37 -0500 References: In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200805121053.37322.rickv@hobi.com> Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org First, thanks to all for your time & energy... I saw all the changes, and decided to take it for a spin. (and yes, I know gcc4 is not 'supported' ...) It fails to compile in target-i386/translate.c ... I poked around a bit, but to no avail. Perhaps you knew about this, in which case sorry for the noise. ./configure --prefix=/usr/bin --enable-ac97 --enable-alsa --disable-vnc-tls --disable-gcc-check --target-list=x86_64-softmmu gcc -I. -I.. -I/home/rick/docs/qemu/trunk/target-i386 -I/home/rick/docs/qemu/trunk -MMD -MP -DNEED_CPU_H -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -I/home/rick/docs/qemu/trunk/tcg -I/home/rick/docs/qemu/trunk/tcg/x86_64 -I/home/rick/docs/qemu/trunk/fpu -DHAS_AUDIO -DHAS_AUDIO_CHOICE -I/home/rick/docs/qemu/trunk/slirp -Wall -O2 -g -fno-strict-aliasing -m64 -c -o helper2.o /home/rick/docs/qemu/trunk/target-i386/helper2.c gcc -I. -I.. -I/home/rick/docs/qemu/trunk/target-i386 -I/home/rick/docs/qemu/trunk -MMD -MP -DNEED_CPU_H -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -I/home/rick/docs/qemu/trunk/tcg -I/home/rick/docs/qemu/trunk/tcg/x86_64 -I/home/rick/docs/qemu/trunk/fpu -DHAS_AUDIO -DHAS_AUDIO_CHOICE -I/home/rick/docs/qemu/trunk/slirp -Wall -O2 -g -fno-strict-aliasing -m64 -c -o disas.o /home/rick/docs/qemu/trunk/disas.c rm -f libqemu.a ar rcs libqemu.a exec.o kqemu.o translate-all.o cpu-exec.o translate.o host-utils.o op.o tcg/tcg.o tcg/tcg-dyngen.o tcg/tcg-runtime.o fpu/softfloat-native.o helper.o helper2.o disas.o i386-dis.o gcc -g -m64 -o qemu-system-x86_64 vl.o osdep.o monitor.o pci.o loader.o isa_mmio.o machine.o block-raw-posix.o lsi53c895a.o esp.o usb-ohci.o eeprom93xx.o eepro100.o ne2000.o pcnet.o rtl8139.o e1000.o ide.o pckbd.o ps2.o vga.o sb16.o es1370.o ac97.o dma.o fdc.o mc146818rtc.o serial.o i8259.o i8254.o pcspk.o pc.o cirrus_vga.o apic.o parallel.o acpi.o piix_pci.o usb-uhci.o vmmouse.o vmport.o vmware_vga.o gdbstub.o ../libqemu_common.a libqemu.a -lm -lz -lasound -lrt -lpthread -lutil -lSDL -lpthread -lcurses libqemu.a(translate.o): In function `optimize_flags_init': /home/rick/docs/qemu/trunk/target-i386/translate.c:6694: undefined reference to `tcg_global_reg2_new_hack' collect2: ld returned 1 exit status On Monday 12 May 2008 08:49:16 am Fabrice Bellard wrote: > Revision: 4438 > http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=4438 > Author: bellard > Date: 2008-05-12 13:49:14 +0000 (Mon, 12 May 2008) > > Log Message: > ----------- > temporary hack to handle register shortage with dyngen for qemu_st64() > > Modified Paths: > -------------- > trunk/tcg/tcg.c > trunk/tcg/tcg.h > > Modified: trunk/tcg/tcg.c > =================================================================== > --- trunk/tcg/tcg.c 2008-05-12 12:23:31 UTC (rev 4437) > +++ trunk/tcg/tcg.c 2008-05-12 13:49:14 UTC (rev 4438) > @@ -308,6 +308,45 @@ > return MAKE_TCGV(idx); > } > > +#if TCG_TARGET_REG_BITS == 32 > +/* temporary hack to avoid register shortage for tcg_qemu_st64() */ > +TCGv tcg_global_reg2_new_hack(TCGType type, int reg1, int reg2, > + const char *name) > +{ > + TCGContext *s = &tcg_ctx; > + TCGTemp *ts; > + int idx; > + char buf[64]; > + > + if (type != TCG_TYPE_I64) > + tcg_abort(); > + idx = s->nb_globals; > + tcg_temp_alloc(s, s->nb_globals + 2); > + ts = &s->temps[s->nb_globals]; > + ts->base_type = type; > + ts->type = TCG_TYPE_I32; > + ts->fixed_reg = 1; > + ts->reg = reg1; > + ts->val_type = TEMP_VAL_REG; > + pstrcpy(buf, sizeof(buf), name); > + pstrcat(buf, sizeof(buf), "_0"); > + ts->name = strdup(buf); > + > + ts++; > + ts->base_type = type; > + ts->type = TCG_TYPE_I32; > + ts->fixed_reg = 1; > + ts->reg = reg2; > + ts->val_type = TEMP_VAL_REG; > + pstrcpy(buf, sizeof(buf), name); > + pstrcat(buf, sizeof(buf), "_1"); > + ts->name = strdup(buf); > + > + s->nb_globals += 2; > + return MAKE_TCGV(idx); > +} > +#endif > + > TCGv tcg_global_mem_new(TCGType type, int reg, tcg_target_long offset, > const char *name) > { > > Modified: trunk/tcg/tcg.h > =================================================================== > --- trunk/tcg/tcg.h 2008-05-12 12:23:31 UTC (rev 4437) > +++ trunk/tcg/tcg.h 2008-05-12 13:49:14 UTC (rev 4438) > @@ -267,6 +267,8 @@ > tcg_target_long start, tcg_target_long size); > void tcg_set_macro_func(TCGContext *s, TCGMacroFunc *func); > TCGv tcg_global_reg_new(TCGType type, int reg, const char *name); > +TCGv tcg_global_reg2_new_hack(TCGType type, int reg1, int reg2, > + const char *name); > TCGv tcg_global_mem_new(TCGType type, int reg, tcg_target_long offset, > const char *name); > TCGv tcg_temp_new(TCGType type);