blob: 757f4aa7488f504d0409664733623f5334f0b2bd [file] [log] [blame]
// Copyright 2024 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
//
// http://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.
// Cheriot RVV FP binary decoder.
decoder RiscVCheriotRVVFp {
namespace mpact::sim::cheriot::encoding_rvv_fp;
opcode_enum = "cheriot::isa32_rvv_fp::OpcodeEnum";
includes {
#include "cheriot/riscv_cheriot_rvv_fp_decoder.h"
}
// Group these instruction groups in the same decoder function.
RiscVCheriotRVVFPInst32 = {RiscVFInst32, RiscVVInst32, RiscVVFPInst32, RiscVCheriotInst32};
// Keep this separate (different base format).
RiscVCheriotRVVFPInst16 = {RiscVCheriotInst16};
};
// Cheriot RVV binary decoder.
decoder RiscVCheriotRVV {
namespace mpact::sim::cheriot::encoding_rvv;
opcode_enum = "cheriot::isa32_rvv::OpcodeEnum";
includes {
#include "cheriot/riscv_cheriot_rvv_decoder.h"
}
// Group these instruction groups in the same decoder function.
RiscVCheriotRVVInst32 = {RiscVVInst32, RiscVCheriotInst32};
// Keep this separate (different base format).
RiscVCheriotRVVInst16 = {RiscVCheriotInst16};
};
#include "cheriot/riscv_cheriot.bin_fmt"
#include "cheriot/riscv_cheriot_f.bin_fmt"
#include "cheriot/riscv_cheriot_vector.bin_fmt"
#include "cheriot/riscv_cheriot_vector_fp.bin_fmt"