diff --git a/.bazeliskrc b/.bazeliskrc
index e254530..1ab2228 100644
--- a/.bazeliskrc
+++ b/.bazeliskrc
@@ -1 +1 @@
-USE_BAZEL_VERSION=7.1.2
+USE_BAZEL_VERSION=8.6.0
diff --git a/.bazelrc b/.bazelrc
index f400d64..82e707d 100644
--- a/.bazelrc
+++ b/.bazelrc
@@ -21,6 +21,10 @@
 
 build --copt=-Wno-unused-function --cxxopt="-std=c++17"
 build --host_copt=-Wno-unused-function --host_cxxopt="-std=c++17"
-# TODO: migrate all dependencies from WORKSPACE to MODULE.bazel
-# https://github.com/protocolbuffers/protobuf/issues/14313
-common --noenable_bzlmod
\ No newline at end of file
+
+# Force include cstdint to provide uintptr_t for Abseil and other deps
+build --cxxopt=-include --cxxopt=cstdint
+build --host_cxxopt=-include --host_cxxopt=cstdint
+
+common --registry=https://raw.githubusercontent.com/google/mpact-sim-codelabs/main/
+common --registry=https://bcr.bazel.build/
diff --git a/.bazelversion b/.bazelversion
index a8a1887..acd405b 100644
--- a/.bazelversion
+++ b/.bazelversion
@@ -1 +1 @@
-7.1.2
+8.6.0
diff --git a/MODULE.bazel b/MODULE.bazel
new file mode 100644
index 0000000..147be0f
--- /dev/null
+++ b/MODULE.bazel
@@ -0,0 +1,64 @@
+# Copyright 2026 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+module(
+    name = "mpact-riscv",
+    version = "1.0.0",
+)
+
+# Core Dependencies
+bazel_dep(
+    name = "mpact-sim",
+    version = "1.0.0",
+)
+bazel_dep(
+    name = "abseil-cpp",
+    version = "20240116.2",
+)
+bazel_dep(
+    name = "protobuf",
+    version = "29.0",
+    repo_name = "com_google_protobuf",
+)
+bazel_dep(
+    name = "googletest",
+    version = "1.14.0.bcr.1",
+    repo_name = "com_google_googletest",
+)
+bazel_dep(
+    name = "re2",
+    version = "2023-11-01",
+    repo_name = "com_googlesource_code_re2",
+)
+bazel_dep(
+    name = "rules_license",
+    version = "1.0.0",
+)
+bazel_dep(
+    name = "bazel_skylib",
+    version = "1.7.1",
+)
+bazel_dep(
+    name = "rules_cc",
+    version = "0.1.3",
+)
+
+sim_deps = use_extension(
+    "@mpact-sim//:extensions.bzl",
+    "non_module_deps",
+)
+use_repo(
+    sim_deps,
+    "com_github_serge1_elfio",
+)
diff --git a/gitfiles/WORKSPACE b/gitfiles/WORKSPACE
deleted file mode 100644
index 17ce205..0000000
--- a/gitfiles/WORKSPACE
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright 2023 - 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     https://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-workspace(name = "com_google_mpact-riscv")
-
-# First load the immediate repo dependencies (mpact-sim).
-load("@com_google_mpact-riscv//:repos.bzl", "mpact_riscv_repos")
-
-mpact_riscv_repos()
-
-# Next load in the transitive repo dependencies.
-load("@com_google_mpact-riscv//:dep_repos.bzl", "mpact_riscv_dep_repos")
-
-mpact_riscv_dep_repos()
-
-# Call the deps function. It will call any other dependent deps functions.
-load("@com_google_mpact-riscv//:deps.bzl", "mpact_riscv_deps");
-
-mpact_riscv_deps()
-
-# Load the protobuf deps from mpact_sim
-load("@com_google_mpact-sim//:protobuf_deps.bzl", "mpact_sim_protobuf_deps")
-
-mpact_sim_protobuf_deps()
-
diff --git a/gitfiles/dep_repos.bzl b/gitfiles/dep_repos.bzl
deleted file mode 100644
index 65d9176..0000000
--- a/gitfiles/dep_repos.bzl
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     https://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""Call the first level dependent repos to load their dependencies."""
-
-load("@com_google_mpact-sim//:repos.bzl", "mpact_sim_repos")
-
-def mpact_riscv_dep_repos():
-    """ Extra dependencies to finish setting up repositories"""
-
-    mpact_sim_repos()
diff --git a/gitfiles/deps.bzl b/gitfiles/deps.bzl
deleted file mode 100644
index 23c199c..0000000
--- a/gitfiles/deps.bzl
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     https://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""Set up extra repositories with the dependencies"""
-
-load("@com_google_mpact-sim//:deps.bzl", "mpact_sim_deps")
-
-def mpact_riscv_deps():
-    """ Extra dependencies to finish setting up repositories"""
-
-    mpact_sim_deps()
diff --git a/gitfiles/repos.bzl b/gitfiles/repos.bzl
deleted file mode 100644
index a8ce95b..0000000
--- a/gitfiles/repos.bzl
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright 2024 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     https://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""Load dependent repositories"""
-
-load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
-
-def mpact_riscv_repos():
-    """ Load dependencies needed to use mpact-riscv as a 3rd-party consumer"""
-
-    if not native.existing_rule("com_google_mpact-sim"):
-        http_archive(
-            name = "com_google_mpact-sim",
-            sha256 = "117b8c8c3508e0c7975c2560b58cb742662568e3fd33722e01c4c07f742d1a54",
-            strip_prefix = "mpact-sim-323f07a5bf5e9eea2ad337e295a53235eaa3bfee",
-            url = "https://github.com/google/mpact-sim/archive/323f07a5bf5e9eea2ad337e295a53235eaa3bfee.tar.gz",
-        )
diff --git a/riscv/riscv_gdb_debug_info.h b/riscv/riscv_gdb_debug_info.h
index 0d0055b..57feaaa 100644
--- a/riscv/riscv_gdb_debug_info.h
+++ b/riscv/riscv_gdb_debug_info.h
@@ -160,6 +160,9 @@
   int GetLastGpr() const override {
     return static_cast<int>(RiscVGdbRegisterEnum::kGprLast);
   }
+  int GetPcRegister() const override {
+    return static_cast<int>(RiscVGdbRegisterEnum::kGprPc);
+  }
   int GetGprWidth() const override { return gpr_width_; };
   // For now assume that all registers have the same width as the GPRs.
   int GetRegisterByteWidth(int register_number) const override {
