Add registers XMM8--15 to from_dwarf_regnum and invoke_call_return_on_stack.

This commit is contained in:
Nick Lewycky
2019-10-16 10:34:37 -07:00
parent feeb9cd8f9
commit f99d0360d2

View File

@ -672,6 +672,37 @@ pub mod x64 {
stack_offset -= 1;
stack[stack_offset] = stack.as_ptr().offset(last_stack_offset as isize) as usize as u64; // rbp
stack_offset -= 1;
stack[stack_offset] =
known_registers[X64Register::XMM(XMM::XMM15).to_index().0].unwrap_or(0);
stack_offset -= 1;
stack[stack_offset] =
known_registers[X64Register::XMM(XMM::XMM14).to_index().0].unwrap_or(0);
stack_offset -= 1;
stack[stack_offset] =
known_registers[X64Register::XMM(XMM::XMM13).to_index().0].unwrap_or(0);
stack_offset -= 1;
stack[stack_offset] =
known_registers[X64Register::XMM(XMM::XMM12).to_index().0].unwrap_or(0);
stack_offset -= 1;
stack[stack_offset] =
known_registers[X64Register::XMM(XMM::XMM11).to_index().0].unwrap_or(0);
stack_offset -= 1;
stack[stack_offset] =
known_registers[X64Register::XMM(XMM::XMM10).to_index().0].unwrap_or(0);
stack_offset -= 1;
stack[stack_offset] =
known_registers[X64Register::XMM(XMM::XMM9).to_index().0].unwrap_or(0);
stack_offset -= 1;
stack[stack_offset] =
known_registers[X64Register::XMM(XMM::XMM8).to_index().0].unwrap_or(0);
stack_offset -= 1;
stack[stack_offset] =
known_registers[X64Register::XMM(XMM::XMM7).to_index().0].unwrap_or(0);
@ -1074,6 +1105,14 @@ pub mod x64 {
22 => X64Register::XMM(XMM::XMM5),
23 => X64Register::XMM(XMM::XMM6),
24 => X64Register::XMM(XMM::XMM7),
25 => X64Register::XMM(XMM::XMM8),
26 => X64Register::XMM(XMM::XMM9),
27 => X64Register::XMM(XMM::XMM10),
28 => X64Register::XMM(XMM::XMM11),
29 => X64Register::XMM(XMM::XMM12),
30 => X64Register::XMM(XMM::XMM13),
31 => X64Register::XMM(XMM::XMM14),
32 => X64Register::XMM(XMM::XMM15),
_ => return None,
})
}