Current Path : /compat/linux/proc/self/root/usr/src/contrib/llvm/lib/Target/XCore/ |
FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64 |
Current File : //compat/linux/proc/self/root/usr/src/contrib/llvm/lib/Target/XCore/XCoreCallingConv.td |
//===- XCoreCallingConv.td - Calling Conventions for XCore -*- 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 XCore architecture. //===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===// // XCore Return Value Calling Convention //===----------------------------------------------------------------------===// def RetCC_XCore : CallingConv<[ // i32 are returned in registers R0, R1, R2, R3 CCIfType<[i32], CCAssignToReg<[R0, R1, R2, R3]>> ]>; //===----------------------------------------------------------------------===// // XCore Argument Calling Conventions //===----------------------------------------------------------------------===// def CC_XCore : CallingConv<[ // Promote i8/i16 arguments to i32. CCIfType<[i8, i16], CCPromoteToType<i32>>, // The 'nest' parameter, if any, is passed in R11. CCIfNest<CCAssignToReg<[R11]>>, // The first 4 integer arguments are passed in integer registers. CCIfType<[i32], CCAssignToReg<[R0, R1, R2, R3]>>, // Integer values get stored in stack slots that are 4 bytes in // size and 4-byte aligned. CCIfType<[i32], CCAssignToStack<4, 4>> ]>;