Skip to content

Commit d52fdd5

Browse files
committed
DynASM/ARM64: Fixed incorrect ADRP instruction encoding (-4 => +4)
1 parent 28c27cd commit d52fdd5

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

ext/opcache/jit/dynasm/dasm_arm64.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -484,7 +484,7 @@ int dasm_encode(Dst_DECL, void *buffer)
484484
case DASM_REL_A: {
485485
ptrdiff_t na;
486486
if ((ins & 0x3000) == 0x3000) { /* ADRP */
487-
na = ((((ptrdiff_t)(*b++) << 32) | (unsigned int)n) & ~0xfff) - (((ptrdiff_t)cp + 4) & ~0xfff);
487+
na = ((((ptrdiff_t)(*b++) << 32) | (unsigned int)n) & ~0xfff) - (((ptrdiff_t)cp - 4) & ~0xfff);;
488488
} else {
489489
na = (((ptrdiff_t)(*b++) << 32) | (unsigned int)n) - (ptrdiff_t)cp + 4;
490490
}

0 commit comments

Comments
 (0)