From: Andrew Waterman Date: Wed, 2 Feb 2011 09:52:36 +0000 (-0800) Subject: [sim,xcc,opcodes] added back mtflh.d X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c983d273b25d1ab54396eff8dcf6f5dda38ad052;p=riscv-isa-sim.git [sim,xcc,opcodes] added back mtflh.d --- diff --git a/riscv/execute.h b/riscv/execute.h index 9cc56ab..48f6d34 100644 --- a/riscv/execute.h +++ b/riscv/execute.h @@ -908,7 +908,7 @@ switch((insn.bits >> 0x0) & 0x7f) #include "insns/mffh_d.h" break; } - if((insn.bits & 0x1ffff) == 0x1ced3) + if((insn.bits & 0x3fffff) == 0x1ced3) { #include "insns/mtf_d.h" break; @@ -923,6 +923,11 @@ switch((insn.bits >> 0x0) & 0x7f) #include "insns/fc_lt_d.h" break; } + if((insn.bits & 0x1ffff) == 0x1eed3) + { + #include "insns/mtflh_d.h" + break; + } if((insn.bits & 0x1ffff) == 0x15ed3) { #include "insns/fc_eq_d.h" diff --git a/riscv/insns/mtf_d.h b/riscv/insns/mtf_d.h index b03697b..29792ec 100644 --- a/riscv/insns/mtf_d.h +++ b/riscv/insns/mtf_d.h @@ -1,5 +1,3 @@ +require_xpr64; require_fp; -if(xpr64) - FRD = RS1; -else - FRD = (RS1 & 0x00000000FFFFFFFF) | (RS2 << 32); +FRD = RS1; diff --git a/riscv/insns/mtflh_d.h b/riscv/insns/mtflh_d.h new file mode 100644 index 0000000..ac87afb --- /dev/null +++ b/riscv/insns/mtflh_d.h @@ -0,0 +1,3 @@ +require_xpr32; +require_fp; +FRD = (RS1 & 0x00000000FFFFFFFF) | (RS2 << 32);