diff --git a/mfbt/LinuxSignal.h.orig b/mfbt/LinuxSignal.h index 83c2bf8..5eb741c 100644 --- a/mfbt/LinuxSignal.h +++ b/mfbt/LinuxSignal.h @@ -25,10 +25,13 @@ SignalTrampoline(int aSignal, siginfo_t* aInfo, void* aContext) "nop; nop; nop; nop" : : : "memory"); +// Because the assembler may generate additional insturctions below, we +// need to ensure NOPs are inserted first by separating them out above. + asm volatile ( - "b %0" + "bx %0" : - : "X"(H) + : "r"(H), "l"(aSignal), "l"(aInfo), "l"(aContext) : "memory"); }