ARM: Add in some new artificial fields that make decoding a little easier.
This commit is contained in:
@@ -61,6 +61,9 @@ def bitfield OPCODE_6 opcode6;
|
||||
def bitfield OPCODE_5 opcode5;
|
||||
def bitfield OPCODE_4 opcode4;
|
||||
|
||||
def bitfield IS_MISC isMisc;
|
||||
def bitfield SEVEN_AND_FOUR sevenAndFour;
|
||||
|
||||
// Other
|
||||
def bitfield COND_CODE condCode;
|
||||
def bitfield S_FIELD sField;
|
||||
|
||||
@@ -73,6 +73,8 @@ namespace ArmISA
|
||||
void moreBytes(Addr pc, Addr fetchPC, MachInst inst)
|
||||
{
|
||||
emi = inst;
|
||||
emi.sevenAndFour = bits(inst, 7) && bits(inst, 4);
|
||||
emi.isMisc = (bits(inst, 24, 23) == 0x2 && bits(inst, 20) == 0);
|
||||
}
|
||||
|
||||
//Use this to give data to the predecoder. This should be used
|
||||
|
||||
@@ -38,7 +38,11 @@ namespace ArmISA
|
||||
{
|
||||
typedef uint32_t MachInst;
|
||||
|
||||
BitUnion32(ExtMachInst)
|
||||
BitUnion64(ExtMachInst)
|
||||
// Made up bitfields that make life easier.
|
||||
Bitfield<33> sevenAndFour;
|
||||
Bitfield<32> isMisc;
|
||||
|
||||
// All the different types of opcode fields.
|
||||
Bitfield<27, 25> opcode;
|
||||
Bitfield<27, 25> opcode27_25;
|
||||
|
||||
Reference in New Issue
Block a user