TPDE
Loading...
Searching...
No Matches
tpde::CompilerBase< Adaptor, Derived, Config >::CallArg Struct Reference

Call argument, enhancing an IRValueRef with information on how to pass it. More...

#include <CompilerBase.hpp>

Public Types

enum class  Flag : u8 {
  none , zext , sext , sret ,
  byval , allow_split
}
 

Public Attributes

IRValueRef value
 Argument IR value.
 
Flag flag
 Value handling flag.
 
u8 byval_align
 For Flag::byval, the stack alignment.
 
u8 ext_bits = 0
 For Flag::zext and Flag::sext, the source bit width.
 
u32 byval_size
 For Flag::byval, the argument size.
 

Detailed Description

template<IRAdaptor Adaptor, typename Derived, CompilerConfig Config = CompilerConfigDefault>
struct tpde::CompilerBase< Adaptor, Derived, Config >::CallArg

Call argument, enhancing an IRValueRef with information on how to pass it.

Definition at line 214 of file CompilerBase.hpp.

Member Enumeration Documentation

◆ Flag

template<IRAdaptor Adaptor, typename Derived, CompilerConfig Config = CompilerConfigDefault>
enum class tpde::CompilerBase::CallArg::Flag : u8
strong
Enumerator
none 

No extra handling.

zext 

Scalar integer, zero-extend to target-specific size.

sext 

Scalar integer, sign-extend to target-specific size.

sret 

Struct return pointer.

byval 

Value is copied into corresponding stack slot.

allow_split 

Value parts can be split across stack/registers.

Definition at line 215 of file CompilerBase.hpp.


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