remote_gdb.hh (10037:5cac77888310) | remote_gdb.hh (10595:25ecfc14f73f) |
---|---|
1/* | 1/* |
2 * Copyright 2014 Google, Inc. |
|
2 * Copyright (c) 2013 ARM Limited 3 * All rights reserved 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software 9 * licensed hereunder. You may use the software subject to the license --- 30 unchanged lines hidden (view full) --- 40 * 41 * Authors: Nathan Binkert 42 * Stephen Hines 43 */ 44 45#ifndef __ARCH_ARM_REMOTE_GDB_HH__ 46#define __ARCH_ARM_REMOTE_GDB_HH__ 47 | 3 * Copyright (c) 2013 ARM Limited 4 * All rights reserved 5 * 6 * The license below extends only to copyright in the software and shall 7 * not be construed as granting a license to any other intellectual 8 * property including but not limited to intellectual property relating 9 * to a hardware implementation of the functionality of the software 10 * licensed hereunder. You may use the software subject to the license --- 30 unchanged lines hidden (view full) --- 41 * 42 * Authors: Nathan Binkert 43 * Stephen Hines 44 */ 45 46#ifndef __ARCH_ARM_REMOTE_GDB_HH__ 47#define __ARCH_ARM_REMOTE_GDB_HH__ 48 |
49#include <algorithm> 50 |
|
48#include "base/remote_gdb.hh" 49 50class System; 51class ThreadContext; 52 53namespace ArmISA 54{ 55 56// AArch32 registers with vfpv3/neon | 51#include "base/remote_gdb.hh" 52 53class System; 54class ThreadContext; 55 56namespace ArmISA 57{ 58 59// AArch32 registers with vfpv3/neon |
57const int NUMREGS = 41; /* r0-r15, cpsr, d0-d31, fpscr */ 58const int REG_R0 = 0; 59const int REG_F0 = 8; 60const int REG_CPSR = 8; /* bit 512 to bit 543 */ 61const int REG_FPSCR = 40; /* bit 2592 to bit 2623 */ | 60enum { 61 GDB32_R0 = 0, 62 GDB32_CPSR = 16, 63 GDB32_F0 = 17, 64 GDB32_FPSCR = 81, 65 GDB32_NUMREGS = 82 66}; |
62 63// AArch64 registers | 67 68// AArch64 registers |
64const int NUMREGS_64 = 98; // x0-x31, pc, cpsr (64-bit GPRs) 65 // v0-v31 (128-bit FPRs) 66const int REG_X0 = 0; 67const int REG_PC_64 = 32; 68const int REG_CPSR_64 = 33; 69const int REG_V0 = 34; | 69enum { 70 GDB64_X0 = 0, 71 GDB64_PC = 32, 72 GDB64_CPSR = 33, 73 GDB64_V0 = 34, 74 GDB64_V0_32 = 2 * GDB64_V0, 75 GDB64_NUMREGS = 98 76}; |
70 | 77 |
71const int MAX_NUMREGS = NUMREGS_64; | 78const int GDB_REG_BYTES = std::max(GDB64_NUMREGS * sizeof(uint64_t), 79 GDB32_NUMREGS * sizeof(uint32_t)); |
72 73class RemoteGDB : public BaseRemoteGDB 74{ 75 76protected: 77 Addr notTakenBkpt; 78 Addr takenBkpt; 79 --- 16 unchanged lines hidden --- | 80 81class RemoteGDB : public BaseRemoteGDB 82{ 83 84protected: 85 Addr notTakenBkpt; 86 Addr takenBkpt; 87 --- 16 unchanged lines hidden --- |