3780e33732
mcycle/minstret are actually WARL registers and can be written with any given value. With SBI PMU extension, it will be used to store a initial value provided from supervisor OS. The Qemu also need prohibit the counter increment if mcountinhibit is set. Support mcycle/minstret through generic counter infrastructure. Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Signed-off-by: Atish Patra <atish.patra@wdc.com> Signed-off-by: Atish Patra <atishp@rivosinc.com> Message-Id: <20220620231603.2547260-8-atishp@rivosinc.com> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
39 lines
958 B
Meson
39 lines
958 B
Meson
# FIXME extra_args should accept files()
|
|
dir = meson.current_source_dir()
|
|
|
|
gen = [
|
|
decodetree.process('insn16.decode', extra_args: ['--static-decode=decode_insn16', '--insnwidth=16']),
|
|
decodetree.process('insn32.decode', extra_args: '--static-decode=decode_insn32'),
|
|
decodetree.process('XVentanaCondOps.decode', extra_args: '--static-decode=decode_XVentanaCodeOps'),
|
|
]
|
|
|
|
riscv_ss = ss.source_set()
|
|
riscv_ss.add(gen)
|
|
riscv_ss.add(files(
|
|
'cpu.c',
|
|
'cpu_helper.c',
|
|
'csr.c',
|
|
'fpu_helper.c',
|
|
'gdbstub.c',
|
|
'op_helper.c',
|
|
'vector_helper.c',
|
|
'bitmanip_helper.c',
|
|
'translate.c',
|
|
'm128_helper.c',
|
|
'crypto_helper.c'
|
|
))
|
|
riscv_ss.add(when: 'CONFIG_KVM', if_true: files('kvm.c'), if_false: files('kvm-stub.c'))
|
|
|
|
riscv_softmmu_ss = ss.source_set()
|
|
riscv_softmmu_ss.add(files(
|
|
'arch_dump.c',
|
|
'pmp.c',
|
|
'debug.c',
|
|
'monitor.c',
|
|
'machine.c',
|
|
'pmu.c'
|
|
))
|
|
|
|
target_arch += {'riscv': riscv_ss}
|
|
target_softmmu_arch += {'riscv': riscv_softmmu_ss}
|