mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-06-21 19:25:00 -07:00
59 lines
1.5 KiB
C
59 lines
1.5 KiB
C
// Copyright (c) Epic Games Tools
|
|
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
|
|
|
////////////////////////////////
|
|
//~ rjf: Generated Code
|
|
|
|
#include "regs/generated/regs.meta.c"
|
|
|
|
////////////////////////////////
|
|
//~ rjf: Helpers
|
|
|
|
internal U64
|
|
regs_rip_from_arch_block(Arch arch, void *block)
|
|
{
|
|
U64 result = 0;
|
|
if(block != 0) switch(arch)
|
|
{
|
|
default:{}break;
|
|
case Arch_x64:{result = ((REGS_RegBlockX64 *)block)->rip.u64;}break;
|
|
case Arch_x86:{result = (U64)((REGS_RegBlockX86 *)block)->eip.u32;}break;
|
|
}
|
|
return result;
|
|
}
|
|
|
|
internal U64
|
|
regs_rsp_from_arch_block(Arch arch, void *block)
|
|
{
|
|
U64 result = 0;
|
|
if(block != 0) switch(arch)
|
|
{
|
|
default:{}break;
|
|
case Arch_x64:{result = ((REGS_RegBlockX64 *)block)->rsp.u64;}break;
|
|
case Arch_x86:{result = (U64)((REGS_RegBlockX86 *)block)->esp.u32;}break;
|
|
}
|
|
return result;
|
|
}
|
|
|
|
internal void
|
|
regs_arch_block_write_rip(Arch arch, void *block, U64 rip)
|
|
{
|
|
if(block != 0) switch(arch)
|
|
{
|
|
default:{}break;
|
|
case Arch_x64:{((REGS_RegBlockX64 *)block)->rip.u64 = rip;}break;
|
|
case Arch_x86:{((REGS_RegBlockX86 *)block)->eip.u32 = (U32)rip;}break;
|
|
}
|
|
}
|
|
|
|
internal void
|
|
regs_arch_block_write_rsp(Arch arch, void *block, U64 rsp)
|
|
{
|
|
if(block != 0) switch(arch)
|
|
{
|
|
default:{}break;
|
|
case Arch_x64:{((REGS_RegBlockX64 *)block)->rsp.u64 = rsp;}break;
|
|
case Arch_x86:{((REGS_RegBlockX86 *)block)->esp.u32 = (U32)rsp;}break;
|
|
}
|
|
}
|