blob: 18de764d08ee861bf120b39f7c831dc264e30e70 [file] [edit]
// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// This file defines the cache block management instructions in the Zicbom extension.
slot riscv_zicbom32 {
includes {
#include "riscv/riscv_zicbom_instructions.h"
}
default size = 4;
opcodes {
cbo_clean{: rs1 :},
resources: { rs1 :},
disasm: "cbo.clean", "0(%rs1)",
semfunc: "&RV32::RiscVCboClean";
cbo_flush{: rs1 :},
resources: { rs1 :},
disasm: "cbo.flush", "0(%rs1)",
semfunc: "&RV32::RiscVCboFlush";
cbo_inval{: rs1 :},
resources: { rs1 :},
disasm: "cbo.inval", "0(%rs1)",
semfunc: "&RV32::RiscVCboInval";
}
}
slot riscv_zicbom64 : riscv_zicbom32 {
includes {
#include "riscv/riscv_zicbom_instructions.h"
}
default size = 4;
opcodes {
cbo_clean = override, semfunc: "&RV64::RiscVCboClean";
cbo_flush = override, semfunc: "&RV64::RiscVCboFlush";
cbo_inval = override, semfunc: "&RV64::RiscVCboInval";
}
}