From 634c235dc2a5ea10608b32edb5f7f2549a85d1e4 Mon Sep 17 00:00:00 2001 From: TomW Date: Sat, 18 Jul 2015 16:03:39 +0100 Subject: [PATCH] Fix Linux build. Enable 64-bit recompiler in Linux. --- configure | 19 +++ configure.ac | 5 + src/Makefile.am | 9 +- src/Makefile.in | 254 ++++++++++++++++++++++------------- src/codegen.h | 4 +- src/codegen_x86-64.c | 83 ++++++++++-- src/resid-fp/convolve-sse.cc | 2 +- 7 files changed, 267 insertions(+), 109 deletions(-) diff --git a/configure b/configure index 1dbe769..0e3623c 100755 --- a/configure +++ b/configure @@ -567,6 +567,8 @@ OS_LINUX_FALSE OS_LINUX_TRUE OS_WIN_FALSE OS_WIN_TRUE +CPU_X86_64_FALSE +CPU_X86_64_TRUE CPU_I386_FALSE CPU_I386_TRUE DYNAREC_FALSE @@ -4027,6 +4029,11 @@ $as_echo_n "checking for cpu... " >&6; } i?86) CPU=i386 { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${host_cpu}" >&5 +$as_echo "${host_cpu}" >&6; } + ;; + x86_64) + CPU=x86_64 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${host_cpu}" >&5 $as_echo "${host_cpu}" >&6; } ;; *) @@ -4043,6 +4050,14 @@ else CPU_I386_FALSE= fi + if test "$CPU" = "x86_64"; then + CPU_X86_64_TRUE= + CPU_X86_64_FALSE='#' +else + CPU_X86_64_TRUE='#' + CPU_X86_64_FALSE= +fi + #AC_MSG_CHECKING([for libz]) #AX_CHECK_ZLIB @@ -4643,6 +4658,10 @@ if test -z "${CPU_I386_TRUE}" && test -z "${CPU_I386_FALSE}"; then as_fn_error "conditional \"CPU_I386\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${CPU_X86_64_TRUE}" && test -z "${CPU_X86_64_FALSE}"; then + as_fn_error "conditional \"CPU_X86_64\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${OS_WIN_TRUE}" && test -z "${OS_WIN_FALSE}"; then as_fn_error "conditional \"OS_WIN\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 diff --git a/configure.ac b/configure.ac index e9ac18d..1475f85 100644 --- a/configure.ac +++ b/configure.ac @@ -36,6 +36,10 @@ if test "$enable_dynarec" = "yes"; then CPU=i386 AC_MSG_RESULT(${host_cpu}) ;; + x86_64) + CPU=x86_64 + AC_MSG_RESULT(${host_cpu}) + ;; *) AC_MSG_ERROR([Unsupported CPU.]) ;; @@ -43,6 +47,7 @@ if test "$enable_dynarec" = "yes"; then fi AM_CONDITIONAL(CPU_I386, test "$CPU" = "i386") +AM_CONDITIONAL(CPU_X86_64, test "$CPU" = "x86_64") #AC_MSG_CHECKING([for libz]) #AX_CHECK_ZLIB diff --git a/src/Makefile.am b/src/Makefile.am index 14094b4..0966277 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -17,11 +17,11 @@ pcem_LDADD = $(allegro_LIBS) -lopenal -lalut pcem_SOURCES = 386.c 808x.c acer386sx.c ali1429.c allegro-gui.c allegro-gui-configure.c \ allegro-gui-hdconf.c allegro-joystick.c allegro-keyboard.c allegro-main.c \ allegro-midi.c allegro-mouse.c allegro-video.c amstrad.c cdrom-ioctl-linux.c cdrom-null.c \ -config.c cpu.c dac.c device.c disc.c disc_fdi.c disc_img.c dma.c fdc.c fdi2raw.c gameport.c \ +compaq.c config.c cpu.c dac.c device.c disc.c disc_fdi.c disc_img.c dma.c fdc.c fdc37c665.c fdi2raw.c gameport.c \ headland.c i430lx.c i430fx.c i430vx.c ide.c intel.c intel_flash.c io.c jim.c \ keyboard.c keyboard_amstrad.c keyboard_at.c keyboard_olim24.c keyboard_pcjr.c keyboard_xt.c \ linux-time.c lpt.c mcr.c mem.c model.c mouse.c mouse_ps2.c mouse_serial.c neat.c nmi.c nvr.c \ -olivetti_m24.c opti.c pc.c pci.c pic.c piix.c pit.c ppi.c rom.c serial.c sis496.c sound.c \ +olivetti_m24.c opti.c pc.c pci.c pic.c piix.c pit.c ppi.c ps1.c rom.c serial.c sis496.c sound.c \ sound_ad1848.c sound_adlib.c sound_adlibgold.c sound_cms.c sound_emu8k.c sound_gus.c \ sound_mpu401_uart.c sound_opl.c sound_pas16.c sound_sb.c sound_sb_dsp.c sound_sn76489.c \ sound_speaker.c sound_ssi2001.c sound_wss.c soundopenal.c thread-pthread.c timer.c um8669f.c \ @@ -48,6 +48,11 @@ codegen_timing_486.c codegen_timing_pentium.c if CPU_I386 pcem_SOURCES += codegen_x86.c endif + +if CPU_X86_64 +pcem_SOURCES += codegen_x86-64.c +endif + endif diff --git a/src/Makefile.in b/src/Makefile.in index d093075..c798ddc 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -43,6 +43,7 @@ bin_PROGRAMS = pcem$(EXEEXT) @DYNAREC_TRUE@codegen_timing_486.c codegen_timing_pentium.c @CPU_I386_TRUE@@DYNAREC_TRUE@am__append_3 = codegen_x86.c +@CPU_X86_64_TRUE@@DYNAREC_TRUE@am__append_4 = codegen_x86-64.c subdir = src DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 @@ -58,30 +59,31 @@ am__pcem_SOURCES_DIST = 386.c 808x.c acer386sx.c ali1429.c \ allegro-gui.c allegro-gui-configure.c allegro-gui-hdconf.c \ allegro-joystick.c allegro-keyboard.c allegro-main.c \ allegro-midi.c allegro-mouse.c allegro-video.c amstrad.c \ - cdrom-ioctl-linux.c cdrom-null.c config.c cpu.c dac.c device.c \ - disc.c disc_fdi.c disc_img.c dma.c fdc.c fdi2raw.c gameport.c \ - headland.c i430lx.c i430fx.c i430vx.c ide.c intel.c \ - intel_flash.c io.c jim.c keyboard.c keyboard_amstrad.c \ - keyboard_at.c keyboard_olim24.c keyboard_pcjr.c keyboard_xt.c \ - linux-time.c lpt.c mcr.c mem.c model.c mouse.c mouse_ps2.c \ - mouse_serial.c neat.c nmi.c nvr.c olivetti_m24.c opti.c pc.c \ - pci.c pic.c piix.c pit.c ppi.c rom.c serial.c sis496.c sound.c \ - sound_ad1848.c sound_adlib.c sound_adlibgold.c sound_cms.c \ - sound_emu8k.c sound_gus.c sound_mpu401_uart.c sound_opl.c \ - sound_pas16.c sound_sb.c sound_sb_dsp.c sound_sn76489.c \ - sound_speaker.c sound_ssi2001.c sound_wss.c soundopenal.c \ - thread-pthread.c timer.c um8669f.c um8881f.c vid_ati_eeprom.c \ - vid_ati_mach64.c vid_ati18800.c vid_ati28800.c \ - vid_ati68860_ramdac.c vid_cga.c vid_cl5429.c vid_ega.c \ - vid_et4000.c vid_et4000w32.c vid_hercules.c vid_icd2061.c \ - vid_ics2595.c vid_mda.c vid_olivetti_m24.c vid_oti067.c \ - vid_paradise.c vid_pc200.c vid_pc1512.c vid_pc1640.c \ - vid_pcjr.c vid_s3.c vid_s3_virge.c vid_sdac_ramdac.c \ - vid_stg_ramdac.c vid_svga.c vid_svga_render.c vid_tandy.c \ - vid_tgui9440.c vid_tkd8001_ramdac.c vid_tvga.c \ - vid_unk_ramdac.c vid_vga.c vid_voodoo.c video.c wd76c10.c \ - x86seg.c x87.c xtide.c sound_dbopl.cc sound_resid.cc \ - dosbox/dbopl.cpp resid-fp/convolve.cc resid-fp/convolve-sse.cc \ + cdrom-ioctl-linux.c cdrom-null.c compaq.c config.c cpu.c dac.c \ + device.c disc.c disc_fdi.c disc_img.c dma.c fdc.c fdc37c665.c \ + fdi2raw.c gameport.c headland.c i430lx.c i430fx.c i430vx.c \ + ide.c intel.c intel_flash.c io.c jim.c keyboard.c \ + keyboard_amstrad.c keyboard_at.c keyboard_olim24.c \ + keyboard_pcjr.c keyboard_xt.c linux-time.c lpt.c mcr.c mem.c \ + model.c mouse.c mouse_ps2.c mouse_serial.c neat.c nmi.c nvr.c \ + olivetti_m24.c opti.c pc.c pci.c pic.c piix.c pit.c ppi.c \ + ps1.c rom.c serial.c sis496.c sound.c sound_ad1848.c \ + sound_adlib.c sound_adlibgold.c sound_cms.c sound_emu8k.c \ + sound_gus.c sound_mpu401_uart.c sound_opl.c sound_pas16.c \ + sound_sb.c sound_sb_dsp.c sound_sn76489.c sound_speaker.c \ + sound_ssi2001.c sound_wss.c soundopenal.c thread-pthread.c \ + timer.c um8669f.c um8881f.c vid_ati_eeprom.c vid_ati_mach64.c \ + vid_ati18800.c vid_ati28800.c vid_ati68860_ramdac.c vid_cga.c \ + vid_cl5429.c vid_ega.c vid_et4000.c vid_et4000w32.c \ + vid_hercules.c vid_icd2061.c vid_ics2595.c vid_mda.c \ + vid_olivetti_m24.c vid_oti067.c vid_paradise.c vid_pc200.c \ + vid_pc1512.c vid_pc1640.c vid_pcjr.c vid_s3.c vid_s3_virge.c \ + vid_sdac_ramdac.c vid_stg_ramdac.c vid_svga.c \ + vid_svga_render.c vid_tandy.c vid_tgui9440.c \ + vid_tkd8001_ramdac.c vid_tvga.c vid_unk_ramdac.c vid_vga.c \ + vid_voodoo.c video.c wd76c10.c x86seg.c x87.c xtide.c \ + sound_dbopl.cc sound_resid.cc dosbox/dbopl.cpp \ + resid-fp/convolve.cc resid-fp/convolve-sse.cc \ resid-fp/envelope.cc resid-fp/extfilt.cc resid-fp/filter.cc \ resid-fp/pot.cc resid-fp/sid.cc resid-fp/voice.cc \ resid-fp/wave6581_PS_.cc resid-fp/wave6581_PST.cc \ @@ -90,7 +92,7 @@ am__pcem_SOURCES_DIST = 386.c 808x.c acer386sx.c ali1429.c \ resid-fp/wave8580_P_T.cc resid-fp/wave8580__ST.cc \ resid-fp/wave.cc 386_dynarec.c 386_dynarec_ops.c codegen.c \ codegen_ops.c codegen_timing_486.c codegen_timing_pentium.c \ - codegen_x86.c + codegen_x86.c codegen_x86-64.c @DYNAREC_TRUE@am__objects_1 = pcem-386_dynarec.$(OBJEXT) \ @DYNAREC_TRUE@ pcem-386_dynarec_ops.$(OBJEXT) \ @DYNAREC_TRUE@ pcem-codegen.$(OBJEXT) \ @@ -99,6 +101,8 @@ am__pcem_SOURCES_DIST = 386.c 808x.c acer386sx.c ali1429.c \ @DYNAREC_TRUE@ pcem-codegen_timing_pentium.$(OBJEXT) @CPU_I386_TRUE@@DYNAREC_TRUE@am__objects_2 = \ @CPU_I386_TRUE@@DYNAREC_TRUE@ pcem-codegen_x86.$(OBJEXT) +@CPU_X86_64_TRUE@@DYNAREC_TRUE@am__objects_3 = \ +@CPU_X86_64_TRUE@@DYNAREC_TRUE@ pcem-codegen_x86-64.$(OBJEXT) am_pcem_OBJECTS = pcem-386.$(OBJEXT) pcem-808x.$(OBJEXT) \ pcem-acer386sx.$(OBJEXT) pcem-ali1429.$(OBJEXT) \ pcem-allegro-gui.$(OBJEXT) \ @@ -109,15 +113,15 @@ am_pcem_OBJECTS = pcem-386.$(OBJEXT) pcem-808x.$(OBJEXT) \ pcem-allegro-midi.$(OBJEXT) pcem-allegro-mouse.$(OBJEXT) \ pcem-allegro-video.$(OBJEXT) pcem-amstrad.$(OBJEXT) \ pcem-cdrom-ioctl-linux.$(OBJEXT) pcem-cdrom-null.$(OBJEXT) \ - pcem-config.$(OBJEXT) pcem-cpu.$(OBJEXT) pcem-dac.$(OBJEXT) \ - pcem-device.$(OBJEXT) pcem-disc.$(OBJEXT) \ + pcem-compaq.$(OBJEXT) pcem-config.$(OBJEXT) pcem-cpu.$(OBJEXT) \ + pcem-dac.$(OBJEXT) pcem-device.$(OBJEXT) pcem-disc.$(OBJEXT) \ pcem-disc_fdi.$(OBJEXT) pcem-disc_img.$(OBJEXT) \ - pcem-dma.$(OBJEXT) pcem-fdc.$(OBJEXT) pcem-fdi2raw.$(OBJEXT) \ - pcem-gameport.$(OBJEXT) pcem-headland.$(OBJEXT) \ - pcem-i430lx.$(OBJEXT) pcem-i430fx.$(OBJEXT) \ - pcem-i430vx.$(OBJEXT) pcem-ide.$(OBJEXT) pcem-intel.$(OBJEXT) \ - pcem-intel_flash.$(OBJEXT) pcem-io.$(OBJEXT) \ - pcem-jim.$(OBJEXT) pcem-keyboard.$(OBJEXT) \ + pcem-dma.$(OBJEXT) pcem-fdc.$(OBJEXT) pcem-fdc37c665.$(OBJEXT) \ + pcem-fdi2raw.$(OBJEXT) pcem-gameport.$(OBJEXT) \ + pcem-headland.$(OBJEXT) pcem-i430lx.$(OBJEXT) \ + pcem-i430fx.$(OBJEXT) pcem-i430vx.$(OBJEXT) pcem-ide.$(OBJEXT) \ + pcem-intel.$(OBJEXT) pcem-intel_flash.$(OBJEXT) \ + pcem-io.$(OBJEXT) pcem-jim.$(OBJEXT) pcem-keyboard.$(OBJEXT) \ pcem-keyboard_amstrad.$(OBJEXT) pcem-keyboard_at.$(OBJEXT) \ pcem-keyboard_olim24.$(OBJEXT) pcem-keyboard_pcjr.$(OBJEXT) \ pcem-keyboard_xt.$(OBJEXT) pcem-linux-time.$(OBJEXT) \ @@ -128,45 +132,45 @@ am_pcem_OBJECTS = pcem-386.$(OBJEXT) pcem-808x.$(OBJEXT) \ pcem-olivetti_m24.$(OBJEXT) pcem-opti.$(OBJEXT) \ pcem-pc.$(OBJEXT) pcem-pci.$(OBJEXT) pcem-pic.$(OBJEXT) \ pcem-piix.$(OBJEXT) pcem-pit.$(OBJEXT) pcem-ppi.$(OBJEXT) \ - pcem-rom.$(OBJEXT) pcem-serial.$(OBJEXT) pcem-sis496.$(OBJEXT) \ - pcem-sound.$(OBJEXT) pcem-sound_ad1848.$(OBJEXT) \ - pcem-sound_adlib.$(OBJEXT) pcem-sound_adlibgold.$(OBJEXT) \ - pcem-sound_cms.$(OBJEXT) pcem-sound_emu8k.$(OBJEXT) \ - pcem-sound_gus.$(OBJEXT) pcem-sound_mpu401_uart.$(OBJEXT) \ - pcem-sound_opl.$(OBJEXT) pcem-sound_pas16.$(OBJEXT) \ - pcem-sound_sb.$(OBJEXT) pcem-sound_sb_dsp.$(OBJEXT) \ - pcem-sound_sn76489.$(OBJEXT) pcem-sound_speaker.$(OBJEXT) \ - pcem-sound_ssi2001.$(OBJEXT) pcem-sound_wss.$(OBJEXT) \ - pcem-soundopenal.$(OBJEXT) pcem-thread-pthread.$(OBJEXT) \ - pcem-timer.$(OBJEXT) pcem-um8669f.$(OBJEXT) \ - pcem-um8881f.$(OBJEXT) pcem-vid_ati_eeprom.$(OBJEXT) \ - pcem-vid_ati_mach64.$(OBJEXT) pcem-vid_ati18800.$(OBJEXT) \ - pcem-vid_ati28800.$(OBJEXT) pcem-vid_ati68860_ramdac.$(OBJEXT) \ - pcem-vid_cga.$(OBJEXT) pcem-vid_cl5429.$(OBJEXT) \ - pcem-vid_ega.$(OBJEXT) pcem-vid_et4000.$(OBJEXT) \ - pcem-vid_et4000w32.$(OBJEXT) pcem-vid_hercules.$(OBJEXT) \ - pcem-vid_icd2061.$(OBJEXT) pcem-vid_ics2595.$(OBJEXT) \ - pcem-vid_mda.$(OBJEXT) pcem-vid_olivetti_m24.$(OBJEXT) \ - pcem-vid_oti067.$(OBJEXT) pcem-vid_paradise.$(OBJEXT) \ - pcem-vid_pc200.$(OBJEXT) pcem-vid_pc1512.$(OBJEXT) \ - pcem-vid_pc1640.$(OBJEXT) pcem-vid_pcjr.$(OBJEXT) \ - pcem-vid_s3.$(OBJEXT) pcem-vid_s3_virge.$(OBJEXT) \ - pcem-vid_sdac_ramdac.$(OBJEXT) pcem-vid_stg_ramdac.$(OBJEXT) \ - pcem-vid_svga.$(OBJEXT) pcem-vid_svga_render.$(OBJEXT) \ - pcem-vid_tandy.$(OBJEXT) pcem-vid_tgui9440.$(OBJEXT) \ - pcem-vid_tkd8001_ramdac.$(OBJEXT) pcem-vid_tvga.$(OBJEXT) \ - pcem-vid_unk_ramdac.$(OBJEXT) pcem-vid_vga.$(OBJEXT) \ - pcem-vid_voodoo.$(OBJEXT) pcem-video.$(OBJEXT) \ - pcem-wd76c10.$(OBJEXT) pcem-x86seg.$(OBJEXT) \ - pcem-x87.$(OBJEXT) pcem-xtide.$(OBJEXT) sound_dbopl.$(OBJEXT) \ - sound_resid.$(OBJEXT) dbopl.$(OBJEXT) convolve.$(OBJEXT) \ - convolve-sse.$(OBJEXT) envelope.$(OBJEXT) extfilt.$(OBJEXT) \ - filter.$(OBJEXT) pot.$(OBJEXT) sid.$(OBJEXT) voice.$(OBJEXT) \ - wave6581_PS_.$(OBJEXT) wave6581_PST.$(OBJEXT) \ + pcem-ps1.$(OBJEXT) pcem-rom.$(OBJEXT) pcem-serial.$(OBJEXT) \ + pcem-sis496.$(OBJEXT) pcem-sound.$(OBJEXT) \ + pcem-sound_ad1848.$(OBJEXT) pcem-sound_adlib.$(OBJEXT) \ + pcem-sound_adlibgold.$(OBJEXT) pcem-sound_cms.$(OBJEXT) \ + pcem-sound_emu8k.$(OBJEXT) pcem-sound_gus.$(OBJEXT) \ + pcem-sound_mpu401_uart.$(OBJEXT) pcem-sound_opl.$(OBJEXT) \ + pcem-sound_pas16.$(OBJEXT) pcem-sound_sb.$(OBJEXT) \ + pcem-sound_sb_dsp.$(OBJEXT) pcem-sound_sn76489.$(OBJEXT) \ + pcem-sound_speaker.$(OBJEXT) pcem-sound_ssi2001.$(OBJEXT) \ + pcem-sound_wss.$(OBJEXT) pcem-soundopenal.$(OBJEXT) \ + pcem-thread-pthread.$(OBJEXT) pcem-timer.$(OBJEXT) \ + pcem-um8669f.$(OBJEXT) pcem-um8881f.$(OBJEXT) \ + pcem-vid_ati_eeprom.$(OBJEXT) pcem-vid_ati_mach64.$(OBJEXT) \ + pcem-vid_ati18800.$(OBJEXT) pcem-vid_ati28800.$(OBJEXT) \ + pcem-vid_ati68860_ramdac.$(OBJEXT) pcem-vid_cga.$(OBJEXT) \ + pcem-vid_cl5429.$(OBJEXT) pcem-vid_ega.$(OBJEXT) \ + pcem-vid_et4000.$(OBJEXT) pcem-vid_et4000w32.$(OBJEXT) \ + pcem-vid_hercules.$(OBJEXT) pcem-vid_icd2061.$(OBJEXT) \ + pcem-vid_ics2595.$(OBJEXT) pcem-vid_mda.$(OBJEXT) \ + pcem-vid_olivetti_m24.$(OBJEXT) pcem-vid_oti067.$(OBJEXT) \ + pcem-vid_paradise.$(OBJEXT) pcem-vid_pc200.$(OBJEXT) \ + pcem-vid_pc1512.$(OBJEXT) pcem-vid_pc1640.$(OBJEXT) \ + pcem-vid_pcjr.$(OBJEXT) pcem-vid_s3.$(OBJEXT) \ + pcem-vid_s3_virge.$(OBJEXT) pcem-vid_sdac_ramdac.$(OBJEXT) \ + pcem-vid_stg_ramdac.$(OBJEXT) pcem-vid_svga.$(OBJEXT) \ + pcem-vid_svga_render.$(OBJEXT) pcem-vid_tandy.$(OBJEXT) \ + pcem-vid_tgui9440.$(OBJEXT) pcem-vid_tkd8001_ramdac.$(OBJEXT) \ + pcem-vid_tvga.$(OBJEXT) pcem-vid_unk_ramdac.$(OBJEXT) \ + pcem-vid_vga.$(OBJEXT) pcem-vid_voodoo.$(OBJEXT) \ + pcem-video.$(OBJEXT) pcem-wd76c10.$(OBJEXT) \ + pcem-x86seg.$(OBJEXT) pcem-x87.$(OBJEXT) pcem-xtide.$(OBJEXT) \ + sound_dbopl.$(OBJEXT) sound_resid.$(OBJEXT) dbopl.$(OBJEXT) \ + convolve.$(OBJEXT) convolve-sse.$(OBJEXT) envelope.$(OBJEXT) \ + extfilt.$(OBJEXT) filter.$(OBJEXT) pot.$(OBJEXT) sid.$(OBJEXT) \ + voice.$(OBJEXT) wave6581_PS_.$(OBJEXT) wave6581_PST.$(OBJEXT) \ wave6581_P_T.$(OBJEXT) wave6581__ST.$(OBJEXT) \ wave8580_PS_.$(OBJEXT) wave8580_PST.$(OBJEXT) \ wave8580_P_T.$(OBJEXT) wave8580__ST.$(OBJEXT) wave.$(OBJEXT) \ - $(am__objects_1) $(am__objects_2) + $(am__objects_1) $(am__objects_2) $(am__objects_3) pcem_OBJECTS = $(am_pcem_OBJECTS) am__DEPENDENCIES_1 = pcem_DEPENDENCIES = $(am__DEPENDENCIES_1) @@ -295,37 +299,39 @@ pcem_SOURCES = 386.c 808x.c acer386sx.c ali1429.c allegro-gui.c \ allegro-gui-configure.c allegro-gui-hdconf.c \ allegro-joystick.c allegro-keyboard.c allegro-main.c \ allegro-midi.c allegro-mouse.c allegro-video.c amstrad.c \ - cdrom-ioctl-linux.c cdrom-null.c config.c cpu.c dac.c device.c \ - disc.c disc_fdi.c disc_img.c dma.c fdc.c fdi2raw.c gameport.c \ - headland.c i430lx.c i430fx.c i430vx.c ide.c intel.c \ - intel_flash.c io.c jim.c keyboard.c keyboard_amstrad.c \ - keyboard_at.c keyboard_olim24.c keyboard_pcjr.c keyboard_xt.c \ - linux-time.c lpt.c mcr.c mem.c model.c mouse.c mouse_ps2.c \ - mouse_serial.c neat.c nmi.c nvr.c olivetti_m24.c opti.c pc.c \ - pci.c pic.c piix.c pit.c ppi.c rom.c serial.c sis496.c sound.c \ - sound_ad1848.c sound_adlib.c sound_adlibgold.c sound_cms.c \ - sound_emu8k.c sound_gus.c sound_mpu401_uart.c sound_opl.c \ - sound_pas16.c sound_sb.c sound_sb_dsp.c sound_sn76489.c \ - sound_speaker.c sound_ssi2001.c sound_wss.c soundopenal.c \ - thread-pthread.c timer.c um8669f.c um8881f.c vid_ati_eeprom.c \ - vid_ati_mach64.c vid_ati18800.c vid_ati28800.c \ - vid_ati68860_ramdac.c vid_cga.c vid_cl5429.c vid_ega.c \ - vid_et4000.c vid_et4000w32.c vid_hercules.c vid_icd2061.c \ - vid_ics2595.c vid_mda.c vid_olivetti_m24.c vid_oti067.c \ - vid_paradise.c vid_pc200.c vid_pc1512.c vid_pc1640.c \ - vid_pcjr.c vid_s3.c vid_s3_virge.c vid_sdac_ramdac.c \ - vid_stg_ramdac.c vid_svga.c vid_svga_render.c vid_tandy.c \ - vid_tgui9440.c vid_tkd8001_ramdac.c vid_tvga.c \ - vid_unk_ramdac.c vid_vga.c vid_voodoo.c video.c wd76c10.c \ - x86seg.c x87.c xtide.c sound_dbopl.cc sound_resid.cc \ - dosbox/dbopl.cpp resid-fp/convolve.cc resid-fp/convolve-sse.cc \ + cdrom-ioctl-linux.c cdrom-null.c compaq.c config.c cpu.c dac.c \ + device.c disc.c disc_fdi.c disc_img.c dma.c fdc.c fdc37c665.c \ + fdi2raw.c gameport.c headland.c i430lx.c i430fx.c i430vx.c \ + ide.c intel.c intel_flash.c io.c jim.c keyboard.c \ + keyboard_amstrad.c keyboard_at.c keyboard_olim24.c \ + keyboard_pcjr.c keyboard_xt.c linux-time.c lpt.c mcr.c mem.c \ + model.c mouse.c mouse_ps2.c mouse_serial.c neat.c nmi.c nvr.c \ + olivetti_m24.c opti.c pc.c pci.c pic.c piix.c pit.c ppi.c \ + ps1.c rom.c serial.c sis496.c sound.c sound_ad1848.c \ + sound_adlib.c sound_adlibgold.c sound_cms.c sound_emu8k.c \ + sound_gus.c sound_mpu401_uart.c sound_opl.c sound_pas16.c \ + sound_sb.c sound_sb_dsp.c sound_sn76489.c sound_speaker.c \ + sound_ssi2001.c sound_wss.c soundopenal.c thread-pthread.c \ + timer.c um8669f.c um8881f.c vid_ati_eeprom.c vid_ati_mach64.c \ + vid_ati18800.c vid_ati28800.c vid_ati68860_ramdac.c vid_cga.c \ + vid_cl5429.c vid_ega.c vid_et4000.c vid_et4000w32.c \ + vid_hercules.c vid_icd2061.c vid_ics2595.c vid_mda.c \ + vid_olivetti_m24.c vid_oti067.c vid_paradise.c vid_pc200.c \ + vid_pc1512.c vid_pc1640.c vid_pcjr.c vid_s3.c vid_s3_virge.c \ + vid_sdac_ramdac.c vid_stg_ramdac.c vid_svga.c \ + vid_svga_render.c vid_tandy.c vid_tgui9440.c \ + vid_tkd8001_ramdac.c vid_tvga.c vid_unk_ramdac.c vid_vga.c \ + vid_voodoo.c video.c wd76c10.c x86seg.c x87.c xtide.c \ + sound_dbopl.cc sound_resid.cc dosbox/dbopl.cpp \ + resid-fp/convolve.cc resid-fp/convolve-sse.cc \ resid-fp/envelope.cc resid-fp/extfilt.cc resid-fp/filter.cc \ resid-fp/pot.cc resid-fp/sid.cc resid-fp/voice.cc \ resid-fp/wave6581_PS_.cc resid-fp/wave6581_PST.cc \ resid-fp/wave6581_P_T.cc resid-fp/wave6581__ST.cc \ resid-fp/wave8580_PS_.cc resid-fp/wave8580_PST.cc \ resid-fp/wave8580_P_T.cc resid-fp/wave8580__ST.cc \ - resid-fp/wave.cc $(am__append_2) $(am__append_3) + resid-fp/wave.cc $(am__append_2) $(am__append_3) \ + $(am__append_4) all: all-am .SUFFIXES: @@ -435,7 +441,9 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcem-codegen_ops.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcem-codegen_timing_486.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcem-codegen_timing_pentium.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcem-codegen_x86-64.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcem-codegen_x86.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcem-compaq.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcem-config.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcem-cpu.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcem-dac.Po@am__quote@ @@ -445,6 +453,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcem-disc_img.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcem-dma.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcem-fdc.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcem-fdc37c665.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcem-fdi2raw.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcem-gameport.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcem-headland.Po@am__quote@ @@ -481,6 +490,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcem-piix.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcem-pit.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcem-ppi.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcem-ps1.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcem-rom.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcem-serial.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcem-sis496.Po@am__quote@ @@ -797,6 +807,20 @@ pcem-cdrom-null.obj: cdrom-null.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcem_CFLAGS) $(CFLAGS) -c -o pcem-cdrom-null.obj `if test -f 'cdrom-null.c'; then $(CYGPATH_W) 'cdrom-null.c'; else $(CYGPATH_W) '$(srcdir)/cdrom-null.c'; fi` +pcem-compaq.o: compaq.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcem_CFLAGS) $(CFLAGS) -MT pcem-compaq.o -MD -MP -MF $(DEPDIR)/pcem-compaq.Tpo -c -o pcem-compaq.o `test -f 'compaq.c' || echo '$(srcdir)/'`compaq.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/pcem-compaq.Tpo $(DEPDIR)/pcem-compaq.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='compaq.c' object='pcem-compaq.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcem_CFLAGS) $(CFLAGS) -c -o pcem-compaq.o `test -f 'compaq.c' || echo '$(srcdir)/'`compaq.c + +pcem-compaq.obj: compaq.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcem_CFLAGS) $(CFLAGS) -MT pcem-compaq.obj -MD -MP -MF $(DEPDIR)/pcem-compaq.Tpo -c -o pcem-compaq.obj `if test -f 'compaq.c'; then $(CYGPATH_W) 'compaq.c'; else $(CYGPATH_W) '$(srcdir)/compaq.c'; fi` +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/pcem-compaq.Tpo $(DEPDIR)/pcem-compaq.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='compaq.c' object='pcem-compaq.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcem_CFLAGS) $(CFLAGS) -c -o pcem-compaq.obj `if test -f 'compaq.c'; then $(CYGPATH_W) 'compaq.c'; else $(CYGPATH_W) '$(srcdir)/compaq.c'; fi` + pcem-config.o: config.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcem_CFLAGS) $(CFLAGS) -MT pcem-config.o -MD -MP -MF $(DEPDIR)/pcem-config.Tpo -c -o pcem-config.o `test -f 'config.c' || echo '$(srcdir)/'`config.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/pcem-config.Tpo $(DEPDIR)/pcem-config.Po @@ -923,6 +947,20 @@ pcem-fdc.obj: fdc.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcem_CFLAGS) $(CFLAGS) -c -o pcem-fdc.obj `if test -f 'fdc.c'; then $(CYGPATH_W) 'fdc.c'; else $(CYGPATH_W) '$(srcdir)/fdc.c'; fi` +pcem-fdc37c665.o: fdc37c665.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcem_CFLAGS) $(CFLAGS) -MT pcem-fdc37c665.o -MD -MP -MF $(DEPDIR)/pcem-fdc37c665.Tpo -c -o pcem-fdc37c665.o `test -f 'fdc37c665.c' || echo '$(srcdir)/'`fdc37c665.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/pcem-fdc37c665.Tpo $(DEPDIR)/pcem-fdc37c665.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fdc37c665.c' object='pcem-fdc37c665.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcem_CFLAGS) $(CFLAGS) -c -o pcem-fdc37c665.o `test -f 'fdc37c665.c' || echo '$(srcdir)/'`fdc37c665.c + +pcem-fdc37c665.obj: fdc37c665.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcem_CFLAGS) $(CFLAGS) -MT pcem-fdc37c665.obj -MD -MP -MF $(DEPDIR)/pcem-fdc37c665.Tpo -c -o pcem-fdc37c665.obj `if test -f 'fdc37c665.c'; then $(CYGPATH_W) 'fdc37c665.c'; else $(CYGPATH_W) '$(srcdir)/fdc37c665.c'; fi` +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/pcem-fdc37c665.Tpo $(DEPDIR)/pcem-fdc37c665.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fdc37c665.c' object='pcem-fdc37c665.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcem_CFLAGS) $(CFLAGS) -c -o pcem-fdc37c665.obj `if test -f 'fdc37c665.c'; then $(CYGPATH_W) 'fdc37c665.c'; else $(CYGPATH_W) '$(srcdir)/fdc37c665.c'; fi` + pcem-fdi2raw.o: fdi2raw.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcem_CFLAGS) $(CFLAGS) -MT pcem-fdi2raw.o -MD -MP -MF $(DEPDIR)/pcem-fdi2raw.Tpo -c -o pcem-fdi2raw.o `test -f 'fdi2raw.c' || echo '$(srcdir)/'`fdi2raw.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/pcem-fdi2raw.Tpo $(DEPDIR)/pcem-fdi2raw.Po @@ -1427,6 +1465,20 @@ pcem-ppi.obj: ppi.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcem_CFLAGS) $(CFLAGS) -c -o pcem-ppi.obj `if test -f 'ppi.c'; then $(CYGPATH_W) 'ppi.c'; else $(CYGPATH_W) '$(srcdir)/ppi.c'; fi` +pcem-ps1.o: ps1.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcem_CFLAGS) $(CFLAGS) -MT pcem-ps1.o -MD -MP -MF $(DEPDIR)/pcem-ps1.Tpo -c -o pcem-ps1.o `test -f 'ps1.c' || echo '$(srcdir)/'`ps1.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/pcem-ps1.Tpo $(DEPDIR)/pcem-ps1.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ps1.c' object='pcem-ps1.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcem_CFLAGS) $(CFLAGS) -c -o pcem-ps1.o `test -f 'ps1.c' || echo '$(srcdir)/'`ps1.c + +pcem-ps1.obj: ps1.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcem_CFLAGS) $(CFLAGS) -MT pcem-ps1.obj -MD -MP -MF $(DEPDIR)/pcem-ps1.Tpo -c -o pcem-ps1.obj `if test -f 'ps1.c'; then $(CYGPATH_W) 'ps1.c'; else $(CYGPATH_W) '$(srcdir)/ps1.c'; fi` +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/pcem-ps1.Tpo $(DEPDIR)/pcem-ps1.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ps1.c' object='pcem-ps1.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcem_CFLAGS) $(CFLAGS) -c -o pcem-ps1.obj `if test -f 'ps1.c'; then $(CYGPATH_W) 'ps1.c'; else $(CYGPATH_W) '$(srcdir)/ps1.c'; fi` + pcem-rom.o: rom.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcem_CFLAGS) $(CFLAGS) -MT pcem-rom.o -MD -MP -MF $(DEPDIR)/pcem-rom.Tpo -c -o pcem-rom.o `test -f 'rom.c' || echo '$(srcdir)/'`rom.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/pcem-rom.Tpo $(DEPDIR)/pcem-rom.Po @@ -2407,6 +2459,20 @@ pcem-codegen_x86.obj: codegen_x86.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcem_CFLAGS) $(CFLAGS) -c -o pcem-codegen_x86.obj `if test -f 'codegen_x86.c'; then $(CYGPATH_W) 'codegen_x86.c'; else $(CYGPATH_W) '$(srcdir)/codegen_x86.c'; fi` +pcem-codegen_x86-64.o: codegen_x86-64.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcem_CFLAGS) $(CFLAGS) -MT pcem-codegen_x86-64.o -MD -MP -MF $(DEPDIR)/pcem-codegen_x86-64.Tpo -c -o pcem-codegen_x86-64.o `test -f 'codegen_x86-64.c' || echo '$(srcdir)/'`codegen_x86-64.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/pcem-codegen_x86-64.Tpo $(DEPDIR)/pcem-codegen_x86-64.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='codegen_x86-64.c' object='pcem-codegen_x86-64.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcem_CFLAGS) $(CFLAGS) -c -o pcem-codegen_x86-64.o `test -f 'codegen_x86-64.c' || echo '$(srcdir)/'`codegen_x86-64.c + +pcem-codegen_x86-64.obj: codegen_x86-64.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcem_CFLAGS) $(CFLAGS) -MT pcem-codegen_x86-64.obj -MD -MP -MF $(DEPDIR)/pcem-codegen_x86-64.Tpo -c -o pcem-codegen_x86-64.obj `if test -f 'codegen_x86-64.c'; then $(CYGPATH_W) 'codegen_x86-64.c'; else $(CYGPATH_W) '$(srcdir)/codegen_x86-64.c'; fi` +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/pcem-codegen_x86-64.Tpo $(DEPDIR)/pcem-codegen_x86-64.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='codegen_x86-64.c' object='pcem-codegen_x86-64.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcem_CFLAGS) $(CFLAGS) -c -o pcem-codegen_x86-64.obj `if test -f 'codegen_x86-64.c'; then $(CYGPATH_W) 'codegen_x86-64.c'; else $(CYGPATH_W) '$(srcdir)/codegen_x86-64.c'; fi` + .cc.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po diff --git a/src/codegen.h b/src/codegen.h index 7292a24..b6af088 100644 --- a/src/codegen.h +++ b/src/codegen.h @@ -1,6 +1,8 @@ #ifdef DYNAREC -#if defined i386 || defined __i386 || defined __i386__ || defined _X86_ || defined WIN32 || defined _WIN32 || defined _WIN32 +#ifdef __amd64__ +#include "codegen_x86-64.h" +#elif defined i386 || defined __i386 || defined __i386__ || defined _X86_ || defined WIN32 || defined _WIN32 || defined _WIN32 #include "codegen_x86.h" #else #error Dynamic recompiler not implemented on your platform diff --git a/src/codegen_x86-64.c b/src/codegen_x86-64.c index dd1422c..dd1abba 100644 --- a/src/codegen_x86-64.c +++ b/src/codegen_x86-64.c @@ -24,6 +24,65 @@ #include #endif +static void load_param_1_32(codeblock_t *block, uint32_t param) +{ +#if WIN64 + addbyte(0xb9); /*MOVL $fetchdat,%ecx*/ +#else + addbyte(0xbf); /*MOVL $fetchdat,%edi*/ +#endif + addlong(param); +} +static void load_param_1_64(codeblock_t *block, uint64_t param) +{ + addbyte(0x48); +#if WIN64 + addbyte(0xb9); /*MOVL $fetchdat,%ecx*/ +#else + addbyte(0xbf); /*MOVL $fetchdat,%edi*/ +#endif + addquad(param); +} + +static void load_param_2_32(codeblock_t *block, uint32_t param) +{ +#if WIN64 + addbyte(0xba); /*MOVL $fetchdat,%edx*/ +#else + addbyte(0xbe); /*MOVL $fetchdat,%esi*/ +#endif + addlong(param); +} +static void load_param_2_64(codeblock_t *block, uint64_t param) +{ + addbyte(0x48); +#if WIN64 + addbyte(0xba); /*MOVL $fetchdat,%edx*/ +#else + addbyte(0xbe); /*MOVL $fetchdat,%esi*/ +#endif + addquad(param); +} + +static void call(codeblock_t *block, uintptr_t func) +{ + uintptr_t diff = func - (uintptr_t)&block->data[block_pos + 5]; + + if (diff >= -0x80000000 && diff < 0x7fffffff) + { + addbyte(0xE8); /*CALL*/ + addlong((uint32_t)diff); + } + else + { + addbyte(0x48); /*MOV RAX, func*/ + addbyte(0xb8); + addquad(func); + addbyte(0xff); /*CALL RAX*/ + addbyte(0xd0); + } +} + int codegen_flags_changed = 0; int codegen_fpu_entered = 0; int codegen_fpu_loaded_iq[8]; @@ -224,13 +283,20 @@ void codegen_block_init(uint32_t phys_addr) block->next = block->prev = NULL; block_pos = BLOCK_GPF_OFFSET; +#if WIN64 addbyte(0x48); /*XOR RCX, RCX*/ addbyte(0x31); addbyte(0xc9); - addbyte(0xe1); /*XOR EDX, EDX*/ + addbyte(0x31); /*XOR EDX, EDX*/ addbyte(0xd2); - addbyte(0xe8); /*CALL x86gpf*/ - addlong((uint32_t)x86gpf - (uint32_t)(&codeblock[block_current].data[block_pos + 4])); +#else + addbyte(0x48); /*XOR RDI, RDI*/ + addbyte(0x31); + addbyte(0xff); + addbyte(0x31); /*XOR ESI, ESI*/ + addbyte(0xf6); +#endif + call(block, (uintptr_t)x86gpf); block_pos = BLOCK_EXIT_OFFSET; /*Exit code*/ addbyte(0x48); /*ADDL $32,%rsp*/ addbyte(0x83); @@ -849,7 +915,6 @@ void codegen_generate_call(uint8_t opcode, OpFn op, uint32_t fetchdat, uint32_t opcode = fetchdat & 0xff; if (!pc_off) fetchdat >>= 8; - op_pc++; } @@ -1003,11 +1068,8 @@ generate_call: addlong(op_32); } - addbyte(0xb9); /*MOVL $fetchdat,%ecx*/ - addlong(fetchdat); - - addbyte(0xE8); /*CALL*/ - addlong(((uint8_t *)op - (uint8_t *)(&block->data[block_pos + 4]))); + load_param_1_32(block, fetchdat); + call(block, (uintptr_t)op); codegen_block_ins++; @@ -1018,8 +1080,7 @@ generate_call: addbyte(0x0F); addbyte(0x85); /*JNZ 0*/ addlong((uint32_t)&block->data[BLOCK_EXIT_OFFSET] - (uint32_t)(&block->data[block_pos + 4])); -// addbyte(0xE8); /*CALL*/ -// addlong(((uint8_t *)codegen_debug - (uint8_t *)(&block->data[block_pos + 4]))); +// call(block, codegen_debug); codegen_endpc = (cs + pc) + 8; } diff --git a/src/resid-fp/convolve-sse.cc b/src/resid-fp/convolve-sse.cc index 92c35d4..27a8e80 100644 --- a/src/resid-fp/convolve-sse.cc +++ b/src/resid-fp/convolve-sse.cc @@ -16,7 +16,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // --------------------------------------------------------------------------- - +#include #include "sid.h" #if (RESID_USE_SSE==1)