From c983d273b25d1ab54396eff8dcf6f5dda38ad052 Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Wed, 2 Feb 2011 01:52:36 -0800 Subject: [PATCH] [sim,xcc,opcodes] added back mtflh.d --- riscv/execute.h | 7 ++++++- riscv/insns/mtf_d.h | 6 ++---- riscv/insns/mtflh_d.h | 3 +++ 3 files changed, 11 insertions(+), 5 deletions(-) create mode 100644 riscv/insns/mtflh_d.h 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); -- 2.30.2