David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							04827466b0 
							
						 
					 
					
						
						
							
							Rewrite the .smx parser.  
						
						... 
						
						
						
						This removes one the last remnants of the SourceMod 1.0 VM implementation.
The new parser introduces a number of design changes in the VM. First, the VM now takes greater responsibility for validating and sanity checking the structure of the SMX container format. Previously, malformed SMX files could easily crash SourcePawn. The loader now rejects files that have out-of-bounds offsets or incomplete sections. Complex sections, like debug info or the code stream, are verified lazily.
Internally, the sp_plugin_t structure has been removed. It has been replaced by a new LegacyImage class, designed to be independent from the SPVM API. This potentially lets us load code streams from non-.smx containers. More importantly, it removes a lot of bookkeeping and pre-computed state from PluginRuntime. The LegacyImage class is now responsible for handling debug info as well.
PluginRuntime is now intended to hold only cached or immutable data, and PluginContext holds all VM state. As such PluginContext is now responsible for allocating a plugin's runtime memory, not PluginRuntime.
Finally, some aspects of the loading process have been cleaned up. The
decompression and image handoff logic should now be easier to
understand. 
						
					 
					
						2015-02-25 22:28:10 -08:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							acf6dcac86 
							
						 
					 
					
						
						
							
							Remove the interpreter.  
						
						
						
					 
					
						2015-02-24 23:57:08 -08:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							b9b0ec865c 
							
						 
					 
					
						
						
							
							Simplify the JIT function cache.  
						
						
						
					 
					
						2015-02-24 23:43:07 -08:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							fcaa5361c8 
							
						 
					 
					
						
						
							
							Don't expose mutable sp_native_t.  
						
						
						
					 
					
						2015-02-24 23:10:18 -08:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							11ea385169 
							
						 
					 
					
						
						
							
							Remove sp_context_t::rval.  
						
						
						
					 
					
						2015-02-24 21:54:34 -08:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							31ab1ced06 
							
						 
					 
					
						
						
							
							Move hp from sp_context_t to PluginContext.  
						
						
						
					 
					
						2015-02-24 21:54:34 -08:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							b2c61a341a 
							
						 
					 
					
						
						
							
							Move sp from sp_context_t to PluginContext.  
						
						
						
					 
					
						2015-02-24 21:54:30 -08:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							4c9321f02a 
							
						 
					 
					
						
						
							
							Move frm from sp_context_t to PluginContext.  
						
						
						
					 
					
						2015-02-24 21:01:05 -08:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							d2005bd42a 
							
						 
					 
					
						
						
							
							Move cip from sp_context_t to PluginContext.  
						
						
						
					 
					
						2015-02-24 20:53:44 -08:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							97dbc7ff07 
							
						 
					 
					
						
						
							
							Move n_err from sp_context_t to PluginContext.  
						
						
						
					 
					
						2015-02-24 20:16:13 -08:00 
						 
				 
			
				
					
						
							
							
								dvander@alliedmods.net 
							
						 
					 
					
						
						
						
						
							
						
						
							9c104ef310 
							
						 
					 
					
						
						
							
							Move nidx from sp_context_t to PluginContext.  
						
						
						
					 
					
						2015-02-24 19:59:45 -08:00 
						 
				 
			
				
					
						
							
							
								dvander@alliedmods.net 
							
						 
					 
					
						
						
						
						
							
						
						
							5502fbbdc1 
							
						 
					 
					
						
						
							
							Move the tracker from sp_context_t to PluginContext.  
						
						
						
					 
					
						2015-02-24 15:43:41 -08:00 
						 
				 
			
				
					
						
							
							
								dvander@alliedmods.net 
							
						 
					 
					
						
						
						
						
							
						
						
							37af05c456 
							
						 
					 
					
						
						
							
							Move the debug return stack into PluginContext.  
						
						
						
					 
					
						2015-02-24 15:20:00 -08:00 
						 
				 
			
				
					
						
							
							
								dvander@alliedmods.net 
							
						 
					 
					
						
						
						
						
							
						
						
							8eed58a467 
							
						 
					 
					
						
						
							
							Rename sp_vm_basecontext to plugin-context.  
						
						
						
					 
					
						2015-02-24 12:55:00 -08:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							781c5129a9 
							
						 
					 
					
						
						
							
							Remove the JITX86 class.  
						
						
						
					 
					
						2015-02-24 02:03:58 -08:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							111dd7eb68 
							
						 
					 
					
						
						
							
							Factor code stubs out of JITX86.  
						
						
						
					 
					
						2015-02-24 02:03:58 -08:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							21f5400d9c 
							
						 
					 
					
						
						
							
							Remove ICompilationData.  
						
						
						
					 
					
						2015-02-24 02:03:57 -08:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							8cf3e227ea 
							
						 
					 
					
						
						
							
							Move context var initialization into BaseContext.  
						
						
						
					 
					
						2015-02-24 02:03:56 -08:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							8c95919b32 
							
						 
					 
					
						
						
							
							Move watchdog/runtime interaction into Environment.  
						
						
						
					 
					
						2015-02-24 02:03:55 -08:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							c70e87d582 
							
						 
					 
					
						
						
							
							Move the code cache into Environment, and out of knight/shared.  
						
						
						
					 
					
						2015-02-24 01:57:50 -08:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							57ba8fd09b 
							
						 
					 
					
						
						
							
							De-singleton-ify the watchdog timer.  
						
						
						
					 
					
						2015-02-24 01:53:37 -08:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							3cf3f6c3f8 
							
						 
					 
					
						
						
							
							Merge sp_vm_engine and engine2.  
						
						
						
					 
					
						2015-02-24 01:52:14 -08:00 
						 
				 
			
				
					
						
							
							
								David Anderson 
							
						 
					 
					
						
						
						
						
							
						
						
							499f7b3929 
							
						 
					 
					
						
						
							
							Refactor the public API entrypoint for SourcePawn.  
						
						
						
					 
					
						2015-02-24 01:52:13 -08:00 
						 
				 
			
				
					
						
							
							
								dvander@alliedmods.net 
							
						 
					 
					
						
						
						
						
							
						
						
							1f9b898702 
							
						 
					 
					
						
						
							
							Rename BaseRuntime files to plugin-runtime.  
						
						
						
					 
					
						2015-02-23 16:44:15 -08:00 
						 
				 
			
				
					
						
							
							
								dvander@alliedmods.net 
							
						 
					 
					
						
						
						
						
							
						
						
							2f71cb4cd7 
							
						 
					 
					
						
						
							
							Rename BaseRuntime to PluginRuntime.  
						
						
						
					 
					
						2015-02-23 16:40:36 -08:00 
						 
				 
			
				
					
						
							
							
								dvander@alliedmods.net 
							
						 
					 
					
						
						
						
						
							
						
						
							b2d8dde3a5 
							
						 
					 
					
						
						
							
							Rename Function to CompiledFunction.  
						
						
						
					 
					
						2015-02-23 16:27:57 -08:00 
						 
				 
			
				
					
						
							
							
								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 
							
						 
					 
					
						
						
						
						
							
						
						
							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 
						 
				 
			
				
					
						
							
							
								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 
						 
				 
			
				
					
						
							
							
								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 
							
						 
					 
					
						
						
						
						
							
						
						
							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 
							
						 
					 
					
						
						
						
						
							
						
						
							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 
						 
				 
			
				
					
						
							
							
								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