Skip to content

Commit

Permalink
Merge branch 'master' into kathlenem/vlsu
Browse files Browse the repository at this point in the history
Signed-off-by: Kathlene Magnus <[email protected]>
  • Loading branch information
kathlenemagnus authored Dec 3, 2024
2 parents 28899df + f126c04 commit c928b9e
Show file tree
Hide file tree
Showing 20 changed files with 1,678 additions and 799 deletions.
505 changes: 336 additions & 169 deletions arches/isa_json/gen_uarch_rv64v_json.py

Large diffs are not rendered by default.

968 changes: 484 additions & 484 deletions arches/isa_json/olympia_uarch_rv64v.json

Large diffs are not rendered by default.

20 changes: 20 additions & 0 deletions core/Dispatch.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,9 @@ namespace olympia
MUL_BUSY = InstArchInfo::TargetPipe::MUL,
VINT_BUSY = InstArchInfo::TargetPipe::VINT,
VFIXED_BUSY = InstArchInfo::TargetPipe::VFIXED,
VFLOAT_BUSY = InstArchInfo::TargetPipe::VFLOAT,
VFMUL_BUSY = InstArchInfo::TargetPipe::VFMUL,
VFDIV_BUSY = InstArchInfo::TargetPipe::VFDIV,
VMASK_BUSY = InstArchInfo::TargetPipe::VMASK,
VMUL_BUSY = InstArchInfo::TargetPipe::VMUL,
VDIV_BUSY = InstArchInfo::TargetPipe::VDIV,
Expand Down Expand Up @@ -187,6 +190,12 @@ namespace olympia
sparta::Counter::COUNT_NORMAL, getClock()),
sparta::CycleCounter(getStatisticSet(), "stall_vfixed_busy", "VFIXED busy",
sparta::Counter::COUNT_NORMAL, getClock()),
sparta::CycleCounter(getStatisticSet(), "stall_vfloat_busy", "VFLOAT busy",
sparta::Counter::COUNT_NORMAL, getClock()),
sparta::CycleCounter(getStatisticSet(), "stall_vfmul_busy", "VFMUL busy",
sparta::Counter::COUNT_NORMAL, getClock()),
sparta::CycleCounter(getStatisticSet(), "stall_vfdiv_busy", "VFDIV busy",
sparta::Counter::COUNT_NORMAL, getClock()),
sparta::CycleCounter(getStatisticSet(), "stall_vmask_busy", "VMASK busy",
sparta::Counter::COUNT_NORMAL, getClock()),
sparta::CycleCounter(getStatisticSet(), "stall_vmul_busy", "VMUL busy",
Expand Down Expand Up @@ -233,6 +242,12 @@ namespace olympia
sparta::Counter::COUNT_NORMAL),
sparta::Counter(getStatisticSet(), "count_vfixed_insts", "Total VFIXED insts",
sparta::Counter::COUNT_NORMAL),
sparta::Counter(getStatisticSet(), "count_vfloat_insts", "Total VFLOAT insts",
sparta::Counter::COUNT_NORMAL),
sparta::Counter(getStatisticSet(), "count_vfmul_insts", "Total VFMUL insts",
sparta::Counter::COUNT_NORMAL),
sparta::Counter(getStatisticSet(), "count_vfdiv_insts", "Total VFDIV insts",
sparta::Counter::COUNT_NORMAL),
sparta::Counter(getStatisticSet(), "count_vmask_insts", "Total VMASK insts",
sparta::Counter::COUNT_NORMAL),
sparta::Counter(getStatisticSet(), "count_vmul_insts", "Total VMUL insts",
Expand Down Expand Up @@ -289,6 +304,8 @@ namespace olympia
"count_cmov_insts + count_div_insts + count_faddsub_insts + count_float_insts + "
"count_fmac_insts + count_i2f_insts + count_f2i_insts + count_int_insts + "
"count_lsu_insts + count_mul_insts + count_br_insts"};

friend class DispatchTester;
};

using DispatchFactory =
Expand All @@ -314,5 +331,8 @@ namespace olympia
}

return os;

}

class DispatchTester;
} // namespace olympia
20 changes: 14 additions & 6 deletions core/InstArchInfo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@ namespace olympia
{"mul", InstArchInfo::TargetPipe::MUL},
{"vint", InstArchInfo::TargetPipe::VINT},
{"vfixed", InstArchInfo::TargetPipe::VFIXED},
{"vfloat", InstArchInfo::TargetPipe::VFLOAT},
{"vfmul", InstArchInfo::TargetPipe::VFMUL},
{"vfdiv", InstArchInfo::TargetPipe::VFDIV},
{"vmask", InstArchInfo::TargetPipe::VMASK},
{"vset", InstArchInfo::TargetPipe::VSET},
{"vmul", InstArchInfo::TargetPipe::VMUL},
Expand All @@ -43,6 +46,9 @@ namespace olympia
{InstArchInfo::TargetPipe::MUL, "MUL"},
{InstArchInfo::TargetPipe::VINT, "VINT"},
{InstArchInfo::TargetPipe::VFIXED, "VFIXED"},
{InstArchInfo::TargetPipe::VFLOAT, "VFLOAT"},
{InstArchInfo::TargetPipe::VFMUL, "VFMUL"},
{InstArchInfo::TargetPipe::VFDIV, "VFDIV"},
{InstArchInfo::TargetPipe::VMASK, "VMASK"},
{InstArchInfo::TargetPipe::VSET, "VSET"},
{InstArchInfo::TargetPipe::VMUL, "VMUL"},
Expand All @@ -52,12 +58,14 @@ namespace olympia
};

const InstArchInfo::UopGenMap InstArchInfo::uop_gen_type_map = {
{"ARITH", InstArchInfo::UopGenType::ARITH},
{"ARITH_SINGLE_DEST", InstArchInfo::UopGenType::ARITH_SINGLE_DEST},
{"ARITH_WIDE_DEST", InstArchInfo::UopGenType::ARITH_WIDE_DEST},
{"ARITH_MAC", InstArchInfo::UopGenType::ARITH_MAC},
{"ARITH_MAC_WIDE_DEST", InstArchInfo::UopGenType::ARITH_MAC_WIDE_DEST},
{"NONE", InstArchInfo::UopGenType::NONE}
{"ELEMENTWISE", InstArchInfo::UopGenType::ELEMENTWISE},
{"SINGLE_DEST", InstArchInfo::UopGenType::SINGLE_DEST},
{"WIDENING", InstArchInfo::UopGenType::WIDENING},
{"WIDENING_MIXED", InstArchInfo::UopGenType::WIDENING_MIXED},
{"NARROWING", InstArchInfo::UopGenType::NARROWING},
{"MAC", InstArchInfo::UopGenType::MAC},
{"MAC_WIDE", InstArchInfo::UopGenType::MAC_WIDE},
{"NONE", InstArchInfo::UopGenType::NONE}
};

void InstArchInfo::update(const nlohmann::json & jobj)
Expand Down
15 changes: 10 additions & 5 deletions core/InstArchInfo.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,9 @@ namespace olympia
MUL,
VINT,
VFIXED,
VFLOAT,
VFMUL,
VFDIV,
VMASK,
VMUL,
VDIV,
Expand All @@ -69,11 +72,13 @@ namespace olympia

enum class UopGenType
{
ARITH,
ARITH_SINGLE_DEST,
ARITH_WIDE_DEST,
ARITH_MAC,
ARITH_MAC_WIDE_DEST,
ELEMENTWISE,
SINGLE_DEST,
WIDENING,
WIDENING_MIXED,
NARROWING,
MAC,
MAC_WIDE,
NONE,
UNKNOWN
};
Expand Down
Loading

0 comments on commit c928b9e

Please sign in to comment.