branch.isa (2686:f0d591379ac3) branch.isa (2687:9721a59675b8)
1// -*- mode:c++ -*-
2
3////////////////////////////////////////////////////////////////////
4//
5// Control transfer instructions
6//
7
8output header {{

--- 74 unchanged lines hidden (view full) ---

83 public:
84 /// Constructor
85 Jump(const char *mnem, MachInst _machInst, OpClass __opClass)
86 : PCDependentDisassembly(mnem, _machInst, __opClass),
87 disp(JMPTARG << 2)
88 {
89 }
90
1// -*- mode:c++ -*-
2
3////////////////////////////////////////////////////////////////////
4//
5// Control transfer instructions
6//
7
8output header {{

--- 74 unchanged lines hidden (view full) ---

83 public:
84 /// Constructor
85 Jump(const char *mnem, MachInst _machInst, OpClass __opClass)
86 : PCDependentDisassembly(mnem, _machInst, __opClass),
87 disp(JMPTARG << 2)
88 {
89 }
90
91 Addr branchTarget(ExecContext *xc) const;
91 Addr branchTarget(ThreadContext *tc) const;
92
93 std::string
94 generateDisassembly(Addr pc, const SymbolTable *symtab) const;
95 };
96}};
97
98output decoder {{
99 Addr
100 Branch::branchTarget(Addr branchPC) const
101 {
102 return branchPC + 4 + disp;
103 }
104
105 Addr
92
93 std::string
94 generateDisassembly(Addr pc, const SymbolTable *symtab) const;
95 };
96}};
97
98output decoder {{
99 Addr
100 Branch::branchTarget(Addr branchPC) const
101 {
102 return branchPC + 4 + disp;
103 }
104
105 Addr
106 Jump::branchTarget(ExecContext *xc) const
106 Jump::branchTarget(ThreadContext *tc) const
107 {
107 {
108 Addr NPC = xc->readPC() + 4;
109 uint64_t Rb = xc->readIntReg(_srcRegIdx[0]);
108 Addr NPC = tc->readPC() + 4;
109 uint64_t Rb = tc->readIntReg(_srcRegIdx[0]);
110 return (Rb & ~3) | (NPC & 1);
111 }
112
113 const std::string &
114 PCDependentDisassembly::disassemble(Addr pc,
115 const SymbolTable *symtab) const
116 {
117 if (!cachedDisassembly ||

--- 133 unchanged lines hidden ---
110 return (Rb & ~3) | (NPC & 1);
111 }
112
113 const std::string &
114 PCDependentDisassembly::disassemble(Addr pc,
115 const SymbolTable *symtab) const
116 {
117 if (!cachedDisassembly ||

--- 133 unchanged lines hidden ---