luau/CodeGen/src/CodeGenUtils.h

40 lines
1.8 KiB
C
Raw Normal View History

2022-10-28 01:22:49 +03:00
// This file is part of the Luau programming language and is licensed under MIT License; see LICENSE.txt for details
#pragma once
#include "lobject.h"
namespace Luau
{
namespace CodeGen
{
2023-04-14 15:05:27 +03:00
bool forgLoopTableIter(lua_State* L, Table* h, int index, TValue* ra);
2022-10-28 01:22:49 +03:00
bool forgLoopNodeIter(lua_State* L, Table* h, int index, TValue* ra);
bool forgLoopNonTableFallback(lua_State* L, int insnA, int aux);
void forgPrepXnextFallback(lua_State* L, TValue* ra, int pc);
2022-11-04 10:02:37 -07:00
Closure* callProlog(lua_State* L, TValue* ra, StkId argtop, int nresults);
void callEpilogC(lua_State* L, int nresults, int n);
2024-06-07 10:09:03 -07:00
Udata* newUserdata(lua_State* L, size_t s, int tag);
2023-10-06 10:31:16 -07:00
#define CALL_FALLBACK_YIELD 1
2023-03-31 15:21:14 +03:00
Closure* callFallback(lua_State* L, StkId ra, StkId argtop, int nresults);
2023-03-24 10:34:14 -07:00
2023-05-19 11:59:59 -07:00
const Instruction* executeGETGLOBAL(lua_State* L, const Instruction* pc, StkId base, TValue* k);
const Instruction* executeSETGLOBAL(lua_State* L, const Instruction* pc, StkId base, TValue* k);
const Instruction* executeGETTABLEKS(lua_State* L, const Instruction* pc, StkId base, TValue* k);
const Instruction* executeSETTABLEKS(lua_State* L, const Instruction* pc, StkId base, TValue* k);
const Instruction* executeNAMECALL(lua_State* L, const Instruction* pc, StkId base, TValue* k);
const Instruction* executeSETLIST(lua_State* L, const Instruction* pc, StkId base, TValue* k);
const Instruction* executeFORGPREP(lua_State* L, const Instruction* pc, StkId base, TValue* k);
void executeGETVARARGSMultRet(lua_State* L, const Instruction* pc, StkId base, int rai);
void executeGETVARARGSConst(lua_State* L, StkId base, int rai, int b);
2023-05-19 11:59:59 -07:00
const Instruction* executeDUPCLOSURE(lua_State* L, const Instruction* pc, StkId base, TValue* k);
const Instruction* executePREPVARARGS(lua_State* L, const Instruction* pc, StkId base, TValue* k);
2022-10-28 01:22:49 +03:00
} // namespace CodeGen
} // namespace Luau