aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Deymo <deymo@google.com>2016-03-23 15:09:50 -0700
committerAlex Deymo <deymo@google.com>2016-03-25 17:20:54 -0700
commit26b927f9aae35767f9fff824765d48ea98a282a7 (patch)
tree6e2ec1b24af578bedbeadd13665b331c9467b1be
parent4c4bda9464d20eb28784f5992f80d08c5747172b (diff)
downloadlzma-nougat-mr2.3-release.tar.gz
Enable BCJ fiter support in xz-embedded.android-cts_7.1_r1android-cts-7.1_r9android-cts-7.1_r8android-cts-7.1_r7android-cts-7.1_r6android-cts-7.1_r5android-cts-7.1_r4android-cts-7.1_r3android-cts-7.1_r29android-cts-7.1_r28android-cts-7.1_r27android-cts-7.1_r26android-cts-7.1_r25android-cts-7.1_r24android-cts-7.1_r23android-cts-7.1_r22android-cts-7.1_r21android-cts-7.1_r20android-cts-7.1_r2android-cts-7.1_r19android-cts-7.1_r18android-cts-7.1_r17android-cts-7.1_r16android-cts-7.1_r15android-cts-7.1_r14android-cts-7.1_r13android-cts-7.1_r12android-cts-7.1_r11android-cts-7.1_r10android-cts-7.1_r1android-cts-7.0_r9android-cts-7.0_r8android-cts-7.0_r7android-cts-7.0_r6android-cts-7.0_r5android-cts-7.0_r4android-cts-7.0_r33android-cts-7.0_r32android-cts-7.0_r31android-cts-7.0_r30android-cts-7.0_r3android-cts-7.0_r29android-cts-7.0_r28android-cts-7.0_r27android-cts-7.0_r26android-cts-7.0_r25android-cts-7.0_r24android-cts-7.0_r23android-cts-7.0_r22android-cts-7.0_r21android-cts-7.0_r20android-cts-7.0_r2android-cts-7.0_r19android-cts-7.0_r18android-cts-7.0_r17android-cts-7.0_r16android-cts-7.0_r15android-cts-7.0_r14android-cts-7.0_r13android-cts-7.0_r12android-cts-7.0_r11android-cts-7.0_r10android-cts-7.0_r1android-7.1.2_r9android-7.1.2_r8android-7.1.2_r6android-7.1.2_r5android-7.1.2_r4android-7.1.2_r39android-7.1.2_r38android-7.1.2_r37android-7.1.2_r36android-7.1.2_r33android-7.1.2_r32android-7.1.2_r30android-7.1.2_r3android-7.1.2_r29android-7.1.2_r28android-7.1.2_r27android-7.1.2_r25android-7.1.2_r24android-7.1.2_r23android-7.1.2_r2android-7.1.2_r19android-7.1.2_r18android-7.1.2_r17android-7.1.2_r16android-7.1.2_r15android-7.1.2_r14android-7.1.2_r13android-7.1.2_r12android-7.1.2_r11android-7.1.2_r10android-7.1.2_r1android-7.1.1_r9android-7.1.1_r8android-7.1.1_r7android-7.1.1_r61android-7.1.1_r60android-7.1.1_r6android-7.1.1_r59android-7.1.1_r58android-7.1.1_r57android-7.1.1_r56android-7.1.1_r55android-7.1.1_r54android-7.1.1_r53android-7.1.1_r52android-7.1.1_r51android-7.1.1_r50android-7.1.1_r49android-7.1.1_r48android-7.1.1_r47android-7.1.1_r46android-7.1.1_r45android-7.1.1_r44android-7.1.1_r43android-7.1.1_r42android-7.1.1_r41android-7.1.1_r40android-7.1.1_r4android-7.1.1_r39android-7.1.1_r38android-7.1.1_r35android-7.1.1_r33android-7.1.1_r32android-7.1.1_r31android-7.1.1_r3android-7.1.1_r28android-7.1.1_r27android-7.1.1_r26android-7.1.1_r25android-7.1.1_r24android-7.1.1_r23android-7.1.1_r22android-7.1.1_r21android-7.1.1_r20android-7.1.1_r2android-7.1.1_r17android-7.1.1_r16android-7.1.1_r15android-7.1.1_r14android-7.1.1_r13android-7.1.1_r12android-7.1.1_r11android-7.1.1_r10android-7.1.1_r1android-7.1.0_r7android-7.1.0_r6android-7.1.0_r5android-7.1.0_r4android-7.1.0_r3android-7.1.0_r2android-7.1.0_r1android-7.0.0_r9android-7.0.0_r8android-7.0.0_r7android-7.0.0_r6android-7.0.0_r5android-7.0.0_r4android-7.0.0_r36android-7.0.0_r35android-7.0.0_r34android-7.0.0_r33android-7.0.0_r32android-7.0.0_r31android-7.0.0_r30android-7.0.0_r3android-7.0.0_r29android-7.0.0_r28android-7.0.0_r27android-7.0.0_r24android-7.0.0_r21android-7.0.0_r19android-7.0.0_r17android-7.0.0_r15android-7.0.0_r14android-7.0.0_r13android-7.0.0_r12android-7.0.0_r11android-7.0.0_r10android-7.0.0_r1afw-test-harness-2.1nougat-releasenougat-mr2.3-releasenougat-mr2.2-releasenougat-mr2.1-releasenougat-mr2-security-releasenougat-mr2-releasenougat-mr2-pixel-releasenougat-mr2-devnougat-mr1.8-releasenougat-mr1.7-releasenougat-mr1.6-releasenougat-mr1.5-releasenougat-mr1.4-releasenougat-mr1.3-releasenougat-mr1.2-releasenougat-mr1.1-releasenougat-mr1-volantis-releasenougat-mr1-security-releasenougat-mr1-releasenougat-mr1-flounder-releasenougat-mr1-devnougat-mr1-cts-releasenougat-mr0.5-releasenougat-dr1-releasenougat-devnougat-cts-releasenougat-bugfix-release
BCJ (branch/call/jump) filters in XZ will convert relative jumps into absolute addresses to increase the redundancy. Since binary code has plenty of relative jumps, this often improves compression ratio of .xz. Preliminary test shows an improvement of 2% in the compression ratio when compressing ELF files, which is already around 25% compression ratio when using xz. This patch enables the BCJ for x86, arm and thumb code filters (the actual data being compressed, not the supported architectures where the filter can run). This increases the size of the .a in ~12 KiB. Bug: 27817327 TEST=Used xz-embedded to decompress a file compressed with `xz --x86 --lzma2` (cherry picked from commit 20e8a04716ec9eca8ea5aa4788f0cbf69a7f6842) Change-Id: Icbfc05b711675ce26b4362218026abdcc22f368f
-rw-r--r--xz-embedded/Android.mk10
-rw-r--r--xz-embedded/xz_config.h6
2 files changed, 11 insertions, 5 deletions
diff --git a/xz-embedded/Android.mk b/xz-embedded/Android.mk
index 6782b24..20dd88f 100644
--- a/xz-embedded/Android.mk
+++ b/xz-embedded/Android.mk
@@ -2,14 +2,20 @@
#
LOCAL_PATH := $(call my-dir)
+xz_embedded_sources := \
+ xz_crc32.c \
+ xz_dec_bcj.c \
+ xz_dec_lzma2.c \
+ xz_dec_stream.c
+
include $(CLEAR_VARS)
LOCAL_MODULE := libxz
-LOCAL_SRC_FILES := xz_crc32.c xz_dec_lzma2.c xz_dec_stream.c
+LOCAL_SRC_FILES := $(xz_embedded_sources)
LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
include $(BUILD_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libxz-host
-LOCAL_SRC_FILES := xz_crc32.c xz_dec_lzma2.c xz_dec_stream.c
+LOCAL_SRC_FILES := $(xz_embedded_sources)
LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
include $(BUILD_HOST_STATIC_LIBRARY)
diff --git a/xz-embedded/xz_config.h b/xz-embedded/xz_config.h
index eb9dac1..8b88c52 100644
--- a/xz-embedded/xz_config.h
+++ b/xz-embedded/xz_config.h
@@ -14,11 +14,11 @@
/* #define XZ_USE_CRC64 */
/* Uncomment as needed to enable BCJ filter decoders. */
-/* #define XZ_DEC_X86 */
+#define XZ_DEC_X86
/* #define XZ_DEC_POWERPC */
/* #define XZ_DEC_IA64 */
-/* #define XZ_DEC_ARM */
-/* #define XZ_DEC_ARMTHUMB */
+#define XZ_DEC_ARM
+#define XZ_DEC_ARMTHUMB
/* #define XZ_DEC_SPARC */
/*