"""Copyright (C) 2017 David Boddie <david@boddie.org.uk> This program is free software: you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation, either version 3 of the License, or(at your option) any later version. This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See theGNU General Public License for more details. You should have received a copy of the GNU General Public Licensealong with this program. If not, see <http://www.gnu.org/licenses/>.""" nop = 0x00alt = 0x01nbalt = 0x02goto = 0x03call = 0x04frame = 0x05spawn = 0x06runt = 0x07load = 0x08mcall = 0x09mspawn = 0x0amframe = 0x0bret = 0x0cjmp = 0x0dcase = 0x0eexit = 0x0fnew = 0x10newa = 0x11newcb = 0x12newcw = 0x13newcf = 0x14newcp = 0x15newcm = 0x16newcmp = 0x17send = 0x18recv = 0x19consb = 0x1aconsw = 0x1bconsp = 0x1cconsf = 0x1dconsm = 0x1econsmp = 0x1fheadb = 0x20headw = 0x21headp = 0x22headf = 0x23headm = 0x24headmp = 0x25tail = 0x26lea = 0x27indx = 0x28movp = 0x29movm = 0x2amovmp = 0x2bmovb = 0x2cmovw = 0x2dmovf = 0x2ecvtbw = 0x2fcvtwb = 0x30cvtfw = 0x31cvtwf = 0x32cvtca = 0x33cvtac = 0x34cvtwc = 0x35cvtcw = 0x36cvtfc = 0x37cvtcf = 0x38addb = 0x39addw = 0x3aaddf = 0x3bsubb = 0x3csubw = 0x3dsubf = 0x3emulb = 0x3fmulw = 0x40mulf = 0x41divb = 0x42divw = 0x43divf = 0x44modw = 0x45modb = 0x46andb = 0x47andw = 0x48orb = 0x49orw = 0x4axorb = 0x4bxorw = 0x4cshlb = 0x4dshlw = 0x4eshrb = 0x4fshrw = 0x50insc = 0x51indc = 0x52addc = 0x53lenc = 0x54lena = 0x55lenl = 0x56beqb = 0x57bneb = 0x58bltb = 0x59bleb = 0x5abgtb = 0x5bbgeb = 0x5cbeqw = 0x5dbnew = 0x5ebltw = 0x5fblew = 0x60bgtw = 0x61bgew = 0x62beqf = 0x63bnef = 0x64bltf = 0x65blef = 0x66bgtf = 0x67bgef = 0x68beqc = 0x69bnec = 0x6abltc = 0x6bblec = 0x6cbgtc = 0x6dbgec = 0x6eslicea = 0x6fslicela = 0x70slicec = 0x71indw = 0x72indf = 0x73indb = 0x74negf = 0x75movl = 0x76addl = 0x77subl = 0x78divl = 0x79modl = 0x7amull = 0x7bandl = 0x7corl = 0x7dxorl = 0x7eshll = 0x7fshrl = 0x80bnel = 0x81bltl = 0x82blel = 0x83bgtl = 0x84bgel = 0x85beql = 0x86cvtlf = 0x87cvtfl = 0x88cvtlw = 0x89cvtwl = 0x8acvtlc = 0x8bcvtcl = 0x8cheadl = 0x8dconsl = 0x8enewcl = 0x8fcasec = 0x90indl = 0x91movpc = 0x92tcmp = 0x93mnewz = 0x94cvtrf = 0x95cvtfr = 0x96cvtws = 0x97cvtsw = 0x98lsrw = 0x99lsrl = 0x9aeclr = 0x9bnewz = 0x9cnewaz = 0x9draise_ = 0x9ecasel = 0x9fmulx = 0xa0divx = 0xa1cvtxx = 0xa2mulx0 = 0xa3divx0 = 0xa4cvtxx0 = 0xa5mulx1 = 0xa6divx1 = 0xa7cvtxx1 = 0xa8cvtfx = 0xa9cvtxf = 0xaaexpw = 0xabexpl = 0xacexpf = 0xadself = 0xae names = [ "nop", "alt", "nbalt", "goto", "call", "frame", "spawn", "runt", "load", "mcall", "mspawn", "mframe", "ret", "jmp", "case", "exit", "new", "newa", "newcb", "newcw", "newcf", "newcp", "newcm", "newcmp", "send", "recv", "consb", "consw", "consp", "consf", "consm", "consmp", "headb", "headw", "headp", "headf", "headm", "headmp", "tail", "lea", "indx", "movp", "movm", "movmp", "movb", "movw", "movf", "cvtbw", "cvtwb", "cvtfw", "cvtwf", "cvtca", "cvtac", "cvtwc", "cvtcw", "cvtfc", "cvtcf", "addb", "addw", "addf", "subb", "subw", "subf", "mulb", "mulw", "mulf", "divb", "divw", "divf", "modw", "modb", "andb", "andw", "orb", "orw", "xorb", "xorw", "shlb", "shlw", "shrb", "shrw", "insc", "indc", "addc", "lenc", "lena", "lenl", "beqb", "bneb", "bltb", "bleb", "bgtb", "bgeb", "beqw", "bnew", "bltw", "blew", "bgtw", "bgew", "beqf", "bnef", "bltf", "blef", "bgtf", "bgef", "beqc", "bnec", "bltc", "blec", "bgtc", "bgec", "slicea", "slicela", "slicec", "indw", "indf", "indb", "negf", "movl", "addl", "subl", "divl", "modl", "mull", "andl", "orl", "xorl", "shll", "shrl", "bnel", "bltl", "blel", "bgtl", "bgel", "beql", "cvtlf", "cvtfl", "cvtlw", "cvtwl", "cvtlc", "cvtcl", "headl", "consl", "newcl", "casec", "indl", "movpc", "tcmp", "mnewz", "cvtrf", "cvtfr", "cvtws", "cvtsw", "lsrw", "lsrl", "eclr", "newz", "newaz", "raise", "casel", "mulx", "divx", "cvtxx", "mulx0", "divx0", "cvtxx0", "mulx1", "divx1", "cvtxx1", "cvtfx", "cvtxf", "expw", "expl", "expf", "self" ]
"""
Copyright (C) 2017 David Boddie <david@boddie.org.uk>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
nop = 0x00
alt = 0x01
nbalt = 0x02
goto = 0x03
call = 0x04
frame = 0x05
spawn = 0x06
runt = 0x07
load = 0x08
mcall = 0x09
mspawn = 0x0a
mframe = 0x0b
ret = 0x0c
jmp = 0x0d
case = 0x0e
exit = 0x0f
new = 0x10
newa = 0x11
newcb = 0x12
newcw = 0x13
newcf = 0x14
newcp = 0x15
newcm = 0x16
newcmp = 0x17
send = 0x18
recv = 0x19
consb = 0x1a
consw = 0x1b
consp = 0x1c
consf = 0x1d
consm = 0x1e
consmp = 0x1f
headb = 0x20
headw = 0x21
headp = 0x22
headf = 0x23
headm = 0x24
headmp = 0x25
tail = 0x26
lea = 0x27
indx = 0x28
movp = 0x29
movm = 0x2a
movmp = 0x2b
movb = 0x2c
movw = 0x2d
movf = 0x2e
cvtbw = 0x2f
cvtwb = 0x30
cvtfw = 0x31
cvtwf = 0x32
cvtca = 0x33
cvtac = 0x34
cvtwc = 0x35
cvtcw = 0x36
cvtfc = 0x37
cvtcf = 0x38
addb = 0x39
addw = 0x3a
addf = 0x3b
subb = 0x3c
subw = 0x3d
subf = 0x3e
mulb = 0x3f
mulw = 0x40
mulf = 0x41
divb = 0x42
divw = 0x43
divf = 0x44
modw = 0x45
modb = 0x46
andb = 0x47
andw = 0x48
orb = 0x49
orw = 0x4a
xorb = 0x4b
xorw = 0x4c
shlb = 0x4d
shlw = 0x4e
shrb = 0x4f
shrw = 0x50
insc = 0x51
indc = 0x52
addc = 0x53
lenc = 0x54
lena = 0x55
lenl = 0x56
beqb = 0x57
bneb = 0x58
bltb = 0x59
bleb = 0x5a
bgtb = 0x5b
bgeb = 0x5c
beqw = 0x5d
bnew = 0x5e
bltw = 0x5f
blew = 0x60
bgtw = 0x61
bgew = 0x62
beqf = 0x63
bnef = 0x64
bltf = 0x65
blef = 0x66
bgtf = 0x67
bgef = 0x68
beqc = 0x69
bnec = 0x6a
bltc = 0x6b
blec = 0x6c
bgtc = 0x6d
bgec = 0x6e
slicea = 0x6f
slicela = 0x70
slicec = 0x71
indw = 0x72
indf = 0x73
indb = 0x74
negf = 0x75
movl = 0x76
addl = 0x77
subl = 0x78
divl = 0x79
modl = 0x7a
mull = 0x7b
andl = 0x7c
orl = 0x7d
xorl = 0x7e
shll = 0x7f
shrl = 0x80
bnel = 0x81
bltl = 0x82
blel = 0x83
bgtl = 0x84
bgel = 0x85
beql = 0x86
cvtlf = 0x87
cvtfl = 0x88
cvtlw = 0x89
cvtwl = 0x8a
cvtlc = 0x8b
cvtcl = 0x8c
headl = 0x8d
consl = 0x8e
newcl = 0x8f
casec = 0x90
indl = 0x91
movpc = 0x92
tcmp = 0x93
mnewz = 0x94
cvtrf = 0x95
cvtfr = 0x96
cvtws = 0x97
cvtsw = 0x98
lsrw = 0x99
lsrl = 0x9a
eclr = 0x9b
newz = 0x9c
newaz = 0x9d
raise_ = 0x9e
casel = 0x9f
mulx = 0xa0
divx = 0xa1
cvtxx = 0xa2
mulx0 = 0xa3
divx0 = 0xa4
cvtxx0 = 0xa5
mulx1 = 0xa6
divx1 = 0xa7
cvtxx1 = 0xa8
cvtfx = 0xa9
cvtxf = 0xaa
expw = 0xab
expl = 0xac
expf = 0xad
self = 0xae
names = [
"nop", "alt", "nbalt", "goto", "call", "frame", "spawn", "runt",
"load", "mcall", "mspawn", "mframe", "ret", "jmp", "case", "exit",
"new", "newa", "newcb", "newcw", "newcf", "newcp", "newcm", "newcmp",
"send", "recv", "consb", "consw", "consp", "consf", "consm", "consmp",
"headb", "headw", "headp", "headf", "headm", "headmp", "tail", "lea",
"indx", "movp", "movm", "movmp", "movb", "movw", "movf", "cvtbw",
"cvtwb", "cvtfw", "cvtwf", "cvtca", "cvtac", "cvtwc", "cvtcw", "cvtfc",
"cvtcf", "addb", "addw", "addf", "subb", "subw", "subf", "mulb",
"mulw", "mulf", "divb", "divw", "divf", "modw", "modb", "andb",
"andw", "orb", "orw", "xorb", "xorw", "shlb", "shlw", "shrb",
"shrw", "insc", "indc", "addc", "lenc", "lena", "lenl", "beqb",
"bneb", "bltb", "bleb", "bgtb", "bgeb", "beqw", "bnew", "bltw",
"blew", "bgtw", "bgew", "beqf", "bnef", "bltf", "blef", "bgtf",
"bgef", "beqc", "bnec", "bltc", "blec", "bgtc", "bgec", "slicea",
"slicela", "slicec", "indw", "indf", "indb", "negf", "movl", "addl",
"subl", "divl", "modl", "mull", "andl", "orl", "xorl", "shll",
"shrl", "bnel", "bltl", "blel", "bgtl", "bgel", "beql", "cvtlf",
"cvtfl", "cvtlw", "cvtwl", "cvtlc", "cvtcl", "headl", "consl", "newcl",
"casec", "indl", "movpc", "tcmp", "mnewz", "cvtrf", "cvtfr", "cvtws",
"cvtsw", "lsrw", "lsrl", "eclr", "newz", "newaz", "raise", "casel",
"mulx", "divx", "cvtxx", "mulx0", "divx0", "cvtxx0", "mulx1", "divx1",
"cvtxx1", "cvtfx", "cvtxf", "expw", "expl", "expf", "self"
]