add x86_64 vm. experimental, not enabled by default. you need as for it
to work.
This commit is contained in:
parent
9af615f27c
commit
0bf8e3a8b0
8 changed files with 1304 additions and 10 deletions
|
@ -286,7 +286,7 @@ Cvar_Set2
|
|||
cvar_t *Cvar_Set2( const char *var_name, const char *value, qboolean force ) {
|
||||
cvar_t *var;
|
||||
|
||||
Com_DPrintf( "Cvar_Set2: %s %s\n", var_name, value );
|
||||
// Com_DPrintf( "Cvar_Set2: %s %s\n", var_name, value );
|
||||
|
||||
if ( !Cvar_ValidateString( var_name ) ) {
|
||||
Com_Printf("invalid cvar name string: %s\n", var_name );
|
||||
|
|
|
@ -547,6 +547,8 @@ void FS_FreeFileList( char **list );
|
|||
|
||||
qboolean FS_FileExists( const char *file );
|
||||
|
||||
char *FS_BuildOSPath( const char *base, const char *game, const char *qpath );
|
||||
|
||||
int FS_LoadStack( void );
|
||||
|
||||
int FS_GetFileList( const char *path, const char *extension, char *listbuf, int bufsize );
|
||||
|
@ -603,7 +605,7 @@ int FS_FTell( fileHandle_t f );
|
|||
|
||||
void FS_Flush( fileHandle_t f );
|
||||
|
||||
void QDECL FS_Printf( fileHandle_t f, const char *fmt, ... );
|
||||
void QDECL FS_Printf( fileHandle_t f, const char *fmt, ... ) __attribute__ ((format (printf, 2, 3)));
|
||||
// like fprintf
|
||||
|
||||
int FS_FOpenFileByMode( const char *qpath, fileHandle_t *f, fsMode_t mode );
|
||||
|
|
|
@ -745,12 +745,15 @@ long QDECL VM_Call( vm_t *vm, long callnum, ... ) {
|
|||
args[4], args[5], args[6], args[7],
|
||||
args[8], args[9], args[10], args[11],
|
||||
args[12], args[13], args[14], args[15]);
|
||||
#if defined(HAVE_VM_COMPILED)
|
||||
} else if ( vm->compiled ) {
|
||||
// only used on 32bit machines so this cast is fine
|
||||
r = VM_CallCompiled( vm, (int*)&callnum );
|
||||
#endif
|
||||
} else {
|
||||
#ifdef __i386__ // i386 calling convention doesn't need conversion
|
||||
#if defined(HAVE_VM_COMPILED)
|
||||
if ( vm->compiled )
|
||||
r = VM_CallCompiled( vm, (int*)callnum );
|
||||
else
|
||||
#endif
|
||||
r = VM_CallInterpreted( vm, (int*)callnum );
|
||||
#else
|
||||
struct {
|
||||
int callnum;
|
||||
int args[16];
|
||||
|
@ -763,7 +766,13 @@ long QDECL VM_Call( vm_t *vm, long callnum, ... ) {
|
|||
a.args[i] = va_arg(ap, long);
|
||||
}
|
||||
va_end(ap);
|
||||
r = VM_CallInterpreted( vm, &a.callnum );
|
||||
#if defined(HAVE_VM_COMPILED)
|
||||
if ( vm->compiled )
|
||||
r = VM_CallCompiled( vm, &a.callnum );
|
||||
else
|
||||
#endif
|
||||
r = VM_CallInterpreted( vm, &a.callnum );
|
||||
#endif
|
||||
}
|
||||
|
||||
if ( oldVM != NULL ) // bk001220 - assert(currentVM!=NULL) for oldVM==NULL
|
||||
|
|
1264
code/qcommon/vm_x86_64.c
Normal file
1264
code/qcommon/vm_x86_64.c
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue