Nicholas Hastings
c62e7458f9
Disable RTTI for Loader, Logic, and JIT bins
2014-09-11 17:15:59 -07:00
David Anderson
d230711e4d
Bump SourcePawn version to 1.7 to match SourceMod.
2014-08-23 19:26:51 -07:00
David Anderson
c4056aea5d
Rewrite the assembly pipeline.
...
This patch uses SmxBuilder from spcomp2 to replace the old assemble()
pipeline. Instead of generating into an old AMX structure, and then
decoding that into SMX, we now directly generate into SMX. This greatly
simplifies code generation and smx building.
2014-08-23 13:25:58 -07:00
David Anderson
d562593d31
Fix build.
2014-08-22 18:27:46 -07:00
David Anderson
225954a27c
Modernize the smx headers.
2014-08-21 22:16:07 -07:00
Ryan Stecker
6864bf0068
Only spew JIT compilation and opcodes when built with JIT_SPEW defined.
2014-07-05 10:57:08 -05:00
Ryan Stecker
db98c98a1a
Remove the /TP (compile as C++) msvc flag from projects that should be compiling as C.
2014-07-02 13:46:39 -05:00
David Anderson
ec61d4d188
Add a general profiling abstraction layer.
2014-06-24 01:04:13 -07:00
Kyle Sanderson
9c62e94239
Optimize native call if statically bound (bug 5842, r=ds,fyren f=dvander).
...
Original patch written by David Anderson (original r from Fyren).
- Updated to function with the current JIT compiler.
- Took in clean-ups from later-dated patches.
2014-05-11 14:36:32 -07:00
David Anderson
e69e9eddc7
Change float comparison operators to return false for NaN (bug 6107, r=ds).
...
--HG--
extra : rebase_source : a11c56fb23d6617545def3591ec6100dd143eb3e
2014-04-22 19:40:45 -07:00
Scott Ehlert
e00e879af5
Use == instead of is operator for checking string equality in AMBuild scripts (bug 6043, r=dvander).
2014-02-09 22:50:20 -06:00
David Anderson
f82224eba0
Move versioning to a static library to improve trivial build speed (bug 5997 part 9, r=ds).
2013-12-30 17:51:00 -05:00
David Anderson
e1a820dcf9
Port simple C++ build scripts to AMBuild 2 (bug 5997 part 1, r=ds).
2013-12-30 17:50:56 -05:00
David Anderson
96d6cf8def
Fix some memory errors (bug 5904, r=ds).
2013-10-29 18:58:34 -04:00
Nicholas Hastings
55bf8ec095
Fix watchdog timer hanging on exit (r=dvander).
2013-09-23 22:29:28 -04:00
David Anderson
f9f4c7dcd6
Add an interpreter because. (bug 5902, r=ds).
2013-09-01 00:23:44 -07:00
Nicholas Hastings
124ede82b3
Fix build.
2013-08-29 15:05:34 -04:00
Nicholas Hastings
1c40d77b14
Fix build.
2013-08-29 14:16:18 -04:00
Kyle Sanderson
d05feabcd6
Suppress SpewOpcode if not a debug build (bug 5859, r=dvander).
2013-08-27 08:39:15 -04:00
David Anderson
90a2d1bb39
Update AMTL with a number of changes.
...
- Introduce HashMap, a key-value map based on HashTable.
- Introduce LinkedList, to port from SourceHook::List.
- Introduce AString, to port from SourceHook::String.
- Introduce KE_OVERRIDE and KE_DELETE helpers for C++11.
- HashTable now constructs/destructs only live items.
- Fix insert-on-removed-item bug in HashTable.
- Fix Vector keeping a new maxsize if allocation fails.
- Renamed am-inline-list.h to am-inlinelist.h.
--HG--
rename : public/amtl/am-inline-list.h => public/amtl/am-inlinelist.h
2013-08-23 22:29:44 -07:00
David Anderson
d6a6194e68
Make amtl headers BSD-licensed and clean up outstanding style issues.
2013-08-22 17:11:17 -07:00
David Anderson
c373527851
Rename ke_* headers to am-*
...
--HG--
rename : public/amtl/ke_allocator_policies.h => public/amtl/am-allocator-policies.h
rename : public/amtl/ke_inline_list.h => public/amtl/am-inline-list.h
rename : public/amtl/ke_thread_posix.h => public/amtl/am-thread-posix.h
rename : public/amtl/ke_thread_utils.h => public/amtl/am-thread-utils.h
rename : public/amtl/ke_thread_windows.h => public/amtl/am-thread-windows.h
rename : public/amtl/ke_utility.h => public/amtl/am-utility.h
rename : public/amtl/ke_vector.h => public/amtl/am-vector.h
2013-08-22 17:10:59 -07:00
David Anderson
de8726ab73
Move ke_ headers to new public/amtl folder.
...
--HG--
rename : public/sourcepawn/ke_allocator_policies.h => public/amtl/ke_allocator_policies.h
rename : public/sourcepawn/ke_inline_list.h => public/amtl/ke_inline_list.h
rename : public/sourcepawn/ke_thread_posix.h => public/amtl/ke_thread_posix.h
rename : public/sourcepawn/ke_thread_utils.h => public/amtl/ke_thread_utils.h
rename : public/sourcepawn/ke_thread_windows.h => public/amtl/ke_thread_windows.h
rename : public/sourcepawn/ke_utility.h => public/amtl/ke_utility.h
rename : public/sourcepawn/ke_vector.h => public/amtl/ke_vector.h
2013-08-22 16:30:44 -07:00
David Anderson
b972ea4781
Fix stack alignment when lazily compiling scripted calls (bug 5871, r=ds).
2013-08-20 23:59:11 -07:00
David Anderson
582162460f
Fix OP_MOVS to not clobber random memory (bug 5868, r=psychonic).
2013-08-19 12:59:10 -07:00
David Anderson
c48cc0afdc
Fix OS X build.
2013-08-15 16:26:16 -07:00
David Anderson
3ac43497b9
Implement a watchdog timer for scripts that take too long to execute (bug 5837, r=fyren).
...
--HG--
extra : rebase_source : ffacb38457eca581660ce8f15c444ad828b7fedd
2013-08-14 23:54:25 -07:00
Kyle Sanderson
86c699dd36
Fixed various memory issues. (bug 5766, r=asherkin)
2013-08-12 00:44:22 +01:00
David Anderson
b39fcebe65
Remove InfoVars, reassign DAT from EBP to ESI to preserve C++ stacktraces in JIT code (bug 5844 part 10, r=ds).
2013-08-12 00:24:02 +01:00
David Anderson
04129a0841
Remove InfoVars::frm (bug 5844 part 9, r=ds).
2013-08-12 00:23:54 +01:00
David Anderson
a7658f013e
Eliminate InfoVars::hp (bug 5844 part 8, r=ds).
2013-08-12 00:23:00 +01:00
David Anderson
2822bf7a65
Eliminate InfoVars::cip (bug 5844 part 7, r=ds).
2013-08-12 00:22:54 +01:00
David Anderson
87ccd272ee
Eliminate InfoVars::rval (bug 5844 part 6, r=ds).
2013-08-12 00:22:41 +01:00
David Anderson
18275ce2c9
Remove InfoVars::ctx (bug 5844 part 5, r=fyren).
2013-08-11 11:33:47 -07:00
David Anderson
5935070dfa
Remove InfoVars::memory (bug 5844 part 4, r=ds).
2013-08-11 11:33:29 -07:00
David Anderson
8391c83121
Remove InfoVars::stp (bug 5844 part 3, r=fyren).
2013-08-11 11:31:55 -07:00
David Anderson
4255ee105f
Remove InfoVars::data_size (bug 5844 part 2, r=ds).
2013-08-11 11:31:24 -07:00
David Anderson
e3c45bd1f7
Clean up INFO register structure (bug 5844 part 1, r=ds).
2013-08-11 11:30:27 -07:00
David Anderson
449617474b
Statically align the stack at function boundaries (bug 5842, r=ds).
2013-08-11 11:27:19 -07:00
David Anderson
ce542ac5f6
Move tracker related opcodes entirely to C++.
...
The tracker related opcodes:
GENARRAY
GENARRAY_Z
TRACKER_POP_SETHEAP
TRACKER_PUSH_C
All contain some vastly overcomplicated assembly containing logic that could
be implemented much easier in C++. If it were a performance concern, these
opcodes would be entirely in C++, but most of them call out to one or more
routines to do additional work. This patch just moves most of the logic out
to C++ to reduce complexity and fix reported bugs.
--HG--
extra : rebase_source : 1397056ac3ca3efb969e66ec577e2b33ca725e1a
2013-08-10 21:23:02 -07:00
David Anderson
bf325b72f1
Use SSE when available for floating-point operations (bug 5841, r=her).
2013-08-08 20:26:36 -07:00
David Anderson
9e56725406
Refactor the JIT to use a newer, simpler macro assembler. (bug 5827, r=ann)
2013-08-08 09:41:24 -07:00
Asher Baker
0f62a8ec2f
Generate debugging information during compilation (bug 5227, r=ds).
2013-03-17 21:00:28 +00:00
Kyle Sanderson
6f45794574
Fixed mismatched delete [] on thunks in JIT CompData dtor (bug 5639, r=dvander).
2013-03-16 13:08:35 -04:00
Asher Baker
7625ca439e
Check the debug stringbase when loading plugins, lest it be null and cause crashes down the line (bug 5478, r=dvander).
2012-09-08 17:31:31 +01:00
Asher Baker
bf76be5dfa
Overhauled versioning information (bug 5453, r=dvander).
2012-08-26 01:33:54 +01:00
Nicholas Hastings
76fa100c1d
Updated jit vcproj/makefile (NPOTB).
2012-08-15 15:10:55 -04:00
Asher Baker
de27cb8a2f
Added system to block malware or illegal plugins (bug 5289, r=dvander).
2012-08-09 01:54:43 +01:00
Nicholas Hastings
80fbc25442
Updated vc projs to use MMSOURCE19, added loader & topmenus, fixed CSGO sdk path in cstrike (NPOTB).
2012-07-25 08:31:01 -04:00
Nicholas Hastings
78f4640736
VC10 proj: removed old bintools cfgs, fixed swarm build, fixed jit dll name (NPOTB).
2012-07-20 15:43:15 -04:00