isa_traits.hh (6214:1ec0ec8933ae) | isa_traits.hh (6323:fd0f91f067d2) |
---|---|
1/* 2 * Copyright (c) 2003-2005 The Regents of The University of Michigan 3 * Copyright (c) 2007-2008 The Florida State University 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions are 8 * met: redistributions of source code must retain the above copyright --- 19 unchanged lines hidden (view full) --- 28 * 29 * Authors: Gabe Black 30 * Stephen Hines 31 */ 32 33#ifndef __ARCH_ARM_ISA_TRAITS_HH__ 34#define __ARCH_ARM_ISA_TRAITS_HH__ 35 | 1/* 2 * Copyright (c) 2003-2005 The Regents of The University of Michigan 3 * Copyright (c) 2007-2008 The Florida State University 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions are 8 * met: redistributions of source code must retain the above copyright --- 19 unchanged lines hidden (view full) --- 28 * 29 * Authors: Gabe Black 30 * Stephen Hines 31 */ 32 33#ifndef __ARCH_ARM_ISA_TRAITS_HH__ 34#define __ARCH_ARM_ISA_TRAITS_HH__ 35 |
36#include "arch/arm/max_inst_regs.hh" |
|
36#include "arch/arm/types.hh" 37#include "base/types.hh" 38 39namespace LittleEndianGuest {}; 40 41#define TARGET_ARM 42 43class StaticInstPtr; 44 45namespace ArmISA 46{ 47 using namespace LittleEndianGuest; | 37#include "arch/arm/types.hh" 38#include "base/types.hh" 39 40namespace LittleEndianGuest {}; 41 42#define TARGET_ARM 43 44class StaticInstPtr; 45 46namespace ArmISA 47{ 48 using namespace LittleEndianGuest; |
49 using ArmISAInst::MaxInstSrcRegs; 50 using ArmISAInst::MaxInstDestRegs; |
|
48 49 StaticInstPtr decodeInst(ExtMachInst); 50 51 // ARM DOES NOT have a delay slot 52 #define ISA_HAS_DELAY_SLOT 0 53 54 const Addr PageShift = 12; 55 const Addr PageBytes = ULL(1) << PageShift; --- 39 unchanged lines hidden (view full) --- 95 // return a no-op instruction... used for instruction fetch faults 96 const ExtMachInst NoopMachInst = 0x00000000; 97 98 // Constants Related to the number of registers 99 const int NumIntArchRegs = 16; 100 const int NumIntSpecialRegs = 19; 101 const int NumFloatArchRegs = 16; 102 const int NumFloatSpecialRegs = 5; | 51 52 StaticInstPtr decodeInst(ExtMachInst); 53 54 // ARM DOES NOT have a delay slot 55 #define ISA_HAS_DELAY_SLOT 0 56 57 const Addr PageShift = 12; 58 const Addr PageBytes = ULL(1) << PageShift; --- 39 unchanged lines hidden (view full) --- 98 // return a no-op instruction... used for instruction fetch faults 99 const ExtMachInst NoopMachInst = 0x00000000; 100 101 // Constants Related to the number of registers 102 const int NumIntArchRegs = 16; 103 const int NumIntSpecialRegs = 19; 104 const int NumFloatArchRegs = 16; 105 const int NumFloatSpecialRegs = 5; |
103 const int NumControlRegs = 7; | |
104 const int NumInternalProcRegs = 0; 105 106 const int NumIntRegs = NumIntArchRegs + NumIntSpecialRegs; 107 const int NumFloatRegs = NumFloatArchRegs + NumFloatSpecialRegs; | 106 const int NumInternalProcRegs = 0; 107 108 const int NumIntRegs = NumIntArchRegs + NumIntSpecialRegs; 109 const int NumFloatRegs = NumFloatArchRegs + NumFloatSpecialRegs; |
108 const int NumMiscRegs = NumControlRegs; | |
109 | 110 |
110 const int TotalNumRegs = NumIntRegs + NumFloatRegs + NumMiscRegs; 111 112 const int TotalDataRegs = NumIntRegs + NumFloatRegs; 113 114 // Static instruction parameters 115 const int MaxInstSrcRegs = 5; 116 const int MaxInstDestRegs = 3; 117 | |
118 // semantically meaningful register indices 119 const int ReturnValueReg = 0; 120 const int ReturnValueReg1 = 1; 121 const int ReturnValueReg2 = 2; 122 const int ArgumentReg0 = 0; 123 const int ArgumentReg1 = 1; 124 const int ArgumentReg2 = 2; 125 const int ArgumentReg3 = 3; --- 30 unchanged lines hidden --- | 111 // semantically meaningful register indices 112 const int ReturnValueReg = 0; 113 const int ReturnValueReg1 = 1; 114 const int ReturnValueReg2 = 2; 115 const int ArgumentReg0 = 0; 116 const int ArgumentReg1 = 1; 117 const int ArgumentReg2 = 2; 118 const int ArgumentReg3 = 3; --- 30 unchanged lines hidden --- |