Mercurial
comparison third_party/luajit/src/lj_record.h @ 186:8cf4ec5e2191 hg-web
Fixed merge conflict.
| author | MrJuneJune <me@mrjunejune.com> |
|---|---|
| date | Fri, 23 Jan 2026 22:38:59 -0800 |
| parents | 94705b5986b3 |
| children |
comparison
equal
deleted
inserted
replaced
| 176:fed99fc04e12 | 186:8cf4ec5e2191 |
|---|---|
| 1 /* | |
| 2 ** Trace recorder (bytecode -> SSA IR). | |
| 3 ** Copyright (C) 2005-2023 Mike Pall. See Copyright Notice in luajit.h | |
| 4 */ | |
| 5 | |
| 6 #ifndef _LJ_RECORD_H | |
| 7 #define _LJ_RECORD_H | |
| 8 | |
| 9 #include "lj_obj.h" | |
| 10 #include "lj_jit.h" | |
| 11 | |
| 12 #if LJ_HASJIT | |
| 13 /* Context for recording an indexed load/store. */ | |
| 14 typedef struct RecordIndex { | |
| 15 TValue tabv; /* Runtime value of table (or indexed object). */ | |
| 16 TValue keyv; /* Runtime value of key. */ | |
| 17 TValue valv; /* Runtime value of stored value. */ | |
| 18 TValue mobjv; /* Runtime value of metamethod object. */ | |
| 19 GCtab *mtv; /* Runtime value of metatable object. */ | |
| 20 cTValue *oldv; /* Runtime value of previously stored value. */ | |
| 21 TRef tab; /* Table (or indexed object) reference. */ | |
| 22 TRef key; /* Key reference. */ | |
| 23 TRef val; /* Value reference for a store or 0 for a load. */ | |
| 24 TRef mt; /* Metatable reference. */ | |
| 25 TRef mobj; /* Metamethod object reference. */ | |
| 26 int idxchain; /* Index indirections left or 0 for raw lookup. */ | |
| 27 } RecordIndex; | |
| 28 | |
| 29 LJ_FUNC int lj_record_objcmp(jit_State *J, TRef a, TRef b, | |
| 30 cTValue *av, cTValue *bv); | |
| 31 LJ_FUNC void lj_record_stop(jit_State *J, TraceLink linktype, TraceNo lnk); | |
| 32 LJ_FUNC TRef lj_record_constify(jit_State *J, cTValue *o); | |
| 33 LJ_FUNC TRef lj_record_vload(jit_State *J, TRef ref, MSize idx, IRType t); | |
| 34 | |
| 35 LJ_FUNC void lj_record_call(jit_State *J, BCReg func, ptrdiff_t nargs); | |
| 36 LJ_FUNC void lj_record_tailcall(jit_State *J, BCReg func, ptrdiff_t nargs); | |
| 37 LJ_FUNC void lj_record_ret(jit_State *J, BCReg rbase, ptrdiff_t gotresults); | |
| 38 | |
| 39 LJ_FUNC int lj_record_mm_lookup(jit_State *J, RecordIndex *ix, MMS mm); | |
| 40 LJ_FUNC TRef lj_record_idx(jit_State *J, RecordIndex *ix); | |
| 41 LJ_FUNC int lj_record_next(jit_State *J, RecordIndex *ix); | |
| 42 | |
| 43 LJ_FUNC void lj_record_ins(jit_State *J); | |
| 44 LJ_FUNC void lj_record_setup(jit_State *J); | |
| 45 #endif | |
| 46 | |
| 47 #endif |