From 48fe7afe72defe979ffb6e11a61dd7628f70ea9e Mon Sep 17 00:00:00 2001
From: Lioncash <mathew1800@gmail.com>
Date: Mon, 22 Feb 2021 07:28:18 -0500
Subject: [PATCH] thumb32: Implement YIELD

---
 src/frontend/A32/decoder/thumb32.inc                | 2 +-
 src/frontend/A32/translate/impl/thumb32_control.cpp | 4 ++++
 src/frontend/A32/translate/impl/translate_thumb.h   | 1 +
 3 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/frontend/A32/decoder/thumb32.inc b/src/frontend/A32/decoder/thumb32.inc
index db6b5b0f..2d452b85 100644
--- a/src/frontend/A32/decoder/thumb32.inc
+++ b/src/frontend/A32/decoder/thumb32.inc
@@ -96,7 +96,7 @@ INST(thumb32_MOVT,           "MOVT",                     "11110i101100iiii0iiidd
 //INST(thumb32_MSR_reg_4,      "MSR (reg)",                "111100111000----10-0--00--0-----")
 
 INST(thumb32_NOP,            "NOP",                      "11110011101011111000000000000000")
-//INST(thumb32_YIELD,          "YIELD",                    "111100111010----10-0-00000000001")
+INST(thumb32_YIELD,          "YIELD",                    "11110011101011111000000000000001")
 //INST(thumb32_WFE,            "WFE",                      "111100111010----10-0-00000000010")
 //INST(thumb32_WFI,            "WFI",                      "111100111010----10-0-00000000011")
 //INST(thumb32_SEV,            "SEV",                      "111100111010----10-0-00000000100")
diff --git a/src/frontend/A32/translate/impl/thumb32_control.cpp b/src/frontend/A32/translate/impl/thumb32_control.cpp
index 9646ee2b..1578a60a 100644
--- a/src/frontend/A32/translate/impl/thumb32_control.cpp
+++ b/src/frontend/A32/translate/impl/thumb32_control.cpp
@@ -38,4 +38,8 @@ bool ThumbTranslatorVisitor::thumb32_UDF() {
     return thumb16_UDF();
 }
 
+bool ThumbTranslatorVisitor::thumb32_YIELD() {
+    return thumb16_YIELD();
+}
+
 } // namespace Dynarmic::A32
diff --git a/src/frontend/A32/translate/impl/translate_thumb.h b/src/frontend/A32/translate/impl/translate_thumb.h
index d97365e6..b185c852 100644
--- a/src/frontend/A32/translate/impl/translate_thumb.h
+++ b/src/frontend/A32/translate/impl/translate_thumb.h
@@ -170,6 +170,7 @@ struct ThumbTranslatorVisitor final {
     bool thumb32_ISB(Imm<4> option);
     bool thumb32_NOP();
     bool thumb32_UDF();
+    bool thumb32_YIELD();
 
     // thumb32 branch instructions
     bool thumb32_BL_imm(Imm<1> S, Imm<10> hi, Imm<1> j1, Imm<1> j2, Imm<11> lo);