vox.be.abi

Members

Aliases

ArgClassifier
alias ArgClassifier = void function(CompilationContext* c, ref AbiState state)
Undocumented in source.

Enums

AbiClass
enum AbiClass

2 AbiClass slots is enough to classify structs containing m128/m256/m512 types. They can be the only value in the struct. The only rules needed to find types that are passed in registers, are: - m128/m256/m512 must have offset of 0 - basic types must have offset < 16

InMemory
enum InMemory
Undocumented in source.
PassClass
enum PassClass
Undocumented in source.

Functions

classify_array
InMemory classify_array(CompilationContext* c, IrIndex paramType, AbiClass[2] resultClasses, uint offset)
Undocumented in source. Be warned that the author may not have intended to support it.
classify_struct
InMemory classify_struct(CompilationContext* c, IrIndex paramType, AbiClass[2] resultClasses, uint offset)
Undocumented in source. Be warned that the author may not have intended to support it.
classify_value
Sysv_AbiParamClass classify_value(CompilationContext* c, IrIndex paramType)
Undocumented in source. Be warned that the author may not have intended to support it.
classify_value_impl
InMemory classify_value_impl(CompilationContext* c, IrIndex paramType, AbiClass[2] resultClasses, uint offset)
Undocumented in source. Be warned that the author may not have intended to support it.
func_pass_lower_abi
void func_pass_lower_abi(CompilationContext* c, IrFunction* ir, IrIndex funcIndex, IrBuilder builder)
Undocumented in source. Be warned that the author may not have intended to support it.
isMemory
bool isMemory(PassClass passClass)
Undocumented in source. Be warned that the author may not have intended to support it.
merge_classes
AbiClass merge_classes(AbiClass a, AbiClass b)
Undocumented in source. Be warned that the author may not have intended to support it.
receiveMultiValue
IrIndex receiveMultiValue(IrIndex beforeInstr, PhysReg[2] regs, IrIndex result, IrBuilder builder)
Undocumented in source. Be warned that the author may not have intended to support it.
simplifyConstant128
IrIndex[2] simplifyConstant128(IrIndex insertBefore, IrIndex value, IrBuilder builder, CompilationContext* c)
Undocumented in source. Be warned that the author may not have intended to support it.
sysv64_classify
void sysv64_classify(CompilationContext* c, AbiState state)
Undocumented in source. Be warned that the author may not have intended to support it.
sysv64_syscall_classify
void sysv64_syscall_classify(CompilationContext* c, AbiState state)
Undocumented in source. Be warned that the author may not have intended to support it.
win64_classify
void win64_classify(CompilationContext* c, AbiState state)
Undocumented in source. Be warned that the author may not have intended to support it.

Manifest constants

MAX_ARG_REGS
enum MAX_ARG_REGS;
Undocumented in source.

Static variables

classify_abis
ArgClassifier[] classify_abis;
Undocumented in source.

Structs

AbiState
struct AbiState
Undocumented in source.
FunctionAbi
struct FunctionAbi
Undocumented in source.
Sysv_AbiParamClass
struct Sysv_AbiParamClass
Undocumented in source.

Unions

ParamLocation
union ParamLocation
Undocumented in source.

Meta

Authors

Andrey Penechko.