Flutter Engine
The Flutter Engine
Public Member Functions | Static Public Attributes | List of all members
dart::CallingConventions Class Reference

#include <constants_arm.h>

Public Member Functions

 COMPILE_ASSERT (((R(kFirstNonArgumentRegister)|R(kSecondNonArgumentRegister)) &(kArgumentRegisters|R(kPointerToReturnStructRegisterCall)))==0)
 
 COMPILE_ASSERT (((R(kFirstNonArgumentRegister)|R(kSecondNonArgumentRegister)) &(kArgumentRegisters|R(kPointerToReturnStructRegisterCall)))==0)
 
 COMPILE_ASSERT (((R(kFirstNonArgumentRegister)|R(kSecondNonArgumentRegister)) &(kArgumentRegisters|R(kPointerToReturnStructRegisterCall)))==0)
 
 COMPILE_ASSERT ((kArgumentRegisters &kReservedCpuRegisters)==0)
 
 COMPILE_ASSERT (((R(kFfiAnyNonAbiRegister)) &kCalleeSaveCpuRegisters) !=0)
 
 COMPILE_ASSERT (((R(kFirstNonArgumentRegister)|R(kSecondNonArgumentRegister)) &(kArgumentRegisters|R(kPointerToReturnStructRegisterCall)))==0)
 

Static Public Attributes

static constexpr intptr_t kArgumentRegisters = kAbiArgumentCpuRegs
 
static const Register ArgumentRegisters []
 
static constexpr intptr_t kNumArgRegs = 4
 
static constexpr Register kPointerToReturnStructRegisterCall = R0
 
static constexpr intptr_t kFpuArgumentRegisters = 0
 
static const FpuRegister FpuArgumentRegisters []
 
static constexpr intptr_t kNumFpuArgRegs = 4
 
static const DRegister FpuDArgumentRegisters []
 
static constexpr intptr_t kNumDFpuArgRegs = 8
 
static const SRegister FpuSArgumentRegisters []
 
static constexpr intptr_t kNumSFpuArgRegs = 16
 
static constexpr bool kArgumentIntRegXorFpuReg = false
 
static constexpr intptr_t kCalleeSaveCpuRegisters = kAbiPreservedCpuRegs
 
static constexpr AlignmentStrategy kArgumentRegisterAlignment
 
static constexpr AlignmentStrategy kArgumentRegisterAlignmentVarArgs
 
static constexpr AlignmentStrategy kArgumentStackAlignment
 
static constexpr AlignmentStrategy kArgumentStackAlignmentVarArgs
 
static constexpr AlignmentStrategy kFieldAlignment = kAlignedToValueSize
 
static constexpr ExtensionStrategy kReturnRegisterExtension = kExtendedTo4
 
static constexpr ExtensionStrategy kArgumentRegisterExtension = kExtendedTo4
 
static constexpr ExtensionStrategy kArgumentStackExtension = kExtendedTo4
 
static constexpr Register kReturnReg = R0
 
static constexpr Register kSecondReturnReg = R1
 
static constexpr FpuRegister kReturnFpuReg = Q0
 
static constexpr Register kPointerToReturnStructRegisterReturn = kReturnReg
 
static constexpr Register kFirstNonArgumentRegister = R8
 
static constexpr Register kSecondNonArgumentRegister = R9
 
static constexpr Register kFfiAnyNonAbiRegister = R4
 
static constexpr Register kStackPointerRegister = SPREG
 
static const XmmRegister FpuArgumentRegisters []
 
static constexpr intptr_t kXmmArgumentRegisters = 0
 
static constexpr bool kUsesRet4 = true
 
static constexpr XmmRegister kReturnFpuReg = XMM0
 
static constexpr Register kArg1Reg = RDI
 
static constexpr Register kArg2Reg = RSI
 
static constexpr Register kArg3Reg = RDX
 
static constexpr Register kArg4Reg = RCX
 
static constexpr Register kArg5Reg = R8
 
static constexpr Register kArg6Reg = R9
 
static constexpr Register kVarArgFpuRegisterCount = RAX
 
static constexpr intptr_t kShadowSpaceBytes = 0
 
static constexpr intptr_t kVolatileCpuRegisters
 
static constexpr RegList kVolatileXmmRegisters = kAbiVolatileFpuRegs
 
static constexpr intptr_t kCalleeSaveXmmRegisters = 0
 
static constexpr XmmRegister xmmFirstNonParameterReg = XMM8
 
static constexpr FpuRegister kSecondReturnFpuReg = XMM1
 

Detailed Description

Definition at line 692 of file constants_arm.h.

Member Function Documentation

◆ COMPILE_ASSERT() [1/6]

dart::CallingConventions::COMPILE_ASSERT ( ((R(kFfiAnyNonAbiRegister)) &kCalleeSaveCpuRegisters) !  = 0)

◆ COMPILE_ASSERT() [2/6]

◆ COMPILE_ASSERT() [3/6]

◆ COMPILE_ASSERT() [4/6]

◆ COMPILE_ASSERT() [5/6]

◆ COMPILE_ASSERT() [6/6]

dart::CallingConventions::COMPILE_ASSERT ( (kArgumentRegisters &kReservedCpuRegisters = =0)

Member Data Documentation

◆ ArgumentRegisters

static const Register dart::CallingConventions::ArgumentRegisters
static

Definition at line 695 of file constants_arm.h.

◆ FpuArgumentRegisters [1/2]

static const XmmRegister dart::CallingConventions::FpuArgumentRegisters
static

Definition at line 701 of file constants_arm.h.

◆ FpuArgumentRegisters [2/2]

const XmmRegister dart::CallingConventions::FpuArgumentRegisters[]
static

Definition at line 465 of file constants_ia32.h.

◆ FpuDArgumentRegisters

const DRegister dart::CallingConventions::FpuDArgumentRegisters[]
static

Definition at line 703 of file constants_arm.h.

◆ FpuSArgumentRegisters

const SRegister dart::CallingConventions::FpuSArgumentRegisters[]
static

Definition at line 705 of file constants_arm.h.

◆ kArg1Reg

constexpr Register dart::CallingConventions::kArg1Reg = RDI
staticconstexpr

Definition at line 587 of file constants_x64.h.

◆ kArg2Reg

constexpr Register dart::CallingConventions::kArg2Reg = RSI
staticconstexpr

Definition at line 588 of file constants_x64.h.

◆ kArg3Reg

constexpr Register dart::CallingConventions::kArg3Reg = RDX
staticconstexpr

Definition at line 589 of file constants_x64.h.

◆ kArg4Reg

constexpr Register dart::CallingConventions::kArg4Reg = RCX
staticconstexpr

Definition at line 590 of file constants_x64.h.

◆ kArg5Reg

constexpr Register dart::CallingConventions::kArg5Reg = R8
staticconstexpr

Definition at line 591 of file constants_x64.h.

◆ kArg6Reg

constexpr Register dart::CallingConventions::kArg6Reg = R9
staticconstexpr

Definition at line 592 of file constants_x64.h.

◆ kArgumentIntRegXorFpuReg

static constexpr bool dart::CallingConventions::kArgumentIntRegXorFpuReg = false
staticconstexpr

Definition at line 708 of file constants_arm.h.

◆ kArgumentRegisterAlignment

static constexpr AlignmentStrategy dart::CallingConventions::kArgumentRegisterAlignment
staticconstexpr
Initial value:

Definition at line 713 of file constants_arm.h.

◆ kArgumentRegisterAlignmentVarArgs

static constexpr AlignmentStrategy dart::CallingConventions::kArgumentRegisterAlignmentVarArgs
staticconstexpr
Initial value:
=
static constexpr AlignmentStrategy kArgumentRegisterAlignment

Definition at line 715 of file constants_arm.h.

◆ kArgumentRegisterExtension

static constexpr ExtensionStrategy dart::CallingConventions::kArgumentRegisterExtension = kExtendedTo4
staticconstexpr

Definition at line 735 of file constants_arm.h.

◆ kArgumentRegisters

static constexpr intptr_t dart::CallingConventions::kArgumentRegisters = kAbiArgumentCpuRegs
staticconstexpr

Definition at line 694 of file constants_arm.h.

◆ kArgumentStackAlignment

static constexpr AlignmentStrategy dart::CallingConventions::kArgumentStackAlignment
staticconstexpr
Initial value:

Definition at line 719 of file constants_arm.h.

◆ kArgumentStackAlignmentVarArgs

static constexpr AlignmentStrategy dart::CallingConventions::kArgumentStackAlignmentVarArgs
staticconstexpr
Initial value:
=
static constexpr AlignmentStrategy kArgumentStackAlignment

Definition at line 721 of file constants_arm.h.

◆ kArgumentStackExtension

static constexpr ExtensionStrategy dart::CallingConventions::kArgumentStackExtension = kExtendedTo4
staticconstexpr

Definition at line 736 of file constants_arm.h.

◆ kCalleeSaveCpuRegisters

static constexpr intptr_t dart::CallingConventions::kCalleeSaveCpuRegisters = kAbiPreservedCpuRegs
staticconstexpr

Definition at line 710 of file constants_arm.h.

◆ kCalleeSaveXmmRegisters

constexpr intptr_t dart::CallingConventions::kCalleeSaveXmmRegisters = 0
staticconstexpr

Definition at line 627 of file constants_x64.h.

◆ kFfiAnyNonAbiRegister

static constexpr Register dart::CallingConventions::kFfiAnyNonAbiRegister = R4
staticconstexpr

Definition at line 746 of file constants_arm.h.

◆ kFieldAlignment

static constexpr AlignmentStrategy dart::CallingConventions::kFieldAlignment = kAlignedToValueSize
staticconstexpr

Definition at line 729 of file constants_arm.h.

◆ kFirstNonArgumentRegister

static constexpr Register dart::CallingConventions::kFirstNonArgumentRegister = R8
staticconstexpr

Definition at line 744 of file constants_arm.h.

◆ kFpuArgumentRegisters

static constexpr intptr_t dart::CallingConventions::kFpuArgumentRegisters = 0
staticconstexpr

Definition at line 699 of file constants_arm.h.

◆ kNumArgRegs

static constexpr intptr_t dart::CallingConventions::kNumArgRegs = 4
staticconstexpr

Definition at line 696 of file constants_arm.h.

◆ kNumDFpuArgRegs

constexpr intptr_t dart::CallingConventions::kNumDFpuArgRegs = 8
staticconstexpr

Definition at line 704 of file constants_arm.h.

◆ kNumFpuArgRegs

static constexpr intptr_t dart::CallingConventions::kNumFpuArgRegs = 4
staticconstexpr

Definition at line 702 of file constants_arm.h.

◆ kNumSFpuArgRegs

constexpr intptr_t dart::CallingConventions::kNumSFpuArgRegs = 16
staticconstexpr

Definition at line 706 of file constants_arm.h.

◆ kPointerToReturnStructRegisterCall

static constexpr Register dart::CallingConventions::kPointerToReturnStructRegisterCall = R0
staticconstexpr

Definition at line 697 of file constants_arm.h.

◆ kPointerToReturnStructRegisterReturn

static constexpr Register dart::CallingConventions::kPointerToReturnStructRegisterReturn = kReturnReg
staticconstexpr

Definition at line 741 of file constants_arm.h.

◆ kReturnFpuReg [1/2]

static constexpr FpuRegister dart::CallingConventions::kReturnFpuReg = Q0
staticconstexpr

Definition at line 740 of file constants_arm.h.

◆ kReturnFpuReg [2/2]

constexpr XmmRegister dart::CallingConventions::kReturnFpuReg = XMM0
staticconstexpr

Definition at line 490 of file constants_ia32.h.

◆ kReturnReg

static constexpr Register dart::CallingConventions::kReturnReg = R0
staticconstexpr

Definition at line 738 of file constants_arm.h.

◆ kReturnRegisterExtension

static constexpr ExtensionStrategy dart::CallingConventions::kReturnRegisterExtension = kExtendedTo4
staticconstexpr

Definition at line 734 of file constants_arm.h.

◆ kSecondNonArgumentRegister

static constexpr Register dart::CallingConventions::kSecondNonArgumentRegister = R9
staticconstexpr

Definition at line 745 of file constants_arm.h.

◆ kSecondReturnFpuReg

constexpr FpuRegister dart::CallingConventions::kSecondReturnFpuReg = XMM1
staticconstexpr

Definition at line 634 of file constants_x64.h.

◆ kSecondReturnReg

static constexpr Register dart::CallingConventions::kSecondReturnReg = R1
staticconstexpr

Definition at line 739 of file constants_arm.h.

◆ kShadowSpaceBytes

constexpr intptr_t dart::CallingConventions::kShadowSpaceBytes = 0
staticconstexpr

Definition at line 619 of file constants_x64.h.

◆ kStackPointerRegister

static constexpr Register dart::CallingConventions::kStackPointerRegister = SPREG
staticconstexpr

Definition at line 747 of file constants_arm.h.

◆ kUsesRet4

constexpr bool dart::CallingConventions::kUsesRet4 = true
staticconstexpr

Definition at line 483 of file constants_ia32.h.

◆ kVarArgFpuRegisterCount

constexpr Register dart::CallingConventions::kVarArgFpuRegisterCount = RAX
staticconstexpr

Definition at line 617 of file constants_x64.h.

◆ kVolatileCpuRegisters

constexpr intptr_t dart::CallingConventions::kVolatileCpuRegisters
staticconstexpr
Initial value:
= R(RAX) | R(RCX) | R(RDX) |
R(RSI) | R(RDI) | R(R8) |
R(R9) | R(R10) | R(R11)
#define R(r)

Definition at line 621 of file constants_x64.h.

◆ kVolatileXmmRegisters

constexpr RegList dart::CallingConventions::kVolatileXmmRegisters = kAbiVolatileFpuRegs
staticconstexpr

Definition at line 625 of file constants_x64.h.

◆ kXmmArgumentRegisters

constexpr intptr_t dart::CallingConventions::kXmmArgumentRegisters = 0
staticconstexpr

Definition at line 466 of file constants_ia32.h.

◆ xmmFirstNonParameterReg

constexpr XmmRegister dart::CallingConventions::xmmFirstNonParameterReg = XMM8
staticconstexpr

Definition at line 629 of file constants_x64.h.


The documentation for this class was generated from the following files: