This adds additional bit manipulation instructions to the RiscV 64 bit simulator.
It also factors out some of the encoding initializers so that they can be
reused across multiple decoders without having to replicate them.

This also fixes a decoding issue due to underspecified encodings of some vector memory instructions.

PiperOrigin-RevId: 671853580
Change-Id: I12a9951cf4f74b1334a3c962bee8b89f64aab62f
diff --git a/mpact/sim/decoder/BUILD b/mpact/sim/decoder/BUILD
index 75511a5..d84909f 100644
--- a/mpact/sim/decoder/BUILD
+++ b/mpact/sim/decoder/BUILD
@@ -120,7 +120,6 @@
         "@com_google_absl//absl/container:btree",
         "@com_google_absl//absl/container:flat_hash_map",
         "@com_google_absl//absl/container:flat_hash_set",
-        "@com_google_absl//absl/log",
         "@com_google_absl//absl/memory",
         "@com_google_absl//absl/numeric:bits",
         "@com_google_absl//absl/status",
diff --git a/mpact/sim/decoder/opcode.cc b/mpact/sim/decoder/opcode.cc
index 2c6d893..bdc6bcf 100644
--- a/mpact/sim/decoder/opcode.cc
+++ b/mpact/sim/decoder/opcode.cc
@@ -15,6 +15,7 @@
 #include "mpact/sim/decoder/opcode.h"
 
 #include <functional>
+#include <new>
 #include <string>
 #include <utility>