summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2021-01-13 11:04:13 +0100
committerJosJuice <josjuice@gmail.com>2021-02-13 11:33:27 +0100
commit4e107935ace514e55adacd2543b8fedacaaea6cd (patch)
tree94c9acdefb4bc9c933ad0cfaaebe1b911f3c8634 /Source/Core
parentd226b8f8256a82437446d601e0e77d57d94289fe (diff)
Arm64Emitter: Allow specifying 21th bit of ADRP imm
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Common/Arm64Emitter.cpp4
-rw-r--r--Source/Core/Common/Arm64Emitter.h2
2 files changed, 3 insertions, 3 deletions
diff --git a/Source/Core/Common/Arm64Emitter.cpp b/Source/Core/Common/Arm64Emitter.cpp
index 29cd71a132..5aae03ef08 100644
--- a/Source/Core/Common/Arm64Emitter.cpp
+++ b/Source/Core/Common/Arm64Emitter.cpp
@@ -1998,9 +1998,9 @@ void ARM64XEmitter::ADR(ARM64Reg Rd, s32 imm)
{
EncodeAddressInst(0, Rd, imm);
}
-void ARM64XEmitter::ADRP(ARM64Reg Rd, s32 imm)
+void ARM64XEmitter::ADRP(ARM64Reg Rd, s64 imm)
{
- EncodeAddressInst(1, Rd, imm >> 12);
+ EncodeAddressInst(1, Rd, static_cast<s32>(imm >> 12));
}
// Wrapper around MOVZ+MOVK (and later MOVN)
diff --git a/Source/Core/Common/Arm64Emitter.h b/Source/Core/Common/Arm64Emitter.h
index 18d4c29c7f..7d96fb836b 100644
--- a/Source/Core/Common/Arm64Emitter.h
+++ b/Source/Core/Common/Arm64Emitter.h
@@ -862,7 +862,7 @@ public:
// Address of label/page PC-relative
void ADR(ARM64Reg Rd, s32 imm);
- void ADRP(ARM64Reg Rd, s32 imm);
+ void ADRP(ARM64Reg Rd, s64 imm);
// Wrapper around MOVZ+MOVK
void MOVI2R(ARM64Reg Rd, u64 imm);