Commit Graph

25 Commits

Author SHA1 Message Date
dvander@alliedmods.net
45bac7feb0 Rename jit_function to compiled-function. 2015-02-23 16:04:57 -08:00
dvander@alliedmods.net
892b8c05b1 Rename JitFunction to CompiledFunction and CFunction to ScriptedInvoker. 2015-02-23 16:03:08 -08: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
David Anderson
f9f4c7dcd6 Add an interpreter because. (bug 5902, r=ds). 2013-09-01 00:23: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
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
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
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
David Anderson
7875fe1acd Landed sourcepawn-1.2. The big changes:
1) JIT compilation/optimization now occurs per-function, and only when functions are first used.  We're now officially a whole-method JIT rather than an AOT compiler (albiet, still a simple JIT).  This has two implications: Functions are now much better abstracted internally, and loading a plugin is now much less expensive.  If a function contains calls to other functions, THOSE functions are only compiled when they're invoked as well.

2) I've removed debug mode.  We always show full backtraces now, as there was a very cheap way to implement this which really cleaned up everything.  This is great for a number of reasons -- there's less code, the JIT is better designed, we don't need to relocate debug tables, and best of all we no longer have to tell users to enable debug mode at their own expense.

--HG--
extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%402459
2008-08-15 05:22:26 +00:00
David Anderson
1a156deca5 landed massive refactoring of the JIT. contexts are actually contexts now, and a higher level structure wraps sp_plugin_t info. on that note, both sp_plugin_t and sp_context_t are entirely opaque, and not even core has access to them. amazingly, i managed to keep binary compatibility here although a large number of functions are deprecated (and core should eventually stop calling them).
NOTE: the JIT is now embeddable out-of-box and usable by other projects which is pretty cool.  I will commit a shell app demonstrating this soon

--HG--
extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%402400
2008-07-11 08:18:43 +00:00
David Anderson
749177d0b3 updated license
--HG--
extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%402254
2008-06-13 07:24:43 +00:00
David Anderson
3aea76cfb3 insignificant changes from branch
--HG--
extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%402218
2008-05-29 04:50:59 +00:00
Scott Ehlert
251cced1f8 Spring Cleaning, Part Ichi (1)
Various minor things done to project files
Updated sample extension project file and updated makefile to the new unified version (more changes likely on the way)
Updated regex project file and makefile

--HG--
extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%401971
2008-03-30 07:00:22 +00:00