OLD | NEW |
1 //===-- ARMCallingConv.td - Calling Conventions for ARM ----*- tablegen -*-===// | 1 //===-- ARMCallingConv.td - Calling Conventions for ARM ----*- tablegen -*-===// |
2 // | 2 // |
3 // The LLVM Compiler Infrastructure | 3 // The LLVM Compiler Infrastructure |
4 // | 4 // |
5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
7 // | 7 // |
8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
9 // This describes the calling conventions for ARM architecture. | 9 // This describes the calling conventions for ARM architecture. |
10 //===----------------------------------------------------------------------===// | 10 //===----------------------------------------------------------------------===// |
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
231 def CSR_GenericInt : CalleeSavedRegs<(add LR, (sequence "R%u", 12, 0))>; | 231 def CSR_GenericInt : CalleeSavedRegs<(add LR, (sequence "R%u", 12, 0))>; |
232 | 232 |
233 // The fast interrupt handlers have more private state and get their own copies | 233 // The fast interrupt handlers have more private state and get their own copies |
234 // of R8-R12, in addition to SP and LR. As before, mark LR for saving too. | 234 // of R8-R12, in addition to SP and LR. As before, mark LR for saving too. |
235 | 235 |
236 // FIXME: we mark R11 as callee-saved since it's often the frame-pointer, and | 236 // FIXME: we mark R11 as callee-saved since it's often the frame-pointer, and |
237 // current frame lowering expects to encounter it while processing callee-saved | 237 // current frame lowering expects to encounter it while processing callee-saved |
238 // registers. | 238 // registers. |
239 def CSR_FIQ : CalleeSavedRegs<(add LR, R11, (sequence "R%u", 7, 0))>; | 239 def CSR_FIQ : CalleeSavedRegs<(add LR, R11, (sequence "R%u", 7, 0))>; |
240 | 240 |
241 | 241 // @LOCALMOD-START |
| 242 // NaCl does not save R9, but otherwise uses the same order as AAPCS |
| 243 def CSR_NaCl : CalleeSavedRegs<(add LR, R11, R10, R8, R7, R6, R5, R4, |
| 244 (sequence "D%u", 15, 8))>; |
| 245 // @LOCALMOD-END |
OLD | NEW |