The syntax used for twin stores was confusing the parser so it's now broken down farther.

--HG--
extra : convert_revision : d36bef2d15bc013b3c6199901f57855dfb9dab76
This commit is contained in:
Gabe Black 2007-03-17 21:23:03 -04:00
parent b54fa0edda
commit a1f92af0fb

View file

@ -1324,8 +1324,14 @@ decode OP default Unknown::unknown()
0x05: stb({{Mem.ub = Rd.sb;}});
0x06: sth({{Mem.uhw = Rd.shw;}});
0x07: sttw({{
(Mem.tuw).a = RdLow<31:0>;
(Mem.tuw).b = RdHigh<31:0>;
//This temporary needs to be here so that the parser
//will correctly identify this instruction as a store.
//It's probably either the parenthesis or referencing
//the member variable that throws confuses it.
Twin32_t temp;
temp.a = RdLow<31:0>;
temp.b = RdHigh<31:0>;
Mem.tuw = temp;
}});
}
format Load {
@ -1417,8 +1423,14 @@ decode OP default Unknown::unknown()
0x15: stba({{Mem.ub = Rd;}}, {{EXT_ASI}});
0x16: stha({{Mem.uhw = Rd;}}, {{EXT_ASI}});
0x17: sttwa({{
(Mem.tuw).a = RdLow<31:0>;
(Mem.tuw).b = RdHigh<31:0>;
//This temporary needs to be here so that the parser
//will correctly identify this instruction as a store.
//It's probably either the parenthesis or referencing
//the member variable that throws confuses it.
Twin32_t temp;
temp.a = RdLow<31:0>;
temp.b = RdHigh<31:0>;
Mem.tuw = temp;
}}, {{EXT_ASI}});
}
format LoadAlt {