diff --git a/src/stub/src/arch/arm/v4a/Makefile.extra b/src/stub/src/arch/arm/v4a/Makefile.extra index 7be18321..051294b5 100644 --- a/src/stub/src/arch/arm/v4a/Makefile.extra +++ b/src/stub/src/arch/arm/v4a/Makefile.extra @@ -41,7 +41,12 @@ tc.arm-lzma.gcc += -I$(top_srcdir)/src lzma_d_c%.S : lzma_d_c.c $(call tc,gcc) $(PP_FLAGS) -S $< -o tmp/$T.s - sed -e '1,/LzmaDecode:/d' -e '/\.size/d' -e '/\.ident/d' -e 's/\.L/$(LABEL_PREFIX)/g' tmp/$T.s | $(RTRIM) > $@ + sed -e '1,/LzmaDecode:/c.arm' -e '/\.size/d' -e '/\.ident/d' -e 's/\.L/$(LABEL_PREFIX)/g' tmp/$T.s | $(RTRIM) > $@ + $(call tc,gcc) -c -MF /dev/null $@ -o tmp/$T.o + $(call tc,f-objstrip,tmp/$T.o) + $(call tc,objcopy) -O binary tmp/$T.o tmp/$T.bin + head -c-0 tmp/$T.bin > tmp/$T.out + $(call tc,objdump) -b binary -m armv4 -D tmp/$T.out | $(RTRIM) > tmp/$T.out.disasm lzma_d_cf.% : PP_FLAGS = -DFAST lzma_d_cs.% : PP_FLAGS = -DSMALL diff --git a/src/stub/src/arch/arm/v4a/lzma_d_cf.S b/src/stub/src/arch/arm/v4a/lzma_d_cf.S index 30915b85..fe441253 100644 --- a/src/stub/src/arch/arm/v4a/lzma_d_cf.S +++ b/src/stub/src/arch/arm/v4a/lzma_d_cf.S @@ -1,3 +1,4 @@ +.arm @ args = 12, pretend = 0, frame = 48 @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} diff --git a/src/stub/src/arch/arm/v4a/lzma_d_cs.S b/src/stub/src/arch/arm/v4a/lzma_d_cs.S index 7d7e0e0e..bc889c81 100644 --- a/src/stub/src/arch/arm/v4a/lzma_d_cs.S +++ b/src/stub/src/arch/arm/v4a/lzma_d_cs.S @@ -1,3 +1,4 @@ +.arm @ args = 12, pretend = 0, frame = 48 @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} diff --git a/src/stub/src/arch/arm/v4t/Makefile.extra b/src/stub/src/arch/arm/v4t/Makefile.extra index b4470c6a..f530a851 100644 --- a/src/stub/src/arch/arm/v4t/Makefile.extra +++ b/src/stub/src/arch/arm/v4t/Makefile.extra @@ -39,7 +39,12 @@ tc.arm-lzma.gcc += -I$(top_srcdir)/src lzma_d_c%.S : lzma_d_c.c $(call tc,gcc) $(PP_FLAGS) -S $< -o tmp/$T.s - sed -e '1,/LzmaDecode:/d' -e '/\.size/d' -e '/\.ident/d' -e 's/\.L/$(LABEL_PREFIX)/g' tmp/$T.s | $(RTRIM) > $@ + sed -e '1,/LzmaDecode:/c.thumb' -e '/\.size/d' -e '/\.ident/d' -e 's/\.L/$(LABEL_PREFIX)/g' tmp/$T.s | $(RTRIM) > $@ + $(call tc,gcc) -c -MF /dev/null $@ -o tmp/$T.o + $(call tc,f-objstrip,tmp/$T.o) + $(call tc,objcopy) -O binary tmp/$T.o tmp/$T.bin + head -c-0 tmp/$T.bin > tmp/$T.out + $(call tc,objdump) -b binary -m armv4t -M force-thumb -D tmp/$T.out | $(RTRIM) > tmp/$T.out.disasm lzma_d_cf.% : PP_FLAGS = -DFAST lzma_d_cs.% : PP_FLAGS = -DSMALL diff --git a/src/stub/src/arch/arm/v4t/lzma_d_cf.S b/src/stub/src/arch/arm/v4t/lzma_d_cf.S index f50f900f..640dd5fa 100644 --- a/src/stub/src/arch/arm/v4t/lzma_d_cf.S +++ b/src/stub/src/arch/arm/v4t/lzma_d_cf.S @@ -1,3 +1,4 @@ +.thumb push {r4, r5, r6, r7, lr} sub sp, sp, #124 str r1, [sp, #16] diff --git a/src/stub/src/arch/arm/v4t/lzma_d_cs.S b/src/stub/src/arch/arm/v4t/lzma_d_cs.S index add817b0..71ff4f0e 100644 --- a/src/stub/src/arch/arm/v4t/lzma_d_cs.S +++ b/src/stub/src/arch/arm/v4t/lzma_d_cs.S @@ -1,3 +1,4 @@ +.thumb push {r4, r5, r6, r7, lr} sub sp, sp, #124 str r1, [sp, #16]