diff --git a/src/stub/src/arm.v4a-expand.S b/src/stub/src/arm.v4a-expand.S index f6e6ea26..74c411a9 100644 --- a/src/stub/src/arm.v4a-expand.S +++ b/src/stub/src/arm.v4a-expand.S @@ -57,13 +57,13 @@ f_unfilter: @ on stack: (char *ptr, uint len, uint cto, uint fid) // not calla t1 .req r2 t2 .req r3 - #ifndef FILTER_ID /*{*/ #define FILTER_ID 0x50 /* little-endian */ #endif /*}*/ and fid,fid,#0xff + bic fid,fid,#1 @ 0x51 ==> 0x50 cmp fid,#FILTER_ID @ last use of fid - movne pc,lr @ no-op if not filter 0x50 + movne pc,lr @ no-op if not filter 0x50 or 0x51 movs len,len,lsr #2 @ word count cmpne ptr,#0 diff --git a/src/stub/src/arm.v4a-linux.elf-fold.S b/src/stub/src/arm.v4a-linux.elf-fold.S index e9dd0137..cb62c173 100644 --- a/src/stub/src/arm.v4a-linux.elf-fold.S +++ b/src/stub/src/arm.v4a-linux.elf-fold.S @@ -29,9 +29,8 @@ NBPW= 4 -#define ARM_OLDABI 1 +#define ARMEL_EABI4 1 #include "arch/arm/v4a/macros.S" -#define bkpt .long 0xe7f001f0 /* reserved instr; Linux GNU eabi breakpoint */ sz_Elf32_Ehdr = 13*NBPW e_type= 16 @@ -311,13 +310,10 @@ f_unfilter: @ (char *ptr, uint len, uint cto, uint fid) t1 .req r2 t2 .req r3 - -#ifndef FILTER_ID /*{*/ -#define FILTER_ID 0x50 /* little-endian */ -#endif /*}*/ and fid,fid,#0xff - cmp fid,#FILTER_ID @ last use of fid - movne pc,lr @ no-op if not filter 0x50 + bic fid,fid,#1 @ 0x51 ==> 0x50 + cmp fid,#0x50 @ last use of fid + movne pc,lr @ no-op if not filter 0x50 or 0x51 movs len,len,lsr #2 @ word count cmpne ptr,#0