From f2d0adf60fe8dd43dd5f8f5bed0e4fe85794c1d0 Mon Sep 17 00:00:00 2001 From: Andreas Sandberg Date: Thu, 27 Jul 2017 15:08:05 +0100 Subject: [PATCH] sim: Use named constants for pseudo ops Use named constants from a shared header instead of magic values when handling pseudo ops. Change-Id: If157060bbcd772ce7e8556482b44ca714f4319b1 Signed-off-by: Andreas Sandberg Reviewed-by: Nikos Nikoleris Reviewed-on: https://gem5-review.googlesource.com/4262 Reviewed-by: Gabe Black Reviewed-by: Jason Lowe-Power --- SConstruct | 3 ++ src/sim/pseudo_inst.cc | 68 ++++++++++++++++++++++-------------------- 2 files changed, 38 insertions(+), 33 deletions(-) diff --git a/SConstruct b/SConstruct index 146b156d1..e4880e180 100755 --- a/SConstruct +++ b/SConstruct @@ -554,6 +554,9 @@ Export('extras_dir_list') # the ext directory should be on the #includes path main.Append(CPPPATH=[Dir('ext')]) +# Add shared top-level headers +main.Prepend(CPPPATH=Dir('include')) + def strip_build_path(path, env): path = str(path) variant_base = env['BUILDROOT'] + os.path.sep diff --git a/src/sim/pseudo_inst.cc b/src/sim/pseudo_inst.cc index 778675fd3..dc37a8c71 100644 --- a/src/sim/pseudo_inst.cc +++ b/src/sim/pseudo_inst.cc @@ -51,6 +51,8 @@ #include #include +#include + #include "arch/kernel_stats.hh" #include "arch/pseudo_inst.hh" #include "arch/utility.hh" @@ -109,111 +111,111 @@ pseudoInst(ThreadContext *tc, uint8_t func, uint8_t subfunc) } switch (func) { - case 0x00: // arm_func + case M5OP_ARM: arm(tc); break; - case 0x01: // quiesce_func + case M5OP_QUIESCE: quiesce(tc); break; - case 0x02: // quiescens_func - quiesceSkip(tc); + case M5OP_QUIESCE_NS: + quiesceNs(tc, args[0]); break; - case 0x03: // quiescecycle_func - quiesceNs(tc, args[0]); + case M5OP_QUIESCE_CYCLE: + quiesceCycles(tc, args[0]); break; - case 0x04: // quiescetime_func + case M5OP_QUIESCE_TIME: return quiesceTime(tc); - case 0x07: // rpns_func + case M5OP_RPNS: return rpns(tc); - case 0x09: // wakecpu_func + case M5OP_WAKE_CPU: wakeCPU(tc, args[0]); break; - case 0x21: // exit_func + case M5OP_EXIT: m5exit(tc, args[0]); break; - case 0x22: + case M5OP_FAIL: m5fail(tc, args[0], args[1]); break; - case 0x30: // initparam_func + case M5OP_INIT_PARAM: return initParam(tc, args[0], args[1]); - case 0x31: // loadsymbol_func + case M5OP_LOAD_SYMBOL: loadsymbol(tc); break; - case 0x40: // resetstats_func + case M5OP_RESET_STATS: resetstats(tc, args[0], args[1]); break; - case 0x41: // dumpstats_func + case M5OP_DUMP_STATS: dumpstats(tc, args[0], args[1]); break; - case 0x42: // dumprststats_func + case M5OP_DUMP_RESET_STATS: dumpresetstats(tc, args[0], args[1]); break; - case 0x43: // ckpt_func + case M5OP_CHECKPOINT: m5checkpoint(tc, args[0], args[1]); break; - case 0x4f: // writefile_func + case M5OP_WRITE_FILE: return writefile(tc, args[0], args[1], args[2], args[3]); - case 0x50: // readfile_func + case M5OP_READ_FILE: return readfile(tc, args[0], args[1], args[2]); - case 0x51: // debugbreak_func + case M5OP_DEBUG_BREAK: debugbreak(tc); break; - case 0x52: // switchcpu_func + case M5OP_SWITCH_CPU: switchcpu(tc); break; - case 0x53: // addsymbol_func + case M5OP_ADD_SYMBOL: addsymbol(tc, args[0], args[1]); break; - case 0x54: // panic_func + case M5OP_PANIC: panic("M5 panic instruction called at %s\n", tc->pcState()); - case 0x5a: // work_begin_func + case M5OP_WORK_BEGIN: workbegin(tc, args[0], args[1]); break; - case 0x5b: // work_end_func + case M5OP_WORK_END: workend(tc, args[0], args[1]); break; - case 0x55: // annotate_func - case 0x56: // reserved2_func - case 0x57: // reserved3_func - case 0x58: // reserved4_func - case 0x59: // reserved5_func + case M5OP_ANNOTATE: + case M5OP_RESERVED2: + case M5OP_RESERVED3: + case M5OP_RESERVED4: + case M5OP_RESERVED5: warn("Unimplemented m5 op (0x%x)\n", func); break; /* SE mode functions */ - case 0x60: // syscall_func + case M5OP_SE_SYSCALL: m5Syscall(tc); break; - case 0x61: // pagefault_func + case M5OP_SE_PAGE_FAULT: m5PageFault(tc); break; /* dist-gem5 functions */ - case 0x62: // distToggleSync_func + case M5OP_DIST_TOGGLE_SYNC: togglesync(tc); break; -- 2.30.2