decoder.isa (4237:3493eb63512e) | decoder.isa (4256:35bb4cc24b18) |
---|---|
1// Copyright (c) 2006-2007 The Regents of The University of Michigan 2// All rights reserved. 3// 4// Redistribution and use in source and binary forms, with or without 5// modification, are permitted provided that the following conditions are 6// met: redistributions of source code must retain the above copyright 7// notice, this list of conditions and the following disclaimer; 8// redistributions in binary form must reproduce the above copyright --- 1310 unchanged lines hidden (view full) --- 1319 RdHigh = (Mem.tuw).b; 1320 }}); 1321 } 1322 format Store { 1323 0x04: stw({{Mem.uw = Rd.sw;}}); 1324 0x05: stb({{Mem.ub = Rd.sb;}}); 1325 0x06: sth({{Mem.uhw = Rd.shw;}}); 1326 0x07: sttw({{ | 1// Copyright (c) 2006-2007 The Regents of The University of Michigan 2// All rights reserved. 3// 4// Redistribution and use in source and binary forms, with or without 5// modification, are permitted provided that the following conditions are 6// met: redistributions of source code must retain the above copyright 7// notice, this list of conditions and the following disclaimer; 8// redistributions in binary form must reproduce the above copyright --- 1310 unchanged lines hidden (view full) --- 1319 RdHigh = (Mem.tuw).b; 1320 }}); 1321 } 1322 format Store { 1323 0x04: stw({{Mem.uw = Rd.sw;}}); 1324 0x05: stb({{Mem.ub = Rd.sb;}}); 1325 0x06: sth({{Mem.uhw = Rd.shw;}}); 1326 0x07: sttw({{ |
1327 (Mem.tuw).a = RdLow<31:0>; 1328 (Mem.tuw).b = RdHigh<31:0>; | 1327 //This temporary needs to be here so that the parser 1328 //will correctly identify this instruction as a store. 1329 //It's probably either the parenthesis or referencing 1330 //the member variable that throws confuses it. 1331 Twin32_t temp; 1332 temp.a = RdLow<31:0>; 1333 temp.b = RdHigh<31:0>; 1334 Mem.tuw = temp; |
1329 }}); 1330 } 1331 format Load { 1332 0x08: ldsw({{Rd = (int32_t)Mem.sw;}}); 1333 0x09: ldsb({{Rd = (int8_t)Mem.sb;}}); 1334 0x0A: ldsh({{Rd = (int16_t)Mem.shw;}}); 1335 0x0B: ldx({{Rd = (int64_t)Mem.sdw;}}); 1336 } --- 75 unchanged lines hidden (view full) --- 1412 }}, {{EXT_ASI}}); 1413 } 1414 } 1415 format StoreAlt { 1416 0x14: stwa({{Mem.uw = Rd;}}, {{EXT_ASI}}); 1417 0x15: stba({{Mem.ub = Rd;}}, {{EXT_ASI}}); 1418 0x16: stha({{Mem.uhw = Rd;}}, {{EXT_ASI}}); 1419 0x17: sttwa({{ | 1335 }}); 1336 } 1337 format Load { 1338 0x08: ldsw({{Rd = (int32_t)Mem.sw;}}); 1339 0x09: ldsb({{Rd = (int8_t)Mem.sb;}}); 1340 0x0A: ldsh({{Rd = (int16_t)Mem.shw;}}); 1341 0x0B: ldx({{Rd = (int64_t)Mem.sdw;}}); 1342 } --- 75 unchanged lines hidden (view full) --- 1418 }}, {{EXT_ASI}}); 1419 } 1420 } 1421 format StoreAlt { 1422 0x14: stwa({{Mem.uw = Rd;}}, {{EXT_ASI}}); 1423 0x15: stba({{Mem.ub = Rd;}}, {{EXT_ASI}}); 1424 0x16: stha({{Mem.uhw = Rd;}}, {{EXT_ASI}}); 1425 0x17: sttwa({{ |
1420 (Mem.tuw).a = RdLow<31:0>; 1421 (Mem.tuw).b = RdHigh<31:0>; | 1426 //This temporary needs to be here so that the parser 1427 //will correctly identify this instruction as a store. 1428 //It's probably either the parenthesis or referencing 1429 //the member variable that throws confuses it. 1430 Twin32_t temp; 1431 temp.a = RdLow<31:0>; 1432 temp.b = RdHigh<31:0>; 1433 Mem.tuw = temp; |
1422 }}, {{EXT_ASI}}); 1423 } 1424 format LoadAlt { 1425 0x18: ldswa({{Rd = (int32_t)Mem.sw;}}, {{EXT_ASI}}); 1426 0x19: ldsba({{Rd = (int8_t)Mem.sb;}}, {{EXT_ASI}}); 1427 0x1A: ldsha({{Rd = (int16_t)Mem.shw;}}, {{EXT_ASI}}); 1428 0x1B: ldxa({{Rd = (int64_t)Mem.sdw;}}, {{EXT_ASI}}); 1429 } --- 224 unchanged lines hidden --- | 1434 }}, {{EXT_ASI}}); 1435 } 1436 format LoadAlt { 1437 0x18: ldswa({{Rd = (int32_t)Mem.sw;}}, {{EXT_ASI}}); 1438 0x19: ldsba({{Rd = (int8_t)Mem.sb;}}, {{EXT_ASI}}); 1439 0x1A: ldsha({{Rd = (int16_t)Mem.shw;}}, {{EXT_ASI}}); 1440 0x1B: ldxa({{Rd = (int64_t)Mem.sdw;}}, {{EXT_ASI}}); 1441 } --- 224 unchanged lines hidden --- |