From 889161e55e382bb97f0e4e9550d423ef5660f641 Mon Sep 17 00:00:00 2001 From: omergreen <71124454+omergreen@users.noreply.github.com> Date: Fri, 25 Nov 2022 02:31:22 +0200 Subject: [PATCH] Fix mac m1 incompatibility for cmplog in frida mode (#914) For some reason, Apple's aarch64 processor throws a SIGILL when encountering LDP x5, x5 (or any other repeating register). STP works, but I changed both for symmetry. --- libafl_frida/src/cmplog_rt.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libafl_frida/src/cmplog_rt.rs b/libafl_frida/src/cmplog_rt.rs index b36108a240..bcc2bc831a 100644 --- a/libafl_frida/src/cmplog_rt.rs +++ b/libafl_frida/src/cmplog_rt.rs @@ -187,23 +187,23 @@ impl CmpLogRuntime { macro_rules! tbz_masking { ($ops:ident) => {dynasm!($ops ; .arch aarch64 - ; stp x5, x5, [sp, #-0x10]! + ; stp x5, xzr, [sp, #-0x10]! ; mov x5, #1 ; lsl x5, x5, x1 ; eor x5, x5, #255 ; orr x1, x0, x5 - ; ldp x5, x5, [sp], #0x10 + ; ldp x5, xzr, [sp], #0x10 );}; } macro_rules! tbnz_masking { ($ops:ident) => {dynasm!($ops ; .arch aarch64 - ; stp x5, x5, [sp, #-0x10]! + ; stp x5, xzr, [sp, #-0x10]! ; mov x5, #1 ; lsl x5, x5, x1 ; orr x1, x0, x5 - ; ldp x5, x5, [sp], #0x10 + ; ldp x5, xzr, [sp], #0x10 );}; }