X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb/blobdiff_plain/6a3d653c3ef38efa52448d6db0d2efab098224a5..818bad9b1b5e68bdd26595a0ec5f513fe56ba174:/base/regdump.h diff --git a/base/regdump.h b/base/regdump.h index a07072df..3a6d59cb 100644 --- a/base/regdump.h +++ b/base/regdump.h @@ -774,8 +774,15 @@ DO32(REGDEF_FP) // Make space for the register save area. sub sp, sp, #REGDUMP_GPSIZE - // Save flags and general-purpose registers. - stp x16, x17, [sp, #8*16] + // Save flags and general-purpose registers. The PLT linkage code + // makes free with x8--x17, so we must save those here. + mrs x30, nzcv + str x30, [sp, #8*REGIX_NZCV] + stp x8, x9, [sp, #64] + stp x10, x11, [sp, #80] + stp x12, x13, [sp, #96] + stp x14, x15, [sp, #112] + stp x16, x17, [sp, #128] bl regdump_gpsave // Make space for the extended registers.