summaryrefslogtreecommitdiff
path: root/src/core/hle
diff options
context:
space:
mode:
authorGravatar Lioncash2015-07-21 05:49:05 -0400
committerGravatar Lioncash2015-07-21 05:49:05 -0400
commit043b2f882aa48488ba632621cd62c5784e1c8fab (patch)
treebd812292360525f0172a469e11f81ac57339852d /src/core/hle
parentResolve issue accidentally left unaddressed in PR #930 (diff)
parentdyncom: Pass SVC immediates directly. (diff)
downloadyuzu-043b2f882aa48488ba632621cd62c5784e1c8fab.tar.gz
yuzu-043b2f882aa48488ba632621cd62c5784e1c8fab.tar.xz
yuzu-043b2f882aa48488ba632621cd62c5784e1c8fab.zip
Merge pull request #964 from lioncash/svc
dyncom: Pass SVC immediates directly.
Diffstat (limited to 'src/core/hle')
-rw-r--r--src/core/hle/svc.cpp7
-rw-r--r--src/core/hle/svc.h2
2 files changed, 4 insertions, 5 deletions
diff --git a/src/core/hle/svc.cpp b/src/core/hle/svc.cpp
index 802ecc52a..bdede964e 100644
--- a/src/core/hle/svc.cpp
+++ b/src/core/hle/svc.cpp
@@ -833,8 +833,7 @@ static const FunctionDef SVC_Table[] = {
833 833
834Common::Profiling::TimingCategory profiler_svc("SVC Calls"); 834Common::Profiling::TimingCategory profiler_svc("SVC Calls");
835 835
836static const FunctionDef* GetSVCInfo(u32 opcode) { 836static const FunctionDef* GetSVCInfo(u32 func_num) {
837 u32 func_num = opcode & 0xFFFFFF; // 8 bits
838 if (func_num >= ARRAY_SIZE(SVC_Table)) { 837 if (func_num >= ARRAY_SIZE(SVC_Table)) {
839 LOG_ERROR(Kernel_SVC, "unknown svc=0x%02X", func_num); 838 LOG_ERROR(Kernel_SVC, "unknown svc=0x%02X", func_num);
840 return nullptr; 839 return nullptr;
@@ -842,10 +841,10 @@ static const FunctionDef* GetSVCInfo(u32 opcode) {
842 return &SVC_Table[func_num]; 841 return &SVC_Table[func_num];
843} 842}
844 843
845void CallSVC(u32 opcode) { 844void CallSVC(u32 immediate) {
846 Common::Profiling::ScopeTimer timer_svc(profiler_svc); 845 Common::Profiling::ScopeTimer timer_svc(profiler_svc);
847 846
848 const FunctionDef *info = GetSVCInfo(opcode); 847 const FunctionDef* info = GetSVCInfo(immediate);
849 if (info) { 848 if (info) {
850 if (info->func) { 849 if (info->func) {
851 info->func(); 850 info->func();
diff --git a/src/core/hle/svc.h b/src/core/hle/svc.h
index 4389aa73d..12de9ffbe 100644
--- a/src/core/hle/svc.h
+++ b/src/core/hle/svc.h
@@ -41,6 +41,6 @@ enum ArbitrationType {
41 41
42namespace SVC { 42namespace SVC {
43 43
44void CallSVC(u32 opcode); 44void CallSVC(u32 immediate);
45 45
46} // namespace 46} // namespace