class

LLVM::ABI::X86_64

Inherits LLVM::ABI / Reference / Object

Based on https://github.com/rust-lang/rust/blob/29ac04402d53d358a1f6200bea45a301ff05b2d1/src/librustc_trans/trans/cabi_x86_64.rs See also, section 3.2.3 of the System V Application Binary Interface AMD64 Architecture Processor Supplement

Constants

MAX_INT_REGS = 6
MAX_SSE_REGS = 8

Instance methods

abi_info(atys : Array(Type), rty : Type, ret_def : Bool, context : Context) : LLVM::ABI::FunctionType
Source
align(type : Type) : Int32
Source
all_mem(reg_classes)
Source
classify(ty, cls, ix, off)
Source
classify(type)
Source
classify_struct(tys, cls, i, off, packed) : Nil
Source
fixup(ty, cls) : Nil
Source
has_misaligned_fields?(type : Type, offset : Int = 0) : Bool
Source
int_register?(type) : Bool
Source
llreg(context, reg_classes) : LLVM::Type
Source
llvec_len(reg_classes) : Int32
Source
pass_by_val?(cls) : Bool
Source
register?(type) : Bool
Source
size(type : Type) : Int32
Source
sret?(cls) : Bool
Source
sse_register?(type) : Bool
Source
unify(cls, i, newv)
Source
x86_64_type(type, ind_attr, context, &) : Tuple(ArgType, Int32, Int32)

returns the LLVM type (with attributes) and the number of integer and SSE registers needed to pass this value directly (ie. not using the stack)

Source

Nested types