lua5.4
ljumptab.h
浏览该文件的文档.
1 /*
2 ** $Id: ljumptab.h $
3 ** Jump Table for the Lua interpreter
4 ** See Copyright Notice in lua.h
5 */
6 
7 
8 #undef vmdispatch
9 #undef vmcase
10 #undef vmbreak
11 
12 #define vmdispatch(x) goto *disptab[x];
13 
14 #define vmcase(l) L_##l:
15 
16 #define vmbreak vmfetch(); vmdispatch(GET_OPCODE(i));
17 
18 
19 static const void *const disptab[NUM_OPCODES] = {
20 
21 #if 0
22 ** you can update the following list with this command:
23 **
24 ** sed -n '/^OP_/\!d; s/OP_/\&\&L_OP_/ ; s/,.*/,/ ; s/\/.*// ; p' lopcodes.h
25 **
26 #endif
27 
28 &&L_OP_MOVE,
29 &&L_OP_LOADI,
30 &&L_OP_LOADF,
31 &&L_OP_LOADK,
32 &&L_OP_LOADKX,
33 &&L_OP_LOADFALSE,
34 &&L_OP_LFALSESKIP,
35 &&L_OP_LOADTRUE,
36 &&L_OP_LOADNIL,
37 &&L_OP_GETUPVAL,
38 &&L_OP_SETUPVAL,
39 &&L_OP_GETTABUP,
40 &&L_OP_GETTABLE,
41 &&L_OP_GETI,
42 &&L_OP_GETFIELD,
43 &&L_OP_SETTABUP,
44 &&L_OP_SETTABLE,
45 &&L_OP_SETI,
46 &&L_OP_SETFIELD,
47 &&L_OP_NEWTABLE,
48 &&L_OP_SELF,
49 &&L_OP_ADDI,
50 &&L_OP_ADDK,
51 &&L_OP_SUBK,
52 &&L_OP_MULK,
53 &&L_OP_MODK,
54 &&L_OP_POWK,
55 &&L_OP_DIVK,
56 &&L_OP_IDIVK,
57 &&L_OP_BANDK,
58 &&L_OP_BORK,
59 &&L_OP_BXORK,
60 &&L_OP_SHRI,
61 &&L_OP_SHLI,
62 &&L_OP_ADD,
63 &&L_OP_SUB,
64 &&L_OP_MUL,
65 &&L_OP_MOD,
66 &&L_OP_POW,
67 &&L_OP_DIV,
68 &&L_OP_IDIV,
69 &&L_OP_BAND,
70 &&L_OP_BOR,
71 &&L_OP_BXOR,
72 &&L_OP_SHL,
73 &&L_OP_SHR,
74 &&L_OP_MMBIN,
75 &&L_OP_MMBINI,
76 &&L_OP_MMBINK,
77 &&L_OP_UNM,
78 &&L_OP_BNOT,
79 &&L_OP_NOT,
80 &&L_OP_LEN,
81 &&L_OP_CONCAT,
82 &&L_OP_CLOSE,
83 &&L_OP_TBC,
84 &&L_OP_JMP,
85 &&L_OP_EQ,
86 &&L_OP_LT,
87 &&L_OP_LE,
88 &&L_OP_EQK,
89 &&L_OP_EQI,
90 &&L_OP_LTI,
91 &&L_OP_LEI,
92 &&L_OP_GTI,
93 &&L_OP_GEI,
94 &&L_OP_TEST,
95 &&L_OP_TESTSET,
96 &&L_OP_CALL,
97 &&L_OP_TAILCALL,
98 &&L_OP_RETURN,
99 &&L_OP_RETURN0,
100 &&L_OP_RETURN1,
101 &&L_OP_FORLOOP,
102 &&L_OP_FORPREP,
103 &&L_OP_TFORPREP,
104 &&L_OP_TFORCALL,
105 &&L_OP_TFORLOOP,
106 &&L_OP_SETLIST,
107 &&L_OP_CLOSURE,
108 &&L_OP_VARARG,
109 &&L_OP_VARARGPREP,
110 &&L_OP_EXTRAARG
111 
112 };
luaL_optstring
#define luaL_optstring(L, n, d)
Definition: lauxlib.h:139
l_popen
#define l_popen(L, c, m)
Definition: liolib.c:76
loadedlibs
static const luaL_Reg loadedlibs[]
Definition: linit.c:42
read_line
static int read_line(lua_State *L, FILE *f, int chop)
Definition: liolib.c:519
luaopen_lib2
LUAMOD_API int luaopen_lib2(lua_State *L)
Definition: lib22.c:17
lua_pushliteral
#define lua_pushliteral(L, s)
Definition: lua.h:381
lua_rotate
LUA_API void lua_rotate(lua_State *L, int idx, int n)
Definition: lapi.c:217
luaopen_base
LUAMOD_API int luaopen_base(lua_State *L)
Definition: lbaselib.c:515
lua_assert
#define lua_assert(c)
Definition: lauxlib.h:169
read_chars
static int read_chars(lua_State *L, FILE *f, size_t n)
Definition: liolib.c:553
LUAL_BUFFERSIZE
#define LUAL_BUFFERSIZE
Definition: ltests.h:117
io_noclose
static int io_noclose(lua_State *L)
Definition: liolib.c:796
f_flush
static int f_flush(lua_State *L)
Definition: liolib.c:732
io_readline
static int io_readline(lua_State *L)
Definition: liolib.c:629
IO_INPUT
#define IO_INPUT
Definition: liolib.c:151
lua_setglobal
LUA_API void lua_setglobal(lua_State *L, const char *name)
Definition: lapi.c:823
LUAI_UACNUMBER
#define LUAI_UACNUMBER
Definition: luaconf.h:458
LUA_TABLIBNAME
#define LUA_TABLIBNAME
Definition: lualib.h:23
io_popen
static int io_popen(lua_State *L)
Definition: liolib.c:290
f_setvbuf
static int f_setvbuf(lua_State *L)
Definition: liolib.c:715
lua_tostring
#define lua_tostring(L, i)
Definition: lua.h:386
LUA_MINSTACK
#define LUA_MINSTACK
Definition: lua.h:80
io_write
static int io_write(lua_State *L)
Definition: liolib.c:684
newfile
static LStream * newfile(lua_State *L)
Definition: liolib.c:253
luaopen_utf8
LUAMOD_API int() luaopen_utf8(lua_State *L)
Definition: lutf8lib.c:283
lua_pushstring
LUA_API const char * lua_pushstring(lua_State *L, const char *s)
Definition: lapi.c:514
luaL_checkstring
#define luaL_checkstring(L, n)
Definition: lauxlib.h:138
read_all
static void read_all(lua_State *L, FILE *f)
Definition: liolib.c:540
lua_replace
#define lua_replace(L, idx)
Definition: lua.h:393
lua_getfield
LUA_API int lua_getfield(lua_State *L, int idx, const char *k)
Definition: lapi.c:665
luaL_buffinit
LUALIB_API void luaL_buffinit(lua_State *L, luaL_Buffer *B)
Definition: lauxlib.c:620
l_lockfile
#define l_lockfile(f)
Definition: liolib.c:103
lua_pushinteger
LUA_API void lua_pushinteger(lua_State *L, lua_Integer n)
Definition: lapi.c:489
LUA_GNAME
#define LUA_GNAME
Definition: lauxlib.h:19
metameth
static const luaL_Reg metameth[]
Definition: liolib.c:774
LUA_OSLIBNAME
#define LUA_OSLIBNAME
Definition: lualib.h:29
IOPREF_LEN
#define IOPREF_LEN
Definition: liolib.c:150
LUA_FILEHANDLE
#define LUA_FILEHANDLE
Definition: lauxlib.h:233
luaL_newlibtable
#define luaL_newlibtable(L, l)
Definition: lauxlib.h:126
lua_pop
#define lua_pop(L, n)
Definition: lua.h:364
g_read
static int g_read(lua_State *L, FILE *f, int first)
Definition: liolib.c:566
nextc
static int nextc(RN *rn)
Definition: liolib.c:438
io_pclose
static int io_pclose(lua_State *L)
Definition: liolib.c:283
luaL_checkoption
LUALIB_API int luaL_checkoption(lua_State *L, int arg, const char *def, const char *const lst[])
Definition: lauxlib.c:360
createstdfile
static void createstdfile(lua_State *L, FILE *f, const char *k, const char *fname)
Definition: liolib.c:805
RN::n
int n
Definition: liolib.c:430
MAXARGLINE
#define MAXARGLINE
Definition: liolib.c:352
luaL_checklstring
LUALIB_API const char * luaL_checklstring(lua_State *L, int arg, size_t *len)
Definition: lauxlib.c:402
lua_rawlen
LUA_API lua_Unsigned lua_rawlen(lua_State *L, int idx)
Definition: lapi.c:402
lua_isnoneornil
#define lua_isnoneornil(L, n)
Definition: lua.h:379
l_ftell
#define l_ftell(f)
Definition: liolib.c:138
luaL_Stream
Definition: lauxlib.h:236
lua_type
LUA_API int lua_type(lua_State *L, int idx)
Definition: lapi.c:260
luaopen_lib1_sub
LUAMOD_API int luaopen_lib1_sub(lua_State *L)
Definition: lib1.c:38
luaopen_package
LUAMOD_API int luaopen_package(lua_State *L)
Definition: loadlib.c:736
luaopen_math
LUAMOD_API int luaopen_math(lua_State *L)
Definition: lmathlib.c:750
f_close
static int f_close(lua_State *L)
Definition: liolib.c:222
L_MAXLENNUM
#define L_MAXLENNUM
Definition: liolib.c:422
isclosed
#define isclosed(p)
Definition: liolib.c:160
g_write
static int g_write(lua_State *L, FILE *f, int arg)
Definition: liolib.c:660
luaopen_debug
LUAMOD_API int luaopen_debug(lua_State *L)
Definition: ldblib.c:478
io_output
static int io_output(lua_State *L)
Definition: liolib.c:340
luaopen_lib21
LUAMOD_API int luaopen_lib21(lua_State *L)
Definition: lib21.c:6
luaopen_table
LUAMOD_API int luaopen_table(lua_State *L)
Definition: ltablib.c:424
L_MODEEXT
#define L_MODEEXT
Definition: liolib.c:36
lua_isinteger
LUA_API int lua_isinteger(lua_State *L, int idx)
Definition: lapi.c:279
luaL_pushresult
LUALIB_API void luaL_pushresult(luaL_Buffer *B)
Definition: lauxlib.c:584
luaL_testudata
LUALIB_API void * luaL_testudata(lua_State *L, int ud, const char *tname)
Definition: lauxlib.c:330
luaL_fileresult
LUALIB_API int luaL_fileresult(lua_State *L, int stat, const char *fname)
Definition: lauxlib.c:245
LUA_LOADLIBNAME
#define LUA_LOADLIBNAME
Definition: lualib.h:44
l_getc
#define l_getc(f)
Definition: liolib.c:102
lua.h
l_unlockfile
#define l_unlockfile(f)
Definition: liolib.c:104
LUA_COLIBNAME
#define LUA_COLIBNAME
Definition: lualib.h:20
createmeta
static void createmeta(lua_State *L)
Definition: liolib.c:783
readdigits
static int readdigits(RN *rn, int hex)
Definition: liolib.c:464
luaL_newmetatable
LUALIB_API int luaL_newmetatable(lua_State *L, const char *tname)
Definition: lauxlib.c:311
onefunction
LUAMOD_API int onefunction(lua_State *L)
Definition: lib1.c:22
funcs
static const struct luaL_Reg funcs[]
Definition: lib22.c:11
LUA_UTF8LIBNAME
#define LUA_UTF8LIBNAME
Definition: lualib.h:35
meth
static const luaL_Reg meth[]
Definition: liolib.c:759
lua_insert
#define lua_insert(L, idx)
Definition: lua.h:389
RN::buff
char buff[L_MAXLENNUM+1]
Definition: liolib.c:431
aux_lines
static void aux_lines(lua_State *L, int toclose)
Definition: liolib.c:363
lua_tointeger
#define lua_tointeger(L, i)
Definition: lua.h:362
lua_setfield
LUA_API void lua_setfield(lua_State *L, int idx, const char *k)
Definition: lapi.c:847
lua_pushcclosure
LUA_API void lua_pushcclosure(lua_State *L, lua_CFunction fn, int n)
Definition: lapi.c:555
LUA_DBLIBNAME
#define LUA_DBLIBNAME
Definition: lualib.h:41
luaopen_io
LUAMOD_API int luaopen_io(lua_State *L)
Definition: liolib.c:818
luaL_checkversion
#define luaL_checkversion(L)
Definition: lauxlib.h:46
f_lines
static int f_lines(lua_State *L)
Definition: liolib.c:374
luaL_openlibs
LUALIB_API void luaL_openlibs(lua_State *L)
Definition: linit.c:57
luaL_Reg
Definition: lauxlib.h:37
LStream
luaL_Stream LStream
Definition: liolib.c:155
luaL_Reg::name
const char * name
Definition: lauxlib.h:38
lprefix.h
luaopen_lib2
int luaopen_lib2(lua_State *L)
Definition: lib2.c:15
id
static int id(lua_State *L)
Definition: lib22.c:4
lib1_export
int lib1_export(lua_State *L)
Definition: lib1.c:16
luaL_execresult
LUALIB_API int luaL_execresult(lua_State *L, int stat)
Definition: lauxlib.c:285
iolib
static const luaL_Reg iolib[]
Definition: liolib.c:740
LUA_TNUMBER
#define LUA_TNUMBER
Definition: lua.h:68
io_fclose
static int io_fclose(lua_State *L)
Definition: liolib.c:246
luaL_argerror
LUALIB_API int luaL_argerror(lua_State *L, int arg, const char *extramsg)
Definition: lauxlib.c:175
id
static int id(lua_State *L)
Definition: lib1.c:4
lua_pushfstring
LUA_API const char * lua_pushfstring(lua_State *L, const char *fmt,...)
Definition: lapi.c:542
luaL_checkany
LUALIB_API void luaL_checkany(lua_State *L, int arg)
Definition: lauxlib.c:396
g_iofile
static int g_iofile(lua_State *L, const char *f, const char *mode)
Definition: liolib.c:318
aux_close
static int aux_close(lua_State *L)
Definition: liolib.c:214
l_pclose
#define l_pclose(L, file)
Definition: liolib.c:80
LUA_REGISTRYINDEX
#define LUA_REGISTRYINDEX
Definition: lua.h:44
read_number
static int read_number(lua_State *L, FILE *f)
Definition: liolib.c:477
lua_touserdata
LUA_API void * lua_touserdata(lua_State *L, int idx)
Definition: lapi.c:432
f_read
static int f_read(lua_State *L)
Definition: liolib.c:621
funcs
static const struct luaL_Reg funcs[]
Definition: lib1.c:9
tofile
static FILE * tofile(lua_State *L)
Definition: liolib.c:187
luaL_Buffer
Definition: lauxlib.h:182
f_gc
static int f_gc(lua_State *L)
Definition: liolib.c:235
luaL_prepbuffer
#define luaL_prepbuffer(B)
Definition: lauxlib.h:215
luaL_argcheck
#define luaL_argcheck(L, cond, arg, extramsg)
Definition: lauxlib.h:132
luaL_addchar
#define luaL_addchar(B, c)
Definition: lauxlib.h:198
funcs
static const struct luaL_Reg funcs[]
Definition: lib2.c:9
lua_gettop
LUA_API int lua_gettop(lua_State *L)
Definition: lapi.c:168
lua_State
Definition: lstate.h:273
lua_Integer
LUA_INTEGER lua_Integer
Definition: lua.h:94
lua_isnil
#define lua_isnil(L, n)
Definition: lua.h:375
luaopen_os
LUAMOD_API int luaopen_os(lua_State *L)
Definition: loslib.c:426
lua_settop
LUA_API void lua_settop(lua_State *L, int idx)
Definition: lapi.c:173
luaopen_string
LUAMOD_API int luaopen_string(lua_State *L)
Definition: lstrlib.c:1797
lauxlib.h
lualib.h
lua_pushboolean
LUA_API void lua_pushboolean(lua_State *L, int b)
Definition: lapi.c:581
LUA_NUMBER_FMT
#define LUA_NUMBER_FMT
Definition: luaconf.h:461
lua_pushvalue
LUA_API void lua_pushvalue(lua_State *L, int idx)
Definition: lapi.c:246
LUAI_UACINT
#define LUAI_UACINT
Definition: luaconf.h:496
RN
Definition: liolib.c:427
io_open
static int io_open(lua_State *L)
Definition: liolib.c:269
LUA_MATHLIBNAME
#define LUA_MATHLIBNAME
Definition: lualib.h:38
f_tostring
static int f_tostring(lua_State *L)
Definition: liolib.c:177
luaopen_lib11
LUAMOD_API int luaopen_lib11(lua_State *L)
Definition: lib11.c:6
io_tmpfile
static int io_tmpfile(lua_State *L)
Definition: liolib.c:301
io_input
static int io_input(lua_State *L)
Definition: liolib.c:335
LUA_STRLIBNAME
#define LUA_STRLIBNAME
Definition: lualib.h:32
l_seeknum
#define l_seeknum
Definition: liolib.c:139
io_lines
static int io_lines(lua_State *L)
Definition: liolib.c:386
test_eof
static int test_eof(lua_State *L, FILE *f)
Definition: liolib.c:511
luaL_Reg::func
lua_CFunction func
Definition: lauxlib.h:39
lua_getlocaledecpoint
#define lua_getlocaledecpoint()
Definition: luaconf.h:659
luaopen_coroutine
LUAMOD_API int luaopen_coroutine(lua_State *L)
Definition: lcorolib.c:203
l_fseek
#define l_fseek(f, o, w)
Definition: liolib.c:137
luaL_prepbuffsize
LUALIB_API char * luaL_prepbuffsize(luaL_Buffer *B, size_t sz)
Definition: lauxlib.c:565
IO_OUTPUT
#define IO_OUTPUT
Definition: liolib.c:152
io_type
static int io_type(lua_State *L)
Definition: liolib.c:163
LUA_IOLIBNAME
#define LUA_IOLIBNAME
Definition: lualib.h:26
f_seek
static int f_seek(lua_State *L)
Definition: liolib.c:696
getiofile
static FILE * getiofile(lua_State *L, const char *findex)
Definition: liolib.c:308
LUAMOD_API
#define LUAMOD_API
Definition: luaconf.h:286
l_checkmodep
#define l_checkmodep(m)
Definition: liolib.c:89
LUA_INTEGER_FMT
#define LUA_INTEGER_FMT
Definition: luaconf.h:494
luaL_setfuncs
LUALIB_API void luaL_setfuncs(lua_State *L, const luaL_Reg *l, int nup)
Definition: lauxlib.c:916
luaL_optinteger
LUALIB_API lua_Integer luaL_optinteger(lua_State *L, int arg, lua_Integer def)
Definition: lauxlib.c:452
RN::c
int c
Definition: liolib.c:429
disptab
static const void *const disptab[NUM_OPCODES]
Definition: ljumptab.h:19
lib1_export
LUAMOD_API int lib1_export(lua_State *L)
Definition: lib1.c:16
NUM_OPCODES
#define NUM_OPCODES
Definition: lopcodes.h:312
luaL_checkstack
LUALIB_API void luaL_checkstack(lua_State *L, int space, const char *msg)
Definition: lauxlib.c:380
lua_tonumber
#define lua_tonumber(L, i)
Definition: lua.h:361
luaL_newlib
#define luaL_newlib(L, l)
Definition: lauxlib.h:129
luaL_error
LUALIB_API int luaL_error(lua_State *L, const char *fmt,...)
Definition: lauxlib.c:234
id
static int id(lua_State *L)
Definition: lib2.c:4
luaL_requiref
LUALIB_API void luaL_requiref(lua_State *L, const char *modname, lua_CFunction openf, int glb)
Definition: lauxlib.c:957
lua_isnone
#define lua_isnone(L, n)
Definition: lua.h:378
lua_newuserdatauv
LUA_API void * lua_newuserdatauv(lua_State *L, size_t size, int nuvalue)
Definition: lapi.c:1318
luaL_checkinteger
LUALIB_API lua_Integer luaL_checkinteger(lua_State *L, int arg)
Definition: lauxlib.c:442
lua_stringtonumber
LUA_API size_t lua_stringtonumber(lua_State *L, const char *s)
Definition: lapi.c:347
lua_CFunction
int(* lua_CFunction)(lua_State *L)
Definition: lua.h:106
lua_pushnil
LUA_API void lua_pushnil(lua_State *L)
Definition: lapi.c:473
lua_toboolean
LUA_API int lua_toboolean(lua_State *L, int idx)
Definition: lapi.c:375
opencheck
static void opencheck(lua_State *L, const char *fname, const char *mode)
Definition: liolib.c:261
io_flush
static int io_flush(lua_State *L)
Definition: liolib.c:727
lua_upvalueindex
#define lua_upvalueindex(i)
Definition: lua.h:45
luaL_Stream::f
FILE * f
Definition: lauxlib.h:237
io_read
static int io_read(lua_State *L)
Definition: liolib.c:616
tolstream
#define tolstream(L)
Definition: liolib.c:158
luaL_Stream::closef
lua_CFunction closef
Definition: lauxlib.h:238
luaL_addsize
#define luaL_addsize(B, s)
Definition: lauxlib.h:202
luaopen_lib2
LUAMOD_API int luaopen_lib2(lua_State *L)
Definition: lib2.c:15
luaL_pushfail
#define luaL_pushfail(L)
Definition: lauxlib.h:157
LUALIB_API
#define LUALIB_API
Definition: luaconf.h:285
f_write
static int f_write(lua_State *L)
Definition: liolib.c:689
test2
static int test2(RN *rn, const char *set)
Definition: liolib.c:454
io_close
static int io_close(lua_State *L)
Definition: liolib.c:228
newprefile
static LStream * newprefile(lua_State *L)
Definition: liolib.c:201
luaL_setmetatable
LUALIB_API void luaL_setmetatable(lua_State *L, const char *tname)
Definition: lauxlib.c:324
l_checkmode
static int l_checkmode(const char *mode)
Definition: liolib.c:40
anotherfunc
LUAMOD_API int anotherfunc(lua_State *L)
Definition: lib1.c:30
RN::f
FILE * f
Definition: liolib.c:428