aboutsummaryrefslogtreecommitdiff
path: root/src/xz
diff options
context:
space:
mode:
authorLasse Collin <lasse.collin@tukaani.org>2022-11-14 23:14:41 +0200
committerLasse Collin <lasse.collin@tukaani.org>2022-11-14 23:16:38 +0200
commit8370ec8edf9ddf8d1d9fef03d8d1027503ec4c35 (patch)
tree5a5badf9edc6b6aaf3f8aa4e6cea15940c34b733 /src/xz
parentliblzma: Add fast CRC64 for 32/64-bit x86 using SSSE3 + SSE4.1 + CLMUL. (diff)
downloadxz-8370ec8edf9ddf8d1d9fef03d8d1027503ec4c35.tar.xz
Replace the experimental ARM64 filter with a new experimental version.
This is incompatible with the previous version. This has space/tab fixes in filter_*.c and bcj.h too.
Diffstat (limited to 'src/xz')
-rw-r--r--src/xz/args.c2
-rw-r--r--src/xz/message.c13
-rw-r--r--src/xz/options.c39
-rw-r--r--src/xz/options.h7
4 files changed, 11 insertions, 50 deletions
diff --git a/src/xz/args.c b/src/xz/args.c
index 6b388a1e..639c811a 100644
--- a/src/xz/args.c
+++ b/src/xz/args.c
@@ -374,7 +374,7 @@ parse_real(args_info *args, int argc, char **argv)
case OPT_ARM64:
coder_add_filter(LZMA_FILTER_ARM64,
- options_arm64(optarg));
+ options_bcj(optarg));
break;
case OPT_SPARC:
diff --git a/src/xz/message.c b/src/xz/message.c
index 345049e6..d4883709 100644
--- a/src/xz/message.c
+++ b/src/xz/message.c
@@ -1034,9 +1034,16 @@ message_filters_to_str(char buf[FILTERS_STR_SIZE],
}
case LZMA_FILTER_ARM64: {
- const lzma_options_arm64 *opt = filters[i].options;
- my_snprintf(&pos, &left, "arm64=width=%" PRIu32,
- opt->width);
+ // FIXME TODO: Merge with the above generic BCJ list
+ // once the Filter ID is changed to the final value.
+ const lzma_options_bcj *opt = filters[i].options;
+ my_snprintf(&pos, &left, "arm64");
+
+ // Show the start offset only when really needed.
+ if (opt != NULL && opt->start_offset != 0)
+ my_snprintf(&pos, &left, "=start=%" PRIu32,
+ opt->start_offset);
+
break;
}
diff --git a/src/xz/options.c b/src/xz/options.c
index 899bd842..0c1ee221 100644
--- a/src/xz/options.c
+++ b/src/xz/options.c
@@ -224,45 +224,6 @@ options_bcj(const char *str)
}
-///////////
-// ARM64 //
-///////////
-
-enum {
- OPT_WIDTH,
-};
-
-
-static void
-set_arm64(void *options, unsigned key, uint64_t value,
- const char *valuestr lzma_attribute((__unused__)))
-{
- lzma_options_arm64 *opt = options;
- switch (key) {
- case OPT_WIDTH:
- opt->width = value;
- break;
- }
-}
-
-
-extern lzma_options_arm64 *
-options_arm64(const char *str)
-{
- static const option_map opts[] = {
- { "width", NULL, LZMA_ARM64_WIDTH_MIN, LZMA_ARM64_WIDTH_MAX },
- { NULL, NULL, 0, 0 }
- };
-
- lzma_options_arm64 *options = xmalloc(sizeof(lzma_options_arm64));
- options->width = LZMA_ARM64_WIDTH_DEFAULT;
-
- parse_options(str, opts, &set_arm64, options);
-
- return options;
-}
-
-
//////////
// LZMA //
//////////
diff --git a/src/xz/options.h b/src/xz/options.h
index d56adc8a..61ec8d58 100644
--- a/src/xz/options.h
+++ b/src/xz/options.h
@@ -24,13 +24,6 @@ extern lzma_options_delta *options_delta(const char *str);
extern lzma_options_bcj *options_bcj(const char *str);
-/// \brief Parser for ARM64 options
-///
-/// \return Pointer to allocated options structure.
-/// Doesn't return on error.
-extern lzma_options_arm64 *options_arm64(const char *str);
-
-
/// \brief Parser for LZMA options
///
/// \return Pointer to allocated options structure.