Deleted Added
sdiff udiff text old ( 12234:78ece221f9f5 ) new ( 12616:4b463b4dc098 )
full compact
1// -*- mode:c++ -*-
2
3// Copyright (c) 2007 MIPS Technologies, Inc.
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

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

43 protected:
44
45 /// Constructor
46 IntOp(const char *mnem, MachInst _machInst, OpClass __opClass) :
47 MipsStaticInst(mnem, _machInst, __opClass)
48 {
49 }
50
51 std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const;
52 };
53
54
55 class HiLoOp: public IntOp
56 {
57 protected:
58
59 /// Constructor
60 HiLoOp(const char *mnem, MachInst _machInst, OpClass __opClass) :
61 IntOp(mnem, _machInst, __opClass)
62 {
63 }
64
65 std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const;
66 };
67
68 class HiLoRsSelOp: public HiLoOp
69 {
70 protected:
71
72 /// Constructor
73 HiLoRsSelOp(const char *mnem, MachInst _machInst, OpClass __opClass) :
74 HiLoOp(mnem, _machInst, __opClass)
75 {
76 }
77
78 std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const;
79 };
80
81 class HiLoRdSelOp: public HiLoOp
82 {
83 protected:
84
85 /// Constructor
86 HiLoRdSelOp(const char *mnem, MachInst _machInst, OpClass __opClass) :
87 HiLoOp(mnem, _machInst, __opClass)
88 {
89 }
90
91 std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const;
92 };
93
94 class HiLoRdSelValOp: public HiLoOp
95 {
96 protected:
97
98 /// Constructor
99 HiLoRdSelValOp(const char *mnem, MachInst _machInst, OpClass __opClass) :
100 HiLoOp(mnem, _machInst, __opClass)
101 {
102 }
103
104 std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const;
105 };
106
107 class IntImmOp : public MipsStaticInst
108 {
109 protected:
110
111 int16_t imm;
112 int32_t sextImm;

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

119 {
120 //If Bit 15 is 1 then Sign Extend
121 int32_t temp = sextImm & 0x00008000;
122 if (temp > 0 && strcmp(mnemonic,"lui") != 0) {
123 sextImm |= 0xFFFF0000;
124 }
125 }
126
127 std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const;
128
129
130 };
131
132}};
133
134// HiLo instruction class execute method template.
135def template HiLoExecute {{
136 Fault %(class_name)s::execute(
137 ExecContext *xc, Trace::InstRecord *traceData) const

--- 247 unchanged lines hidden ---