Lines Matching refs:insts
33 insts: Vec<MaybeInst>,
60 insts: vec![],
160 self.compiled.matches = vec![self.insts.len()];
191 self.compiled.matches.push(self.insts.len());
200 self.compiled.matches.push(self.insts.len());
206 self.compiled.insts =
207 self.insts.into_iter().map(|inst| inst.unwrap()).collect();
213 /// Compile expr into self.insts, returning a patch on success,
219 /// The main thing that a c_* method does is mutate `self.insts`
221 /// the given expression. `self.insts` contains MaybeInsts rather than
225 /// about the compiled instructions emitted to `self.insts`. The
235 /// self.insts = [ ..., i1, i2, ..., iexit1, ..., iexitn, ...]
253 /// self.insts = [ ..., i1, ..., iexit1, ..., i2, ..., iexit2 ]
412 let entry = self.insts.len();
447 Ok(Some(Patch { hole, entry: self.insts.len() - 1 }))
453 Ok(Some(Patch { hole, entry: self.insts.len() - 1 }))
473 Ok(Some(Patch { hole, entry: self.insts.len() - 1 }))
487 let first_split_entry = self.insts.len();
493 let next = self.insts.len();
501 let next = self.insts.len();
513 Ok(Some(Patch { hole, entry: self.insts.len() - 1 }))
547 let first_split_entry = self.insts.len();
558 let next = self.insts.len();
612 let split_entry = self.insts.len();
632 let split_entry = self.insts.len();
749 Patch { hole: Hole::None, entry: self.insts.len() }
756 self.insts[pc].fill(goto);
767 let next = self.insts.len();
781 self.insts[pc].fill_split(goto1, goto2);
785 self.insts[pc].half_fill_split_goto1(goto1);
789 self.insts[pc].half_fill_split_goto2(goto2);
814 self.insts.push(MaybeInst::Compiled(inst));
818 let hole = self.insts.len();
819 self.insts.push(MaybeInst::Uncompiled(inst));
824 let hole = self.insts.len();
825 self.insts.push(MaybeInst::Split);
830 self.insts.pop();
838 self.extra_inst_bytes + (self.insts.len() * size_of::<Inst>());
1010 initial_entry = Some(self.c.insts.len());
1047 let pc = self.c.insts.len();
1066 from_inst = self.c.insts.len().checked_sub(1).unwrap();