MCPcopy Create free account
hub / github.com/RPCSX/rpcsx / put_x64_reg_value

Function put_x64_reg_value

rpcs3/util/Thread.cpp:1078–1095  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1076}
1077
1078bool put_x64_reg_value(x64_context* context, x64_reg_t reg, usz d_size, u64 value)
1079{
1080 // save x64 reg value (for load operations)
1081 if (reg - X64R_RAX < 16)
1082 {
1083 // save the value into x64 register
1084 switch (d_size)
1085 {
1086 case 1: *X64REG(context, reg - X64R_RAX) = (value & 0xff) | (*X64REG(context, reg - X64R_RAX) & 0xffffff00); return true;
1087 case 2: *X64REG(context, reg - X64R_RAX) = (value & 0xffff) | (*X64REG(context, reg - X64R_RAX) & 0xffff0000); return true;
1088 case 4: *X64REG(context, reg - X64R_RAX) = value & 0xffffffff; return true;
1089 case 8: *X64REG(context, reg - X64R_RAX) = value; return true;
1090 }
1091 }
1092
1093 sig_log.error("put_x64_reg_value(): invalid destination (reg=%d, d_size=%lld, value=0x%llx)", +reg, d_size, value);
1094 return false;
1095}
1096
1097bool set_x64_cmp_flags(x64_context* context, usz d_size, u64 x, u64 y, bool carry = true)
1098{

Callers 1

handle_access_violationFunction · 0.85

Calls 1

errorMethod · 0.80

Tested by

no test coverage detected