зеркало из https://github.com/github/ruby.git
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:
Родитель
339295dd7c
Коммит
9a617c067f
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -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
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче