From 6a1ea4ec932f4fc9fdc00ec51ee070b298ddb35f Mon Sep 17 00:00:00 2001 From: Janne Grunau Date: Fri, 18 Nov 2016 21:06:40 +0100 Subject: [PATCH] arm: warn/error on movrelx usage problematic with PIC on ELF The warning has false positives but our asm does not trigger it. For new code false positives can only be avoided by changing the register allocation. --- libavutil/arm/asm.S | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/libavutil/arm/asm.S b/libavutil/arm/asm.S index 4ac0ea2e4f..a791e80c57 100644 --- a/libavutil/arm/asm.S +++ b/libavutil/arm/asm.S @@ -184,6 +184,15 @@ T ldr \rd, [\rd] .endm .macro movrelx rd, val, gp + .ifc \rd,\gp + .error "movrelx needs two distinct registers" + .endif + .ifc \rd\()_\gp,r12_ + .warning "movrelx rd=\rd without explicit set gp" + .endif + .ifc \rd\()_\gp,ip_ + .warning "movrelx rd=\rd without explicit set gp" + .endif #if CONFIG_PIC && defined(__ELF__) .ifnb \gp .if .Lpic_gp