mirror of
https://github.com/nim-lang/Nim.git
synced 2026-08-03 22:18:40 +00:00
34 lines
731 B
ObjectPascal
34 lines
731 B
ObjectPascal
//
|
|
//
|
|
// The Nimrod Compiler
|
|
// (c) Copyright 2008 Andreas Rumpf
|
|
//
|
|
// See the file "copying.txt", included in this
|
|
// distribution, for details about the copyright.
|
|
//
|
|
|
|
// Virtual instruction set for Nimrod. Has been designed to support:
|
|
// * efficient C code generation (most important goal)
|
|
// * efficient LLVM code generation (second goal)
|
|
// * interpretation
|
|
// So it supports a typed virtual instruction set.
|
|
|
|
type
|
|
TInstrKind = (
|
|
insNone, // invalid instruction
|
|
insLabel, // a label
|
|
insTemp,
|
|
insGoto, // a goto
|
|
insTjmp,
|
|
insFjmp,
|
|
insBin, // ordinary binary operator
|
|
insLast
|
|
|
|
);
|
|
TInstr = record
|
|
Kind: TInstrKind;
|
|
|
|
end;
|
|
|
|
|