(PSP/PS3) Resolve namespace conflict with memcpy16 for PS3 -

Fix remaining PSP build problems
This commit is contained in:
twinaphex 2014-03-04 06:13:46 +01:00
parent f18d0e083c
commit bee555aeac
7 changed files with 66 additions and 17 deletions

View File

@ -152,10 +152,12 @@ else
OBJS += platform/common/mp3_dummy.o
endif
ifneq "$(DONT_COMPILE_IN_ZLIB)" "1"
# zlib
OBJS += zlib/gzio.o zlib/inffast.o zlib/inflate.o zlib/inftrees.o zlib/trees.o \
zlib/deflate.o zlib/crc32.o zlib/adler32.o zlib/zutil.o zlib/compress.o zlib/uncompr.o
# unzip
endif
OBJS += unzip/unzip.o unzip/unzip_stream.o

View File

@ -60,30 +60,77 @@ else ifeq ($(platform), ps3)
CC = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-gcc.exe
AR = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-ar.exe
CFLAGS += -DBLARGG_BIG_ENDIAN=1 -D__ppc__
STATIC_LINKING = 1
NO_MMAP = 1
DONT_COMPILE_IN_ZLIB = 1
asm_memory = 0
asm_render = 0
asm_ym2612 = 0
asm_misc = 0
asm_cdpico = 0
asm_cdmemory = 0
asm_mix = 0
use_cyclone = 0
use_fame = 1
use_drz80 = 0
use_cz80 = 1
else ifeq ($(platform), sncps3)
TARGET := $(TARGET_NAME)_libretro_ps3.a
CC = $(CELL_SDK)/host-win32/sn/bin/ps3ppusnc.exe
AR = $(CELL_SDK)/host-win32/sn/bin/ps3snarl.exe
CFLAGS += -DBLARGG_BIG_ENDIAN=1 -D__ppc__
STATIC_LINKING = 1
NO_MMAP = 1
DONT_COMPILE_IN_ZLIB = 1
asm_memory = 0
asm_render = 0
asm_ym2612 = 0
asm_misc = 0
asm_cdpico = 0
asm_cdmemory = 0
asm_mix = 0
use_cyclone = 0
use_fame = 1
use_drz80 = 0
use_cz80 = 1
else ifeq ($(platform), psl1ght)
TARGET := $(TARGET_NAME)_libretro_psl1ght.a
CC = $(PS3DEV)/ppu/bin/ppu-gcc$(EXE_EXT)
AR = $(PS3DEV)/ppu/bin/ppu-ar$(EXE_EXT)
CFLAGS += -DBLARGG_BIG_ENDIAN=1 -D__ppc__
STATIC_LINKING = 1
NO_MMAP = 1
DONT_COMPILE_IN_ZLIB = 1
asm_memory = 0
asm_render = 0
asm_ym2612 = 0
asm_misc = 0
asm_cdpico = 0
asm_cdmemory = 0
asm_mix = 0
use_cyclone = 0
use_fame = 1
use_drz80 = 0
use_cz80 = 1
else ifeq ($(platform), psp1)
TARGET := $(TARGET_NAME)_libretro_psp1.a
CC = psp-gcc$(EXE_EXT)
AR = psp-ar$(EXE_EXT)
CFLAGS += -DPSP -G0
CFLAGS += -G0
STATIC_LINKING = 1
NO_MMAP = 1
DONT_COMPILE_IN_ZLIB = 1
asm_memory = 0
asm_render = 0
asm_ym2612 = 0
asm_misc = 0
asm_cdpico = 0
asm_cdmemory = 0
asm_mix = 0
asm_memory = 0
asm_render = 0
asm_ym2612 = 0
asm_misc = 0
asm_cdpico = 0
asm_cdmemory = 0
asm_mix = 0
use_cyclone = 0
use_fame = 1
use_drz80 = 0
@ -146,6 +193,10 @@ else
CFLAGS += -D__WIN32__ -D__WIN32_LIBRETRO__
endif
ifeq ($(NO_MMAP),1)
CFLAGS += -DNO_MMAP
endif
ifeq ($(ARM_ASM),1)
asm_memory = 1
asm_render = 1

View File

@ -99,7 +99,7 @@ typedef struct
int b7;
} intblock;
PICO_INTERNAL_ASM void memcpy16(unsigned short *dest, unsigned short *src, int count)
PICO_INTERNAL_ASM void pmemcpy16(unsigned short *dest, unsigned short *src, int count)
{
if ((((long)dest | (long)src) & 3) == 0)
{

View File

@ -6,9 +6,9 @@
* See COPYING file in the top-level directory.
*/
.global memcpy16 @ unsigned short *dest, unsigned short *src, int count
.global pmemcpy16 @ unsigned short *dest, unsigned short *src, int count
memcpy16:
pmemcpy16:
eor r3, r0, r1
tst r3, #2
bne mcp16_cant_align

View File

@ -768,7 +768,7 @@ PICO_INTERNAL_ASM unsigned int PicoVideoRead8(unsigned int a);
extern int (*PicoDmaHook)(unsigned int source, int len, unsigned short **srcp, unsigned short **limitp);
// misc.c
PICO_INTERNAL_ASM void memcpy16(unsigned short *dest, unsigned short *src, int count);
PICO_INTERNAL_ASM void pmemcpy16(unsigned short *dest, unsigned short *src, int count);
PICO_INTERNAL_ASM void memcpy16bswap(unsigned short *dest, void *src, int count);
PICO_INTERNAL_ASM void memcpy32(int *dest, int *src, int count); // 32bit word count
PICO_INTERNAL_ASM void memset32(int *dest, int c, int count);

View File

@ -156,7 +156,7 @@ static void DmaSlow(int len)
if (inc == 2 && !(a&1) && a+len*2 < 0x10000)
{
// most used DMA mode
memcpy16(r + (a>>1), pd, len);
pmemcpy16(r + (a>>1), pd, len);
a += len*2;
}
else

View File

@ -6,10 +6,6 @@
* See COPYING file in the top-level directory.
*/
#ifdef PSP
#define NO_MMAP
#endif
#define _GNU_SOURCE 1 // mremap
#include <stdio.h>
#include <stdarg.h>