X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Farch%2Falpha%2Fisa%2Ffp.isa;h=99d13acc54fa528b4612ac540fd48cea649699ea;hb=4a51a39485800ad79867831b7c5a31aef06281cf;hp=afece988f56a8acb92c38acd03f9b695399f0fcf;hpb=5e8287d2e2eaf058495442ea9e32fafc343a0b53;p=gem5.git diff --git a/src/arch/alpha/isa/fp.isa b/src/arch/alpha/isa/fp.isa index afece988f..99d13acc5 100644 --- a/src/arch/alpha/isa/fp.isa +++ b/src/arch/alpha/isa/fp.isa @@ -42,7 +42,7 @@ output exec {{ /// instruction in full-system mode. /// @retval Full-system mode: NoFault if FP is enabled, FenFault /// if not. Non-full-system mode: always returns NoFault. - inline Fault checkFpEnableFault(CPU_EXEC_CONTEXT *xc) + inline Fault checkFpEnableFault(ExecContext *xc) { Fault fault = NoFault; // dummy... this ipr access should not fault if (FullSystem && !ICSR_FPE(xc->readMiscReg(IPR_ICSR))) { @@ -50,6 +50,9 @@ output exec {{ } return fault; } + inline Fault checkVectorEnableFault(ExecContext *xc) { + return std::make_shared(); + } }}; output header {{ @@ -123,8 +126,8 @@ output header {{ // This differs from the AlphaStaticInst version only in // printing suffixes for non-default rounding & trapping modes. - std::string - generateDisassembly(Addr pc, const SymbolTable *symtab) const; + std::string generateDisassembly( + Addr pc, const SymbolTable *symtab) const override; }; }}; @@ -147,9 +150,8 @@ output decoder {{ { std::string mnem_str(mnemonic); -#ifndef SS_COMPATIBLE_DISASSEMBLY std::string suffix(""); - suffix += ((_destRegIdx[0].regClass == FloatRegClass) + suffix += ((_destRegIdx[0].isFloatReg()) ? fpTrappingModeSuffix[trappingMode] : intTrappingModeSuffix[trappingMode]); suffix += roundingModeSuffix[roundingMode]; @@ -157,7 +159,6 @@ output decoder {{ if (suffix != "") { mnem_str = csprintf("%s/%s", mnemonic, suffix); } -#endif std::stringstream ss; ccprintf(ss, "%-10s ", mnem_str.c_str()); @@ -203,7 +204,7 @@ output decoder {{ // FP instruction class execute method template. Handles non-standard // rounding modes. def template FloatingPointExecute {{ - Fault %(class_name)s::execute(CPU_EXEC_CONTEXT *xc, + Fault %(class_name)s::execute(ExecContext *xc, Trace::InstRecord *traceData) const { if (trappingMode != Imprecise && !warnedOnTrapping) { @@ -247,7 +248,7 @@ def template FloatingPointExecute {{ // rounding mode control is needed. Like BasicExecute, but includes // check & warning for non-standard trapping mode. def template FPFixedRoundingExecute {{ - Fault %(class_name)s::execute(CPU_EXEC_CONTEXT *xc, + Fault %(class_name)s::execute(ExecContext *xc, Trace::InstRecord *traceData) const { if (trappingMode != Imprecise && !warnedOnTrapping) {