1<# 2// 3// Copyright (c) 2010-2021 Antmicro 4// 5// This file is licensed under the MIT License. 6// Full license text is available in 'licenses/MIT.txt'. 7// 8#> 9<#@ template language="C#" #> 10<#@ include file="../Common/RegisterTemplateDefinitions.tt" #> 11<# 12 CLASS_NAME = "RiscV64"; 13 HEADER_FILE = "Emulator/Cores/tlib/arch/riscv/cpu_registers.h"; 14 FALLBACK_SET_REGISTER = "TrySetNonMappedRegister"; 15 FALLBACK_GET_REGISTER = "TryGetNonMappedRegister"; 16 FALLBACK_REGISTERS = "GetNonMappedRegisters"; 17 18 DEFINES.Add("TARGET_RISCV64"); 19 20 BEFORE_WRITE_HOOKS.Add("PC", "BeforePCWrite"); 21 BEFORE_WRITE_HOOKS.Add("MTVEC", "BeforeMTVECWrite"); 22 BEFORE_WRITE_HOOKS.Add("STVEC", "BeforeSTVECWrite"); 23 BEFORE_WRITE_HOOKS.Add("VSTART", "BeforeVectorExtensionRegisterWrite"); 24 BEFORE_WRITE_HOOKS.Add("VXSAT", "BeforeVectorExtensionRegisterWrite"); 25 BEFORE_WRITE_HOOKS.Add("VXRM", "BeforeVectorExtensionRegisterWrite"); 26 BEFORE_WRITE_HOOKS.Add("VCSR", "BeforeVectorExtensionRegisterWrite"); 27 BEFORE_WRITE_HOOKS.Add("VL", "BeforeVectorExtensionRegisterWrite"); 28 BEFORE_WRITE_HOOKS.Add("VTYPE", "BeforeVectorExtensionRegisterWrite"); 29 BEFORE_WRITE_HOOKS.Add("VLENB", "BeforeVectorExtensionRegisterWrite"); 30 BEFORE_READ_HOOKS.Add("VSTART", "BeforeVectorExtensionRegisterRead"); 31 BEFORE_READ_HOOKS.Add("VXSAT", "BeforeVectorExtensionRegisterRead"); 32 BEFORE_READ_HOOKS.Add("VXRM", "BeforeVectorExtensionRegisterRead"); 33 BEFORE_READ_HOOKS.Add("VCSR", "BeforeVectorExtensionRegisterRead"); 34 BEFORE_READ_HOOKS.Add("VL", "BeforeVectorExtensionRegisterRead"); 35 BEFORE_READ_HOOKS.Add("VTYPE", "BeforeVectorExtensionRegisterRead"); 36 BEFORE_READ_HOOKS.Add("VLENB", "BeforeVectorExtensionRegisterRead"); 37 38 GENERAL_REGISTERS.AddRange(new[] { "X0", "X1", "X2", "X3", "X4", "X5" , "X6" , "X7" , "X8" , "X9", 39 "X10", "X11", "X12", "X13", "X14", "X15", "X16", "X17", "X18", "X19", 40 "X20", "X21", "X22", "X23", "X24", "X25", "X26", "X27", "X28", "X29", 41 "X30", "X31", "PC" }); 42 43 UNSETTABLE_REGISTERS.AddRange(new[] {"X0", "VLENB"}); 44 45#> 46<#@ include file="../Common/RegisterTemplate.tt" #> 47