1 /* 2 * Copyright (C) 2017 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 #ifndef _LIBUNWINDSTACK_MACHINE_ARM64_H 18 #define _LIBUNWINDSTACK_MACHINE_ARM64_H 19 20 #include <stdint.h> 21 22 namespace unwindstack { 23 24 enum Arm64Reg : uint16_t { 25 ARM64_REG_R0 = 0, 26 ARM64_REG_R1, 27 ARM64_REG_R2, 28 ARM64_REG_R3, 29 ARM64_REG_R4, 30 ARM64_REG_R5, 31 ARM64_REG_R6, 32 ARM64_REG_R7, 33 ARM64_REG_R8, 34 ARM64_REG_R9, 35 ARM64_REG_R10, 36 ARM64_REG_R11, 37 ARM64_REG_R12, 38 ARM64_REG_R13, 39 ARM64_REG_R14, 40 ARM64_REG_R15, 41 ARM64_REG_R16, 42 ARM64_REG_R17, 43 ARM64_REG_R18, 44 ARM64_REG_R19, 45 ARM64_REG_R20, 46 ARM64_REG_R21, 47 ARM64_REG_R22, 48 ARM64_REG_R23, 49 ARM64_REG_R24, 50 ARM64_REG_R25, 51 ARM64_REG_R26, 52 ARM64_REG_R27, 53 ARM64_REG_R28, 54 ARM64_REG_R29, 55 ARM64_REG_R30, 56 ARM64_REG_R31, 57 ARM64_REG_PC, 58 ARM64_REG_PSTATE, 59 ARM64_REG_LAST, 60 61 ARM64_REG_SP = ARM64_REG_R31, 62 ARM64_REG_LR = ARM64_REG_R30, 63 64 // Pseudo registers. These are not machine registers. 65 66 // AARCH64 Return address signed state pseudo-register 67 ARM64_PREG_RA_SIGN_STATE = 34, 68 ARM64_PREG_FIRST = ARM64_PREG_RA_SIGN_STATE, 69 ARM64_PREG_LAST, 70 }; 71 72 } // namespace unwindstack 73 74 #endif // _LIBUNWINDSTACK_MACHINE_ARM64_H 75