| Index Entry | | Section |
|
# | | |
| # can only be on the input side error: | | Error messages |
| #line : | | Input File Grammar |
|
- | | |
| -disasm.i output file: | | VM disassembler |
| -gen.i output file: | | VM code generation |
| -h, command-line option: | | Invoking Vmgen |
| –help, command-line option: | | Invoking Vmgen |
| -labels.i output file: | | VM instruction table |
| -peephole.i output file: | | Peephole optimization |
| -profile.i output file: | | VM profiler |
| -v, command-line option: | | Invoking Vmgen |
| –version, command-line option: | | Invoking Vmgen |
| -vm.i output file: | | VM engine |
|
\ | | |
| \C : | | Input File Grammar |
| \E : | | Eval escapes |
|
A | | |
| accessing stack (pointer): | | C Code restrictions |
| advantages of interpreters: | | Why interpreters? |
| advantages of vmgen: | | Why interpreters? |
| assumptions about C code: | | C Code restrictions |
|
B | | |
| basic block, VM level: | | C Code Macros |
| basic type of a stack: | | Simple instructions |
| BB_BOUNDARY in profiling: | | VM profiler |
| branch instruction, VM: | | Front end and VM interpreter |
|
C | | |
| C code restrictions: | | C Code restrictions |
| C escape: | | Input File Grammar |
| casts example: | | Example overview |
| casts in type cast macros: | | VM engine |
| Changes from old versions: | | Changes |
| code generation, VM: | | VM code generation |
| conditional compilation of Vmgen output: | | Input File Grammar |
|
D | | |
| default stack of a type prefix: | | Simple instructions |
| defining a stack: | | Simple instructions |
| defining superinstructions: | | Superinstructions |
| disasm.c: | | VM disassembler |
| disassembler, VM code: | | VM disassembler |
| Dispatch of VM instructions: | | Dispatch |
|
E | | |
| effect, stack: | | Simple instructions |
| efficiency features overview: | | Introduction |
| eliminating stack stores: | | Store Optimization |
| engine: | | VM engine |
| engine.c: | | VM engine |
| error messages: | | Error messages |
| escape to Forth: | | Eval escapes |
| eval escape: | | Eval escapes |
| example files: | | Example overview |
| example of a Vmgen-based interpreter: | | Example |
| example overview: | | Example overview |
| executing VM code: | | VM engine |
| explicit stack access: | | Explicit stack access |
|
F | | |
| FDL, GNU Free Documentation License: | | GNU Free Documentation License |
| format, input file: | | Input File Format |
| free-format, not: | | Input File Grammar |
| front-end: | | Front end and VM interpreter |
| functionality features overview: | | Introduction |
| future ideas: | | The future |
|
G | | |
| garbage collection: | | Data handling |
| generated code, usage: | | Using the generated code |
| grammar, input file: | | Input File Grammar |
|
H | | |
| hints: | | Hints |
|
I | | |
| immediate argument, VM instruction: | | Front end and VM interpreter |
| immediate arguments: | | Data handling |
| immediate arguments, VM code generation: | | VM code generation |
| IMM_ARG: | | VM engine |
| include-skipped-insts: | | Superinstructions |
| input file format: | | Input File Format |
| input file grammar: | | Input File Grammar |
| instruction pointer definition: | | VM engine |
| instruction pointer, access: | | C Code restrictions |
| instruction stream: | | Data handling |
| instruction stream: | | Simple instructions |
| instruction stream, basic type: | | VM engine |
| instruction table: | | VM instruction table |
| instruction, simple VM: | | Simple instructions |
| instruction, VM: | | Front end and VM interpreter |
| interpreters, advantages: | | Why interpreters? |
| Invoking Vmgen: | | Invoking Vmgen |
| IP , IPTOS in disassmbler: | | VM disassembler |
|
L | | |
| labels for threaded code: | | VM instruction table |
|
M | | |
| macros recognized by Vmgen: | | C Code Macros |
| main interpreter loop: | | Dispatch |
| modularization of interpreters: | | Front end and VM interpreter |
|
N | | |
| newlines, significance in syntax: | | Input File Grammar |
|
O | | |
| opcode definition: | | VM instruction table |
| opcode, VM instruction: | | Front end and VM interpreter |
| optimization, stack stores: | | Store Optimization |
|
P | | |
| peephole optimization: | | Peephole optimization |
| peephole.c: | | Peephole optimization |
| prefix for this combination must be defined earlier error: | | Error messages |
| prefix, stack: | | Simple instructions |
| prefix, type: | | Simple instructions |
| prefixes of superinstructions: | | Superinstructions |
| profile.c: | | VM profiler |
| profiling example: | | Using profiling to create superinstructions |
| profiling for selecting superinstructions: | | VM profiler |
|
R | | |
| reference counting: | | Data handling |
| register machine: | | Data handling |
| Register VM: | | Register Machines |
| register, VM: | | Front end and VM interpreter |
| restrictions on C code: | | C Code restrictions |
|
S | | |
| seq2rule.awk: | | VM profiler |
| simple VM instruction: | | Simple instructions |
| size, stack items: | | Data handling |
| speed for JVM: | | Introduction |
| speed of interpreters: | | Why interpreters? |
| stack access, explicit: | | Explicit stack access |
| stack basic type: | | Simple instructions |
| stack caching: | | VM engine |
| stack caching, restriction on C code: | | C Code restrictions |
| stack definition: | | Simple instructions |
| stack effect: | | Simple instructions |
| stack growth direction: | | Stack growth direction |
| stack item size: | | Data handling |
| stack machine: | | Data handling |
| Stack pointer access: | | Explicit stack access |
| stack pointer definition: | | VM engine |
| stack pointer, access: | | C Code restrictions |
| stack prefix: | | Simple instructions |
| stack stores, optimization: | | Store Optimization |
| stack-access-transform : | | Stack growth direction |
| stat.awk: | | VM profiler |
| store optimization: | | Store Optimization |
| superinstructions and profiling: | | VM profiler |
| superinstructions and tracing: | | VM engine |
| superinstructions example: | | Using profiling to create superinstructions |
| Superinstructions for register VMs: | | Register Machines |
| superinstructions, defining: | | Superinstructions |
| superinstructions, generating: | | Peephole optimization |
| superinstructions, restrictions on components: | | C Code restrictions |
| SUPER_END in profiling: | | VM profiler |
| switch dispatch: | | Dispatch |
| sync line syntax error: | | Error messages |
| sync lines: | | Input File Grammar |
| syntax error, wrong char error: | | Error messages |
|
T | | |
| TAIL; , changes: | | Changes |
| threaded code: | | Dispatch |
| too many stacks error: | | Error messages |
| top of stack caching: | | VM engine |
| TOS: | | VM engine |
| tracing of register VMs: | | Register Machines |
| tracing VM code: | | VM engine |
| type cast macro: | | VM engine |
| type casting between floats and integers: | | VM engine |
| type of a stack, basic: | | Simple instructions |
| type prefix: | | Simple instructions |
|
U | | |
| unions example: | | Example overview |
| unions in type cast macros: | | VM engine |
| unknown prefix error: | | Error messages |
| unknown primitive error: | | Error messages |
| Using vmgen-erated code: | | Using the generated code |
|
V | | |
| virtual machine: | | Front end and VM interpreter |
| VM: | | Front end and VM interpreter |
| VM branch instruction: | | Front end and VM interpreter |
| VM code generation: | | VM code generation |
| VM disassembler: | | VM disassembler |
| VM instruction: | | Front end and VM interpreter |
| VM instruction execution: | | VM engine |
| VM profiler: | | VM profiler |
| VM register: | | Front end and VM interpreter |
| vmgen-ex: | | Example overview |
| vmgen-ex2: | | Example overview |
| vm_A2B , changes: | | Changes |
| VM_IS_INST in profiling: | | VM profiler |
| vm_prim , definition: | | VM instruction table |
| vm_prim , use: | | VM code generation |
| vm_twoA2B , changes: | | Changes |
|
W | | |
| wrapper files: | | Example overview |
|