mirror of
https://github.com/ioquake/ioq3.git
synced 2024-11-10 07:11:46 +00:00
fix build on ppc. no guarantee it runs though
This commit is contained in:
parent
4d2705d6c6
commit
109da009d2
2 changed files with 31 additions and 15 deletions
|
@ -450,11 +450,6 @@ vm_t *VM_Create( const char *module, int (*systemCalls)(int *),
|
||||||
Com_Error( ERR_FATAL, "VM_Create: bad parms" );
|
Com_Error( ERR_FATAL, "VM_Create: bad parms" );
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !defined(__i386__) && !defined(__ppc__)
|
|
||||||
if(interpret >= VMI_COMPILED)
|
|
||||||
interpret = VMI_BYTECODE;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
remaining = Hunk_MemoryRemaining();
|
remaining = Hunk_MemoryRemaining();
|
||||||
|
|
||||||
// see if we already have the VM
|
// see if we already have the VM
|
||||||
|
@ -481,6 +476,7 @@ vm_t *VM_Create( const char *module, int (*systemCalls)(int *),
|
||||||
Q_strncpyz( vm->name, module, sizeof( vm->name ) );
|
Q_strncpyz( vm->name, module, sizeof( vm->name ) );
|
||||||
vm->systemCall = systemCalls;
|
vm->systemCall = systemCalls;
|
||||||
|
|
||||||
|
#if defined(HAVE_VM_NATIVE)
|
||||||
// never allow dll loading with a demo
|
// never allow dll loading with a demo
|
||||||
if ( interpret == VMI_NATIVE ) {
|
if ( interpret == VMI_NATIVE ) {
|
||||||
if ( Cvar_VariableValue( "fs_restrict" ) ) {
|
if ( Cvar_VariableValue( "fs_restrict" ) ) {
|
||||||
|
@ -499,6 +495,12 @@ vm_t *VM_Create( const char *module, int (*systemCalls)(int *),
|
||||||
Com_Printf( "Failed to load dll, looking for qvm.\n" );
|
Com_Printf( "Failed to load dll, looking for qvm.\n" );
|
||||||
interpret = VMI_COMPILED;
|
interpret = VMI_COMPILED;
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
if ( interpret == VMI_NATIVE ) {
|
||||||
|
Com_Printf("Architecture doesn't support native dll's, using qvm\n");
|
||||||
|
interpret = VMI_COMPILED;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
// load the image
|
// load the image
|
||||||
Com_sprintf( filename, sizeof(filename), "vm/%s.qvm", vm->name );
|
Com_sprintf( filename, sizeof(filename), "vm/%s.qvm", vm->name );
|
||||||
|
@ -551,6 +553,13 @@ vm_t *VM_Create( const char *module, int (*systemCalls)(int *),
|
||||||
// copy or compile the instructions
|
// copy or compile the instructions
|
||||||
vm->codeLength = header->codeLength;
|
vm->codeLength = header->codeLength;
|
||||||
|
|
||||||
|
#if !defined(HAVE_VM_COMPILED)
|
||||||
|
if(interpret >= VMI_COMPILED) {
|
||||||
|
Com_Printf("Architecture doesn't have a bytecode compiler, using interpreter\n");
|
||||||
|
interpret = VMI_BYTECODE;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if ( interpret >= VMI_COMPILED ) {
|
if ( interpret >= VMI_COMPILED ) {
|
||||||
vm->compiled = qtrue;
|
vm->compiled = qtrue;
|
||||||
VM_Compile( vm, header );
|
VM_Compile( vm, header );
|
||||||
|
@ -707,10 +716,8 @@ int QDECL VM_Call( vm_t *vm, int callnum, ... ) {
|
||||||
args[4], args[5], args[6], args[7],
|
args[4], args[5], args[6], args[7],
|
||||||
args[8], args[9], args[10], args[11],
|
args[8], args[9], args[10], args[11],
|
||||||
args[12], args[13], args[14], args[15]);
|
args[12], args[13], args[14], args[15]);
|
||||||
#if defined(__ppc__) || defined(__i386__)
|
|
||||||
} else if ( vm->compiled ) {
|
} else if ( vm->compiled ) {
|
||||||
r = VM_CallCompiled( vm, &callnum );
|
r = VM_CallCompiled( vm, &callnum );
|
||||||
#endif
|
|
||||||
} else {
|
} else {
|
||||||
struct {
|
struct {
|
||||||
int callnum;
|
int callnum;
|
||||||
|
|
|
@ -103,6 +103,10 @@ ifeq ($(PLATFORM),linux)
|
||||||
else
|
else
|
||||||
ifeq ($(ARCH),x86_64)
|
ifeq ($(ARCH),x86_64)
|
||||||
LIB=lib64
|
LIB=lib64
|
||||||
|
else
|
||||||
|
ifeq ($(ARCH),ppc)
|
||||||
|
VM_PPC=vm_none
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -125,10 +129,15 @@ ifeq ($(PLATFORM),linux)
|
||||||
DEBUG_CFLAGS += -O0
|
DEBUG_CFLAGS += -O0
|
||||||
OPTIMIZE = -O3 -ffast-math -funroll-loops -fomit-frame-pointer -fno-strict-aliasing
|
OPTIMIZE = -O3 -ffast-math -funroll-loops -fomit-frame-pointer -fno-strict-aliasing
|
||||||
ifeq ($(ARCH),x86_64)
|
ifeq ($(ARCH),x86_64)
|
||||||
OPTIMIZE = -O3 -fomit-frame-pointer -ffast-math -falign-loops=2 -falign-jumps=2 -falign-functions=2 -fstrength-reduce -fno-strict-aliasing
|
OPTIMIZE = -O3 -fomit-frame-pointer -ffast-math -falign-loops=2 -falign-jumps=2 -falign-functions=2 -fstrength-reduce -fno-strict-aliasing
|
||||||
else
|
else
|
||||||
ifeq ($(ARCH),i386)
|
ifeq ($(ARCH),i386)
|
||||||
OPTIMIZE = -O3 -march=i686 -fomit-frame-pointer -ffast-math -falign-loops=2 -falign-jumps=2 -falign-functions=2 -fno-strict-aliasing -fstrength-reduce
|
OPTIMIZE = -O3 -march=i686 -fomit-frame-pointer -ffast-math -falign-loops=2 -falign-jumps=2 -falign-functions=2 -fno-strict-aliasing -fstrength-reduce
|
||||||
|
BASE_CFLAGS += -DHAVE_VM_NATIVE -DHAVE_VM_COMPILED
|
||||||
|
else
|
||||||
|
ifeq ($(ARCH),ppc)
|
||||||
|
BASE_CFLAGS += -DHAVE_VM_NATIVE
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -511,7 +520,7 @@ Q3OBJ = \
|
||||||
|
|
||||||
ifeq ($(ARCH),ppc)
|
ifeq ($(ARCH),ppc)
|
||||||
ifeq ($(DLL_ONLY),false)
|
ifeq ($(DLL_ONLY),false)
|
||||||
Q3OBJ += $(B)/client/vm_ppc.o
|
Q3OBJ += $(B)/client/$(VM_PPC).o
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -742,7 +751,7 @@ endif
|
||||||
|
|
||||||
ifeq ($(ARCH),ppc)
|
ifeq ($(ARCH),ppc)
|
||||||
ifeq ($(DLL_ONLY),false)
|
ifeq ($(DLL_ONLY),false)
|
||||||
$(B)/client/vm_ppc.o : $(CMDIR)/vm_ppc.c; $(DO_CC)
|
$(B)/client/$(VM_PPC).o : $(CMDIR)/$(VM_PPC).c; $(DO_CC)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -835,7 +844,7 @@ endif
|
||||||
|
|
||||||
ifeq ($(ARCH),ppc)
|
ifeq ($(ARCH),ppc)
|
||||||
ifeq ($(DLL_ONLY),false)
|
ifeq ($(DLL_ONLY),false)
|
||||||
Q3DOBJ += $(B)/ded/vm_ppc.o
|
Q3DOBJ += $(B)/ded/$(VM_PPC).o
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -920,7 +929,7 @@ endif
|
||||||
|
|
||||||
ifeq ($(ARCH),ppc)
|
ifeq ($(ARCH),ppc)
|
||||||
ifeq ($(DLL_ONLY),false)
|
ifeq ($(DLL_ONLY),false)
|
||||||
$(B)/ded/vm_ppc.o : $(CMDIR)/vm_ppc.c; $(DO_DED_CC)
|
$(B)/ded/$(VM_PPC).o : $(CMDIR)/$(VM_PPC).c; $(DO_DED_CC)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -1547,7 +1556,7 @@ endif
|
||||||
|
|
||||||
ifeq ($(ARCH),ppc)
|
ifeq ($(ARCH),ppc)
|
||||||
ifeq ($(DLL_ONLY),false)
|
ifeq ($(DLL_ONLY),false)
|
||||||
Q3SOBJ += $(B)/q3static/vm_ppc.o
|
Q3SOBJ += $(B)/q3static/$(VM_PPC).o
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -1706,7 +1715,7 @@ endif
|
||||||
|
|
||||||
ifeq ($(ARCH),ppc)
|
ifeq ($(ARCH),ppc)
|
||||||
ifeq ($(DLL_ONLY),false)
|
ifeq ($(DLL_ONLY),false)
|
||||||
$(B)/q3static/vm_ppc.o : $(CMDIR)/vm_ppc.c; $(DO_CC) -DQ3_STATIC
|
$(B)/q3static/$(VM_PPC).o : $(CMDIR)/$(VM_PPC).c; $(DO_CC) -DQ3_STATIC
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue