Skip to content

Commit

Permalink
Merge pull request snabbco#116 from lukego/jit-tracebarrier
Browse files Browse the repository at this point in the history
Add jit.tracebarrier() primitive
  • Loading branch information
lukego authored Nov 7, 2017
2 parents d400946 + 0be85c6 commit c83fd4c
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 11 deletions.
6 changes: 6 additions & 0 deletions src/lib_jit.c
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,12 @@ LJLIB_CF(jit_status)
return (int)(L->top - L->base);
}

/* Calling this forces a trace stitch. */
LJLIB_CF(jit_tracebarrier)
{
return 0;
}

LJLIB_PUSH(top-5) LJLIB_SET(os)
LJLIB_PUSH(top-4) LJLIB_SET(arch)
LJLIB_PUSH(top-3) LJLIB_SET(version_num)
Expand Down
1 change: 1 addition & 0 deletions src/reusevm/lj_ffdef.h
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,7 @@ FFDEF(jit_on)
FFDEF(jit_off)
FFDEF(jit_flush)
FFDEF(jit_status)
FFDEF(jit_tracebarrier)
FFDEF(jit_opt_start)
FFDEF(jit_vmprofile_open)
FFDEF(jit_vmprofile_close)
Expand Down
23 changes: 12 additions & 11 deletions src/reusevm/lj_libdef.h
Original file line number Diff line number Diff line change
Expand Up @@ -271,13 +271,14 @@ static const lua_CFunction lj_lib_cf_jit[] = {
lj_cf_jit_on,
lj_cf_jit_off,
lj_cf_jit_flush,
lj_cf_jit_status
lj_cf_jit_status,
lj_cf_jit_tracebarrier
};
static const uint8_t lj_lib_init_jit[] = {
143,57,8,2,111,110,3,111,102,102,5,102,108,117,115,104,6,115,116,97,116,117,
115,252,5,194,111,115,250,252,4,196,97,114,99,104,250,252,3,203,118,101,114,
115,105,111,110,95,110,117,109,250,252,2,199,118,101,114,115,105,111,110,250,
255
143,57,9,2,111,110,3,111,102,102,5,102,108,117,115,104,6,115,116,97,116,117,
115,12,116,114,97,99,101,98,97,114,114,105,101,114,252,5,194,111,115,250,252,
4,196,97,114,99,104,250,252,3,203,118,101,114,115,105,111,110,95,110,117,109,
250,252,2,199,118,101,114,115,105,111,110,250,255
};
#endif

Expand All @@ -287,7 +288,7 @@ static const lua_CFunction lj_lib_cf_jit_opt[] = {
lj_cf_jit_opt_start
};
static const uint8_t lj_lib_init_jit_opt[] = {
147,57,1,5,115,116,97,114,116,255
148,57,1,5,115,116,97,114,116,255
};
#endif

Expand All @@ -301,7 +302,7 @@ static const lua_CFunction lj_lib_cf_jit_vmprofile[] = {
lj_cf_jit_vmprofile_stop
};
static const uint8_t lj_lib_init_jit_vmprofile[] = {
148,57,5,4,111,112,101,110,5,99,108,111,115,101,6,115,101,108,101,99,116,5,
149,57,5,4,111,112,101,110,5,99,108,111,115,101,6,115,101,108,101,99,116,5,
115,116,97,114,116,4,115,116,111,112,255
};
#endif
Expand Down Expand Up @@ -329,7 +330,7 @@ static const lua_CFunction lj_lib_cf_ffi_meta[] = {
lj_cf_ffi_meta___ipairs
};
static const uint8_t lj_lib_init_ffi_meta[] = {
153,57,19,7,95,95,105,110,100,101,120,10,95,95,110,101,119,105,110,100,101,
154,57,19,7,95,95,105,110,100,101,120,10,95,95,110,101,119,105,110,100,101,
120,4,95,95,101,113,5,95,95,108,101,110,4,95,95,108,116,4,95,95,108,101,8,95,
95,99,111,110,99,97,116,6,95,95,99,97,108,108,5,95,95,97,100,100,5,95,95,115,
117,98,5,95,95,109,117,108,5,95,95,100,105,118,5,95,95,109,111,100,5,95,95,
Expand All @@ -347,7 +348,7 @@ static const lua_CFunction lj_lib_cf_ffi_clib[] = {
lj_cf_ffi_clib___gc
};
static const uint8_t lj_lib_init_ffi_clib[] = {
171,57,3,7,95,95,105,110,100,101,120,10,95,95,110,101,119,105,110,100,101,120,
172,57,3,7,95,95,105,110,100,101,120,10,95,95,110,101,119,105,110,100,101,120,
4,95,95,103,99,255
};
#endif
Expand All @@ -359,7 +360,7 @@ static const lua_CFunction lj_lib_cf_ffi_callback[] = {
lj_cf_ffi_callback_set
};
static const uint8_t lj_lib_init_ffi_callback[] = {
174,57,3,4,102,114,101,101,3,115,101,116,252,1,199,95,95,105,110,100,101,120,
175,57,3,4,102,114,101,101,3,115,101,116,252,1,199,95,95,105,110,100,101,120,
250,255
};
#endif
Expand All @@ -386,7 +387,7 @@ static const lua_CFunction lj_lib_cf_ffi[] = {
lj_cf_ffi_load
};
static const uint8_t lj_lib_init_ffi[] = {
176,57,23,4,99,100,101,102,3,110,101,119,4,99,97,115,116,6,116,121,112,101,
177,57,23,4,99,100,101,102,3,110,101,119,4,99,97,115,116,6,116,121,112,101,
111,102,8,116,121,112,101,105,110,102,111,6,105,115,116,121,112,101,6,115,105,
122,101,111,102,7,97,108,105,103,110,111,102,8,111,102,102,115,101,116,111,
102,5,101,114,114,110,111,6,115,116,114,105,110,103,4,99,111,112,121,4,102,
Expand Down
1 change: 1 addition & 0 deletions src/reusevm/lj_recdef.h
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,7 @@ static const uint16_t recff_idmap[] = {
0,
0,
0,
0,
0x2f00+(0),
0x2f00+(1),
0x3000+(MM_eq),
Expand Down

0 comments on commit c83fd4c

Please sign in to comment.