mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 04:02:41 +01:00
5bf2202796
This patch adds the XPLINK64 calling convention to the SystemZ backend. It specifies and implements the argument passing and return value conventions. Reviewed By: uweigand Differential Revision: https://reviews.llvm.org/D101010
31 lines
1.1 KiB
C++
31 lines
1.1 KiB
C++
//===-- SystemZCallingConv.cpp - Calling conventions for SystemZ ----------===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "SystemZCallingConv.h"
|
|
#include "SystemZRegisterInfo.h"
|
|
|
|
using namespace llvm;
|
|
|
|
const MCPhysReg SystemZ::ELFArgGPRs[SystemZ::ELFNumArgGPRs] = {
|
|
SystemZ::R2D, SystemZ::R3D, SystemZ::R4D, SystemZ::R5D, SystemZ::R6D
|
|
};
|
|
|
|
const MCPhysReg SystemZ::ELFArgFPRs[SystemZ::ELFNumArgFPRs] = {
|
|
SystemZ::F0D, SystemZ::F2D, SystemZ::F4D, SystemZ::F6D
|
|
};
|
|
|
|
// The XPLINK64 ABI-defined param passing general purpose registers
|
|
const MCPhysReg SystemZ::XPLINK64ArgGPRs[SystemZ::XPLINK64NumArgGPRs] = {
|
|
SystemZ::R1D, SystemZ::R2D, SystemZ::R3D
|
|
};
|
|
|
|
// The XPLINK64 ABI-defined param passing floating point registers
|
|
const MCPhysReg SystemZ::XPLINK64ArgFPRs[SystemZ::XPLINK64NumArgFPRs] = {
|
|
SystemZ::F0D, SystemZ::F2D, SystemZ::F4D, SystemZ::F6D
|
|
};
|