From 8128d2e250178ad056e86705a08c3cdef059c229 Mon Sep 17 00:00:00 2001 From: felsabbagh3 Date: Sat, 9 Feb 2019 15:57:16 -0500 Subject: [PATCH] Changed ArchDef --- src/enc.cpp | 11 ++++++----- src/harptool.cpp | 2 +- src/include/archdef.h | 14 ++++++++++++-- 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/src/enc.cpp b/src/enc.cpp index 45e90a47..ec2eb760 100644 --- a/src/enc.cpp +++ b/src/enc.cpp @@ -249,10 +249,10 @@ static Word mask(Size bits) { static void getSizes(const ArchDef &arch, Size &n, Size& o, Size &r, Size &p, Size &i1, Size &i2, Size &i3) { - n = arch.getWordSize() * 8; - o = 6; - r = ceilLog2(arch.getNRegs()); - p = ceilLog2(arch.getNPRegs()); + n = arch.getWordSize() * 8; + o = 7; + r = ceilLog2(arch.getNRegs()); + p = 0; i1 = n - 1 - p - o; i2 = i1 - r; i3 = i2 - r; @@ -274,7 +274,8 @@ Instruction *WordDecoder::decode(const std::vector &v, Size &idx) { Word code(readWord(v, idx, n/8)); Instruction &inst = * new Instruction(); - bool predicated = (code>>(n-1)); + // bool predicated = (code>>(n-1)); + bool predicated = false; if (predicated) { inst.setPred((code>>(n-p-1))&pMask); } Instruction::Opcode op = (Instruction::Opcode)((code>>i1)&oMask); diff --git a/src/harptool.cpp b/src/harptool.cpp index d0f7f97a..1e2175ef 100644 --- a/src/harptool.cpp +++ b/src/harptool.cpp @@ -219,7 +219,6 @@ int emu_main(int argc, char **argv) { CommandLineArgFlag fi("-i", "--batch", "", batch); CommandLineArg::readArgs(argc, argv); - if (showHelp) { cout << Help::emuHelp; return 0; @@ -233,6 +232,7 @@ int emu_main(int argc, char **argv) { switch (arch.getEncChar()) { case 'b': dec = new ByteDecoder(arch); break; case 'w': dec = new WordDecoder(arch); break; + case 'r': dec = new WordDecoder(arch); break; default: cout << "Unrecognized decoder type: '" << arch.getEncChar() << "'.\n"; return 1; diff --git a/src/include/archdef.h b/src/include/archdef.h index 2384d55a..a741574c 100644 --- a/src/include/archdef.h +++ b/src/include/archdef.h @@ -7,6 +7,8 @@ #include #include +#include +#include #include "types.h" namespace Harp { @@ -16,8 +18,16 @@ namespace Harp { ArchDef(const std::string &s) { std::istringstream iss(s.c_str()); - - iss >> wordSize; + + wordSize = 4; + encChar = 'w'; + nRegs = 32; + nPRegs = 0; + nThds = 1; + nWarps = 1; + + extent = EXT_REGS; + if (!iss) { extent = EXT_NULL; return; } iss >> encChar; if (!iss) { extent = EXT_WORDSIZE; return; }