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
Nicholas Hastings
080405c022
Added some missing proj files from last commit (NPOTB).
2012-07-12 19:43:01 -04:00
Asher Baker
5f551fa67a
Backed out changeset: 387b27fb575b (bug 5227)
2012-04-14 01:12:24 +01:00
Asher Baker
393c54fdc2
Generate debugging information during compilation. (bug 5227, r=ds)
2012-02-16 19:26:49 +00:00
David Anderson
6c68082359
Fix crash when dynamic arrays run out of memory (bug 4632, r=fyren).
2011-07-04 01:57:19 -07:00
Scott Ehlert
939bc00b2b
Added detection for clang compiler and fixed various warnings triggered by it (bug 4878, r=dvander).
2011-04-23 21:53:53 -05:00
David Anderson
97ab5dd1b5
Fixed switch case comparisons failing with large numbers (bug 4457, r=pred).
2010-06-13 20:26:58 -07:00
Scott Ehlert
fcfd5c7419
Fixed crash when a plugin was unloaded before a client convar query had returned results (bug 4044, r=dvander).
2009-10-06 13:37:30 -05:00
David Anderson
d682361cfc
More changes for new build system.
2009-08-30 00:46:56 -07:00