fixed a number of regressions, things are starting to load
--HG-- branch : refac-jit extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/branches/refac-jit%402395
This commit is contained in:
parent
85760603b7
commit
a88d7c1cdc
@ -239,7 +239,7 @@ void BaseRuntime::RefreshFunctionCache()
|
||||
{
|
||||
continue;
|
||||
}
|
||||
m_PubFuncs[i]->Set(pub->code_offs, this, pub->funcid, i);
|
||||
m_PubFuncs[i]->Set(pub->code_offs, this, (i << 1) | 1, i);
|
||||
}
|
||||
}
|
||||
|
||||
@ -261,7 +261,7 @@ IPluginFunction *BaseRuntime::GetFunctionById(funcid_t func_id)
|
||||
{
|
||||
m_PubFuncs[func_id] = new CFunction(m_pPlugin->publics[func_id].code_offs,
|
||||
this,
|
||||
m_pPlugin->publics[func_id].funcid,
|
||||
(func_id << 1) | 1,
|
||||
func_id);
|
||||
pFunc = m_PubFuncs[func_id];
|
||||
}
|
||||
@ -269,7 +269,7 @@ IPluginFunction *BaseRuntime::GetFunctionById(funcid_t func_id)
|
||||
{
|
||||
pFunc->Set(m_pPlugin->publics[func_id].code_offs,
|
||||
this,
|
||||
m_pPlugin->publics[func_id].funcid,
|
||||
(func_id << 1) | 1,
|
||||
func_id);
|
||||
}
|
||||
}
|
||||
@ -293,7 +293,7 @@ IPluginFunction *BaseRuntime::GetFunctionByName(const char *public_name)
|
||||
GetPublicByIndex(index, &pub);
|
||||
if (pub)
|
||||
{
|
||||
m_PubFuncs[index] = new CFunction(pub->code_offs, this, pub->funcid, index);
|
||||
m_PubFuncs[index] = new CFunction(pub->code_offs, this, (index << 1) | 1, index);
|
||||
}
|
||||
pFunc = m_PubFuncs[index];
|
||||
}
|
||||
@ -303,7 +303,7 @@ IPluginFunction *BaseRuntime::GetFunctionByName(const char *public_name)
|
||||
GetPublicByIndex(index, &pub);
|
||||
if (pub)
|
||||
{
|
||||
pFunc->Set(pub->code_offs, this, pub->funcid, index);
|
||||
pFunc->Set(pub->code_offs, this, (index << 1) | 1, index);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1,7 +1,8 @@
|
||||
# (C)2004-2008 SourceMod Development Team
|
||||
# Makefile written by David "BAILOPAN" Anderson
|
||||
|
||||
SMSDK = ../../..
|
||||
SMSDK = ../..
|
||||
SOURCEHOOK = ../../../sourcemm-1.6/sourcehook
|
||||
|
||||
#####################################
|
||||
### EDIT BELOW FOR OTHER PROJECTS ###
|
||||
@ -9,7 +10,26 @@ SMSDK = ../../..
|
||||
|
||||
PROJECT = sourcepawn.jit.x86
|
||||
|
||||
OBJECTS = dll_exports.cpp jit_x86.cpp opcode_helpers.cpp
|
||||
OBJECTS = dll_exports.cpp \
|
||||
x86/jit_x86.cpp \
|
||||
x86/opcode_helpers.cpp \
|
||||
sp_vm_basecontext.cpp \
|
||||
sp_vm_engine.cpp \
|
||||
sp_vm_function.cpp \
|
||||
engine2.cpp \
|
||||
BaseRuntime.cpp \
|
||||
zlib/adler32.c \
|
||||
zlib/compress.c \
|
||||
zlib/crc32.c \
|
||||
zlib/deflate.c \
|
||||
zlib/gzio.c \
|
||||
zlib/infback.c \
|
||||
zlib/inffast.c \
|
||||
zlib/inflate.c \
|
||||
zlib/inftrees.c \
|
||||
zlib/trees.c \
|
||||
zlib/uncompr.c \
|
||||
zlib/zutil.c
|
||||
|
||||
##############################################
|
||||
### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ###
|
||||
@ -24,7 +44,7 @@ CPP = gcc-4.1
|
||||
LINK = -static-libgcc
|
||||
|
||||
INCLUDE = -I. -I.. -I$(SMSDK)/public -I$(SMSDK)/public/jit -I$(SMSDK)/public/jit/x86 \
|
||||
-I$(SMSDK)/public/sourcepawn
|
||||
-I$(SMSDK)/public/sourcepawn -I$(SOURCEHOOK)
|
||||
|
||||
CFLAGS += -D_LINUX -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp \
|
||||
-D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca -Dstrcmpi=strcasecmp -Wall -DHAVE_STDINT_H \
|
||||
@ -52,12 +72,17 @@ endif
|
||||
BINARY = $(PROJECT).so
|
||||
|
||||
OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
|
||||
OBJ_LINUX := $(OBJ_LINUX:%.c=$(BIN_DIR)/%.o)
|
||||
|
||||
$(BIN_DIR)/%.o: %.c
|
||||
$(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $<
|
||||
|
||||
$(BIN_DIR)/%.o: %.cpp
|
||||
$(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
|
||||
|
||||
all:
|
||||
mkdir -p $(BIN_DIR)
|
||||
mkdir -p $(BIN_DIR)/x86
|
||||
mkdir -p $(BIN_DIR)/zlib
|
||||
$(MAKE) -f Makefile jit
|
||||
|
||||
jit: $(OBJ_LINUX)
|
||||
|
@ -125,6 +125,7 @@ IPluginRuntime *SourcePawnEngine2::LoadPlugin(ICompilation *co, const char *file
|
||||
uint8_t *base;
|
||||
int z_result;
|
||||
int error;
|
||||
BaseRuntime *pRuntime;
|
||||
|
||||
FILE *fp = fopen(file, "rb");
|
||||
|
||||
@ -203,7 +204,7 @@ IPluginRuntime *SourcePawnEngine2::LoadPlugin(ICompilation *co, const char *file
|
||||
return NULL;
|
||||
}
|
||||
|
||||
BaseRuntime *pRuntime = new BaseRuntime(plugin);
|
||||
pRuntime = new BaseRuntime(plugin);
|
||||
|
||||
if (co == NULL)
|
||||
{
|
||||
|
@ -262,7 +262,7 @@ int BaseContext::GetPubvarByIndex(uint32_t index, sp_pubvar_t **pubvar)
|
||||
|
||||
int BaseContext::FindPubvarByName(const char *name, uint32_t *index)
|
||||
{
|
||||
return m_pRuntime->FindPublicByName(name, index);
|
||||
return m_pRuntime->FindPubvarByName(name, index);
|
||||
}
|
||||
|
||||
int BaseContext::GetPubvarAddrs(uint32_t index, cell_t *local_addr, cell_t **phys_addr)
|
||||
|
@ -50,7 +50,7 @@ void CFunction::Set(uint32_t code_addr, BaseRuntime *runtime, funcid_t fnid, uin
|
||||
|
||||
bool CFunction::IsRunnable()
|
||||
{
|
||||
return m_pRuntime->IsPaused();
|
||||
return !m_pRuntime->IsPaused();
|
||||
}
|
||||
|
||||
int CFunction::CallFunction(const cell_t *params, unsigned int num_params, cell_t *result)
|
||||
|
Loading…
Reference in New Issue
Block a user