Commit graph

11 commits

Author SHA1 Message Date
Randy Heit
fcceeb814a - Changed state calls to use the VM's standard return value mechanism. StateCallData has been
removed as a result, so now action functions take a minimum of three parameters rather than four.

SVN r3770 (scripting)
2012-07-17 05:31:41 +00:00
Randy Heit
e1a2f3b546 - Added the TAIL instruction to perform a CALL and a RET in the same instruction. The called
function will pass its results directly to this function's caller. Eventually, this should
  be changed to do a proper tail call for scripted functions.

SVN r3769 (scripting)
2012-07-17 04:06:28 +00:00
Randy Heit
644f0c0e05 - Add a name to VMFunction so that the disassembly can be more informative.
SVN r3768 (scripting)
2012-07-17 03:35:03 +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
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
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
92766165f5 OMG! Wrong directory!
SVN r1844 (scripting)
2009-09-16 03:01:40 +00:00
Renamed from zscript/vmdisasm.cpp (Browse further)