diff --git a/src/stub/src/arch/amd64/lzma_d.S b/src/stub/src/arch/amd64/lzma_d.S index 3493f73e..2189c438 100644 --- a/src/stub/src/arch/amd64/lzma_d.S +++ b/src/stub/src/arch/amd64/lzma_d.S @@ -104,7 +104,13 @@ section LZMA_DEC30 movl szSizeT(%rbx),%ecx; addq %rcx,%rsi // inSizeProcessed movl (%rbx),%edx; addq %rdx,%rdi // outSizeProcessed leave // movl %ebp,%rsp; popq %rbp +#ifndef NO_METHOD_CHECK + jmp eof_lzma not_lzma: + push %rdi; pop %rsi # src = arg1 + # fall into 'eof' +eof_lzma: +#endif // vi:ts=8:et diff --git a/src/stub/src/arch/amd64/nrv2b_d.S b/src/stub/src/arch/amd64/nrv2b_d.S index 0989e8d9..58d19b90 100644 --- a/src/stub/src/arch/amd64/nrv2b_d.S +++ b/src/stub/src/arch/amd64/nrv2b_d.S @@ -30,10 +30,9 @@ */ #ifndef NO_METHOD_CHECK - cmpb $ M_NRV2B_LE32,methb; je top_n2b; jmp not_n2b -#else - jmp top_n2b + cmpb $ M_NRV2B_LE32,methb; jne not_n2b #endif + jmp top_n2b lit_n2b: incq %rsi; movb %dl,(%rdi) @@ -67,7 +66,11 @@ gotlen_n2b: bot_n2b: # In: 0==len jmp top_n2b +#ifndef NO_METHOD_CHECK not_n2b: + push %rdi; pop %rsi # src = arg1 + # fall into 'eof' +#endif /* vi:ts=8:et:nowrap */ diff --git a/src/stub/src/arch/amd64/nrv2d_d.S b/src/stub/src/arch/amd64/nrv2d_d.S index 6f40279f..52732ecc 100644 --- a/src/stub/src/arch/amd64/nrv2d_d.S +++ b/src/stub/src/arch/amd64/nrv2d_d.S @@ -30,10 +30,9 @@ */ #ifndef NO_METHOD_CHECK - cmpb $ M_NRV2D_LE32,methb; je top_n2d; jmp not_n2d -#else - jmp top_n2d + cmpb $ M_NRV2D_LE32,methb; jne not_n2d #endif + jmp top_n2d lit_n2d: incq %rsi; movb %dl,(%rdi) @@ -74,7 +73,10 @@ gotlen_n2d: bot_n2d: // In: 0==len jmp top_n2d +#ifndef NO_METHOD_CHECK not_n2d: + push %rdi; pop %rsi # src = arg1 +#endif /* vi:ts=8:et:nowrap diff --git a/src/stub/src/arch/amd64/nrv2e_d.S b/src/stub/src/arch/amd64/nrv2e_d.S index f24c1644..19a1302e 100644 --- a/src/stub/src/arch/amd64/nrv2e_d.S +++ b/src/stub/src/arch/amd64/nrv2e_d.S @@ -30,10 +30,9 @@ */ #ifndef NO_METHOD_CHECK - cmpb $ M_NRV2E_LE32,methb; je top_n2e; jmp not_n2e -#else - jmp top_n2e + cmpb $ M_NRV2E_LE32,methb; jne not_n2e #endif + jmp top_n2e lit_n2e: incq %rsi; movb %dl,(%rdi) @@ -80,7 +79,10 @@ gotlen_n2e: bot_n2e: # In: 0==len jmp top_n2e +#ifndef NO_METHOD_CHECK not_n2e: + push %rdi; pop %rsi # src = arg1 +#endif /* vi:ts=8:et:nowrap