ReXGlue SDK
Loading...
Searching...
No Matches
rex::ppc::PPCCodegenFlags Struct Reference

#include <rex/ppc/image.h>

Public Attributes

bool skip_lr = false
bool ctr_as_local = false
bool xer_as_local = false
bool reserved_as_local = false
bool skip_msr = false
bool cr_as_local = false
bool non_argument_as_local = false
bool non_volatile_as_local = false

Detailed Description

Codegen options that change how the generated code treats registers and state.

Member Data Documentation

◆ cr_as_local

bool rex::ppc::PPCCodegenFlags::cr_as_local = false

Keeps the CR fields in local variables instead of ctx.cr0 to ctx.cr7.

◆ ctr_as_local

bool rex::ppc::PPCCodegenFlags::ctr_as_local = false

Keeps CTR in a local variable instead of ctx.ctr. Config key ctr_as_local.

◆ non_argument_as_local

bool rex::ppc::PPCCodegenFlags::non_argument_as_local = false

Keeps r0, r11, r12, f0 and v32 to v63 in local variables.

◆ non_volatile_as_local

bool rex::ppc::PPCCodegenFlags::non_volatile_as_local = false

Keeps r14 and above, f14 and above and the high vector registers in locals.

◆ reserved_as_local

bool rex::ppc::PPCCodegenFlags::reserved_as_local = false

Keeps the reservation register in a local variable instead of ctx.reserved.

◆ skip_lr

bool rex::ppc::PPCCodegenFlags::skip_lr = false

Omits the ctx.lr store and mflr read between guest functions. Imports store it.

◆ skip_msr

bool rex::ppc::PPCCodegenFlags::skip_msr = false

Omits the global lock check at mfmsr, and the MSR update and the global lock enter and leave at mtmsrd. Config key skip_msr.

◆ xer_as_local

bool rex::ppc::PPCCodegenFlags::xer_as_local = false

Keeps XER in a local variable instead of ctx.xer. Config key xer_as_local.


The documentation for this struct was generated from the following file: