//===- AlphaCallingConv.td - Calling Conventions for Alpha -*- tablegen -*-===//
//
//                     The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// This describes the calling conventions for Alpha architecture.
//===----------------------------------------------------------------------===//

//===----------------------------------------------------------------------===//
// Alpha Return Value Calling Convention
//===----------------------------------------------------------------------===//
def RetCC_Alpha : CallingConv<[
  // i64 is returned in register R0
  // R1 is an llvm extension, I don't know what gcc does
  CCIfType<[i64], CCAssignToReg<[R0,R1]>>,

  // f32 / f64 are returned in F0/F1
  CCIfType<[f32, f64], CCAssignToReg<[F0, F1]>>
]>;

//===----------------------------------------------------------------------===//
// Alpha Argument Calling Conventions
//===----------------------------------------------------------------------===//
def CC_Alpha : CallingConv<[
  // The first 6 arguments are passed in registers, whether integer or
  // floating-point
  CCIfType<[i64], CCAssignToRegWithShadow<[R16, R17, R18, R19, R20, R21],
                                          [F16, F17, F18, F19, F20, F21]>>,

  CCIfType<[f32, f64], CCAssignToRegWithShadow<[F16, F17, F18, F19, F20, F21],
                                               [R16, R17, R18, R19, R20, R21]>>,

  // Stack slots are 8 bytes in size and 8-byte aligned.
  CCIfType<[i64, f32, f64], CCAssignToStack<8, 8>>
]>;
