add registers to inlined instruction functors

This commit is contained in:
Mark
2023-10-01 18:55:31 -06:00
parent a1ceeb697a
commit 27b971cbfa

View File

@@ -1660,29 +1660,31 @@ fn generate_instruction_preface() -> TokenStream {
let (name, arity) = self.to_name_and_arity(); let (name, arity) = self.to_name_and_arity();
functor!(atom!("execute_default"), [atom(name), fixnum(arity)]) functor!(atom!("execute_default"), [atom(name), fixnum(arity)])
} }
&Instruction::CallIsAtom(_) | &Instruction::CallIsAtom(r) |
&Instruction::CallIsAtomic(_) | &Instruction::CallIsAtomic(r) |
&Instruction::CallIsCompound(_) | &Instruction::CallIsCompound(r) |
&Instruction::CallIsInteger(_) | &Instruction::CallIsInteger(r) |
&Instruction::CallIsNumber(_) | &Instruction::CallIsNumber(r) |
&Instruction::CallIsRational(_) | &Instruction::CallIsRational(r) |
&Instruction::CallIsFloat(_) | &Instruction::CallIsFloat(r) |
&Instruction::CallIsNonVar(_) | &Instruction::CallIsNonVar(r) |
&Instruction::CallIsVar(_) => { &Instruction::CallIsVar(r) => {
let (name, arity) = self.to_name_and_arity(); let (name, arity) = self.to_name_and_arity();
functor!(atom!("call"), [atom(name), fixnum(arity)]) let rt_stub = reg_type_into_functor(r);
functor!(atom!("call"), [atom(name), fixnum(arity), str(h, 0)], [rt_stub])
} }
&Instruction::ExecuteIsAtom(_) | &Instruction::ExecuteIsAtom(r) |
&Instruction::ExecuteIsAtomic(_) | &Instruction::ExecuteIsAtomic(r) |
&Instruction::ExecuteIsCompound(_) | &Instruction::ExecuteIsCompound(r) |
&Instruction::ExecuteIsInteger(_) | &Instruction::ExecuteIsInteger(r) |
&Instruction::ExecuteIsNumber(_) | &Instruction::ExecuteIsNumber(r) |
&Instruction::ExecuteIsRational(_) | &Instruction::ExecuteIsRational(r) |
&Instruction::ExecuteIsFloat(_) | &Instruction::ExecuteIsFloat(r) |
&Instruction::ExecuteIsNonVar(_) | &Instruction::ExecuteIsNonVar(r) |
&Instruction::ExecuteIsVar(_) => { &Instruction::ExecuteIsVar(r) => {
let (name, arity) = self.to_name_and_arity(); let (name, arity) = self.to_name_and_arity();
functor!(atom!("execute"), [atom(name), fixnum(arity)]) let rt_stub = reg_type_into_functor(r);
functor!(atom!("execute"), [atom(name), fixnum(arity), str(h, 0)], [rt_stub])
} }
// //
&Instruction::CallAtomChars | &Instruction::CallAtomChars |