From: Markus Triska Date: Wed, 7 Dec 2022 22:14:08 +0000 (+0100) Subject: more uses of newly available deref_register(n) X-Git-Tag: v0.9.2~256^2 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=309e5b320eb29dd3aa9cef4c7a2dc4b82dcd7d57;p=scryer-prolog.git more uses of newly available deref_register(n) --- diff --git a/src/machine/system_calls.rs b/src/machine/system_calls.rs index f0dbc178..275c0ce7 100644 --- a/src/machine/system_calls.rs +++ b/src/machine/system_calls.rs @@ -4165,11 +4165,8 @@ impl Machine { #[inline(always)] pub(crate) fn op_declaration(&mut self) -> CallResult { - let priority = self.machine_st.registers[1]; - let specifier = self.machine_st.registers[2]; - let op = self.machine_st.registers[3]; - - let priority = self.machine_st.store(self.machine_st.deref(priority)); + let priority = self.deref_register(1); + let specifier = cell_as_atom_cell!(self.deref_register(2)).get_name(); let priority = match Number::try_from(priority) { Ok(Number::Integer(n)) => n.to_u16().unwrap(), @@ -4179,10 +4176,7 @@ impl Machine { } }; - let specifier = cell_as_atom_cell!(self.machine_st.store(self.machine_st.deref(specifier))) - .get_name(); - - let op = read_heap_cell!(self.machine_st.store(self.machine_st.deref(op)), + let op = read_heap_cell!(self.deref_register(3), (HeapCellValueTag::Char, c) => { self.machine_st.atom_tbl.build_with(&c.to_string()) } @@ -4283,16 +4277,15 @@ impl Machine { #[inline(always)] pub(crate) fn get_attr_var_queue_delimiter(&mut self) { - let addr = self.machine_st.registers[1]; + let addr = self.deref_register(1); let value = Fixnum::build_with(self.machine_st.attr_var_init.attr_var_queue.len() as i64); - self.machine_st.unify_fixnum(value, self.machine_st.store(self.machine_st.deref(addr))); + self.machine_st.unify_fixnum(value, addr); } #[inline(always)] pub(crate) fn get_attr_var_queue_beyond(&mut self) { - let addr = self.machine_st.registers[1]; - let addr = self.machine_st.store(self.machine_st.deref(addr)); + let addr = self.deref_register(1); let b = match Number::try_from(addr) { Ok(Number::Integer(n)) => n.to_usize(),