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 #pragma once 18 19 #include <stdint.h> 20 21 namespace unwindstack { 22 23 enum Arm64Reg : uint16_t { 24 ARM64_REG_R0 = 0, 25 ARM64_REG_R1, 26 ARM64_REG_R2, 27 ARM64_REG_R3, 28 ARM64_REG_R4, 29 ARM64_REG_R5, 30 ARM64_REG_R6, 31 ARM64_REG_R7, 32 ARM64_REG_R8, 33 ARM64_REG_R9, 34 ARM64_REG_R10, 35 ARM64_REG_R11, 36 ARM64_REG_R12, 37 ARM64_REG_R13, 38 ARM64_REG_R14, 39 ARM64_REG_R15, 40 ARM64_REG_R16, 41 ARM64_REG_R17, 42 ARM64_REG_R18, 43 ARM64_REG_R19, 44 ARM64_REG_R20, 45 ARM64_REG_R21, 46 ARM64_REG_R22, 47 ARM64_REG_R23, 48 ARM64_REG_R24, 49 ARM64_REG_R25, 50 ARM64_REG_R26, 51 ARM64_REG_R27, 52 ARM64_REG_R28, 53 ARM64_REG_R29, 54 ARM64_REG_R30, 55 ARM64_REG_R31, 56 ARM64_REG_PC, 57 ARM64_REG_PSTATE, 58 ARM64_REG_LAST, 59 60 ARM64_REG_SP = ARM64_REG_R31, 61 ARM64_REG_LR = ARM64_REG_R30, 62 63 // Pseudo registers. These are not machine registers. 64 65 // AARCH64 Return address signed state pseudo-register 66 ARM64_PREG_RA_SIGN_STATE = 34, 67 ARM64_PREG_FIRST = ARM64_PREG_RA_SIGN_STATE, 68 ARM64_PREG_LAST, 69 }; 70 71 } // namespace unwindstack 72