YJIT: Generate side exits as late as possible (#7612)

* YJIT: Generate side exits late as possible

* YJIT: s/for_stack_size/with_stack_size/

* YJIT: s/get_counter/exit_counter/
This commit is contained in:
Takashi Kokubun 2023-03-30 14:15:59 -07:00 коммит произвёл GitHub
Родитель 339295dd7c
Коммит 9a617c067f
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
2 изменённых файлов: 215 добавлений и 238 удалений

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -1516,6 +1516,16 @@ impl Context {
self.stack_size
}
/// Create a new Context instance with a given stack_size and sp_offset adjusted
/// accordingly. This is useful when you want to virtually rewind a stack_size for
/// generating a side exit while considering past sp_offset changes on gen_save_sp.
pub fn with_stack_size(&self, stack_size: u8) -> Context {
let mut ctx = self.clone();
ctx.sp_offset -= (ctx.get_stack_size() as isize - stack_size as isize) as i8;
ctx.stack_size = stack_size;
ctx
}
pub fn get_sp_offset(&self) -> i8 {
self.sp_offset
}