Commit graph

70 commits

Author SHA1 Message Date
Randy Heit
d87d2c731f - Use a map for symbol tables instead of an array.
SVN r2258 (scripting)
2010-03-30 04:11:16 +00:00
Randy Heit
f88f601230 - Removed the third parameter from dumpclasses when it was restricted it to Actors, because
I have no idea what that was all about.
- Got rid of FActorInfo and merged it into a new PClassActor.

SVN r2240 (scripting)
2010-03-24 02:49:37 +00:00
Randy Heit
7aa402b2a5 - Add a preliminary grammar and a test driver for it.
SVN r2233 (scripting)
2010-03-19 04:04:13 +00:00
Randy Heit
873ece3d55 - Added a vmengine console command to switch the VM engine at runtime.
SVN r2164 (scripting)
2010-02-14 20:16:05 +00:00
Randy Heit
6f1bf257e9 - State code now properly calls action functions and has a RET instruction. As expected,
running with the checked VM can be quite slow, since it has asserts everywhere. Some other
  fixes were needed before the code actually worked:
  - A_CallSpecial needs to have its arguments cast to ints.
  - Some functions that set pnum/paramnum directly did not decrement it by 1. This also applies
    to A_Jump, though it just uses the value of paramnum instead of changing it.
  - Renamed pnum in the PARAM macros to paramnum, since pnum is already used in a few other
    places for something different, so this makes searching for it easier.
  This has not been tested especially thoroughly, but a first glance seems to indicate success.

SVN r2163 (scripting)
2010-02-14 19:59:21 +00:00
Randy Heit
739e684549 - Converted all action functions be directly callable by the VM (though they are not yet
usable).

SVN r2154 (scripting)
2010-02-12 06:04:57 +00:00
Randy Heit
7ea11cd169 - Allocate VM script code and constants in a single block for better locality of
reference.

SVN r1924 (scripting)
2009-10-17 02:09:29 +00:00
Randy Heit
e209a2f208 - Stop aliasing strings onto names for function parameters.
SVN r1923 (scripting)
2009-10-17 01:38:54 +00:00
Randy Heit
e5ef25591d - Use a union, rather than pointer aliasing, to access the parts of a VM instruction.
SVN r1922 (scripting)
2009-10-17 00:33:23 +00:00
Randy Heit
c424c61ffc - Added fixed registers that won't be freed automatically, so that parameters
can actually be used. In the end, all temporaries should be assigned to
  unique virtual registers, and a register allocator can alias them to real
  registers, but as long as we don't do any CSE, this is good enough for now.


SVN r1920 (scripting)
2009-10-15 23:11:54 +00:00
Randy Heit
3cbac657d6 - Added type coercion for action function parameters.
- I add PARAMI, and then I don't even do it right...

SVN r1919 (scripting)
2009-10-15 22:15:55 +00:00
Randy Heit
126c738116 - Added PARAMI for the common case of passing an integer constant to a function.
- Made FxParameter::Emit free its operand's register.

SVN r1918 (scripting)
2009-10-15 21:59:37 +00:00
Randy Heit
caa5f6dbdc - Send disassembly to a file, since it gets way too slow when sending a disassembly
of every single thing to the rich edit control.

SVN r1917 (scripting)
2009-10-15 21:23:59 +00:00
Randy Heit
85cc335725 - Added dummy code generation for states that pass parameters to action functions.
Currently, they're only good for disassembly and pasting into a proper text editor
  for viewing.
- Fixed some problems with the FxExpression emitters that were revealed by actually
  using them on the standard actors.

SVN r1911 (scripting)
2009-10-15 03:58:23 +00:00
Randy Heit
4fa94390d0 - Add parameter tracking to VMBuilder::Emit().
SVN r1910 (scripting)
2009-10-14 02:39:13 +00:00
Randy Heit
3001708d16 - Added some code for generating VM code from FxExpressions. This is completely untested, since
it isn't even used anywhere yet. In retrospect, I probably should have targeted an intermediate
  representation and done codegen with that instead, since that would be something I can reuse.

SVN r1908 (scripting)
2009-10-11 00:02:14 +00:00
Randy Heit
e9db2c83a5 - Just some stuff.
SVN r1878 (scripting)
2009-09-25 03:44:58 +00:00
Randy Heit
3e7b69a12e - All states now use thunk functions to call the action functions. This is the bare
minimum to be able to say that VM is being used.
- Added tags for the pointer constants table.

SVN r1871 (scripting)
2009-09-23 00:23:24 +00:00
Randy Heit
1eb7912bd8 - Make the autosegs read-only.
- Derive PClass from dobject.cpp. This has one major ramification: Since the PClass
  is not allocated until runtime, you cannot initialize any static/global data
  structures with pointers to PClasses using RUNTIME_CLASS. Attempting to do so
  will just initialize with a NULL pointer. Instead, you can initialize using
  the address of the pointer returned by RUNTIME_CLASS and dereference that. By
  the time you have an opportunity to dereference it, it will no longer be NULL.
- Sync CmakeLists.txt.
- Random fixes for problems GCC spotted.

SVN r1852 (scripting)
2009-09-17 01:36:14 +00:00
Randy Heit
92766165f5 OMG! Wrong directory!
SVN r1844 (scripting)
2009-09-16 03:01:40 +00:00