diff --git a/README.md b/README.md index c3c8bb3..313ef1a 100644 --- a/README.md +++ b/README.md @@ -1,26 +1,42 @@ +> FOSSBench is ALPHA SOFTWARE, this means that scores reported from it should not be considered perfectly accurate. Across the machines we have tested (roughly 50 at the time of writing this) we have found it to be relatively accurate to what we would expect. This was more of a "for fun" project until someone confirms its validity on a larger scale. + # fossbench -fossbench is a CPU benchmarking tool thats fully open-source. The core idea is to build an open-source alternative to Passmark, Geekbench, and the like by providing our entire database for free to the public. Crowdsourcing the data to ensure its accuracy without any hidden strings being pulled behind the scenes. +fossbench - open source CPU benchmark -## Supported systems +## Synopsis -fossbench builds on Linux, macOS, and Windows for these architectures: +```sh +make +./dist/fossbench-- [--verbose] [--no-system-check] [--upload | --noupload] +``` + +## Description + +fossbench measures CPU and memory performance. Its source code and result +database are public. Uploaded results provide the comparison data. + +Version 0.2 adds a 32-bit integer test and a 12 MiB STREAM triad per thread. It +keeps the old 64-bit test as the lower-weight wide integer test and changes the +score weights. Version 0.1 and 0.2 scores are not comparable. + +## Systems | Architecture | Baseline | |---|---| | ARM64 | ARMv8-A with NEON | -| x86-64 | baseline x86-64 with SSE2 | -| x86 32-bit | baseline i386 with SSE2 | -| PowerPC 32-bit big-endian | scalar fallback with runtime-selected extended instructions | -| PowerPC 64-bit big-endian | PowerPC 970 with AltiVec | +| x86-64 | x86-64 with SSE2 | +| x86 32-bit | i386 with SSE2 | +| PowerPC 32-bit, big-endian | scalar fallback with runtime-selected extensions | +| PowerPC 64-bit, big-endian | PowerPC 970 with AltiVec | -If you find something it doesnt run on, please make a PR with patches if you think you can make it! +Linux, macOS, and Windows are supported. Send a patch if a supported target +fails. -## Building +## Build -You need GNU Make, a C compiler, pthreads, and the system math library. Linux -and macOS builds also need OpenSSL headers and libraries. Windows uses WinHTTP -and does not depend on OpenSSL. +GNU Make, a C compiler, pthreads, and the system math library are required. +Linux and macOS also require OpenSSL. Windows uses WinHTTP. Build for the current machine: @@ -28,17 +44,14 @@ Build for the current machine: make ``` -The binary is written to `dist/fossbench--`. To build it and start a -benchmark immediately, run: +The output path is `dist/fossbench--`. Build and run it with: ```sh make bench ``` -Named targets are available when you want a specific build, these can be found in the Makefile. - -Cross builds use conventional GNU toolchain names by default. Override a -compiler when your toolchain uses a different name: +The Makefile lists named build targets. Cross builds use standard GNU compiler +names. Override them when needed: ```sh make linux-arm64 CC_ARM64=aarch64-linux-gnu-gcc @@ -46,109 +59,112 @@ make linux-ppc32be CC_PPC32BE=powerpc-linux-gnu-gcc make windows-amd64 CC_WINDOWS_AMD64=x86_64-w64-mingw32-gcc ``` -The macOS AMD64 build defaults to macOS 10.5 compatibility. Set -`MACOS_AMD64_MIN` to choose another deployment target. +The macOS AMD64 target defaults to macOS 10.5. Set `MACOS_AMD64_MIN` to change +the deployment target. -## Running a benchmark +## Run -Run the binary directly. The exact name depends on your build: +Run the generated binary: ```sh ./dist/fossbench-linux-amd64 ``` -Useful options: +Options: ```text ---verbose print details for each workload ---no-system-check skip the startup system activity sample ---upload upload the result without prompting +--verbose print each workload +--no-system-check skip the startup activity sample +--upload upload without prompting --noupload do not prompt or upload ``` -Before a normal run, fossbench samples system activity for ten seconds. It +By default, fossbench samples system activity for ten seconds before a run. It reports background CPU use, available memory, process count, and the OS kernel or build. It does not collect process names or command lines. -Result uploads are optional and anonymous unless you provide an API token. To -attach a result to your fossbench.net account, create a benchmark client token -on the site and export it before running the benchmark: +Uploads are optional. They are anonymous without an API token. To attach a +result to a fossbench.net account, create a benchmark client token and export +it: ```sh export FOSSBENCH_TOKEN=fb_your_token_here ./dist/fossbench-linux-amd64 --upload ``` -You can point a build at another server with a compile-time definition: +Set another server at compile time: ```sh make CFLAGS='-O2 -Wall -Wextra -DFB_API_BASE_URL=\"https://bench.example.com\"' ``` -## What it measures +## Workloads | Workload | Measurement | |---|---| -| Integer math | 64-bit multiplication, division, shifts, and bit operations | +| Integer math | 32-bit multiply, divide, shifts, and bit operations | +| Wide integer | 64-bit multiply, divide, shifts, and bit operations | | Floating point | scalar double-precision arithmetic | -| Prime numbers | sieve of Eratosthenes up to 2,000,000 | -| Extended instructions | 128-bit integer and floating point vector work | -| Compression | LZ77 match finding over a generated 4 MiB corpus | -| Encryption | ChaCha20 over a 1 MiB buffer | +| Prime numbers | sieve of Eratosthenes to 2,000,000 | +| Extended instructions | 128-bit integer and floating-point vector work | +| Compression | LZ77 match finding on a generated 4 MiB corpus | +| Encryption | ChaCha20 on a 1 MiB buffer | | Physics | direct-sum gravity for 512 bodies | | Sorting | in-place heapsort of one million 32-bit integers | -| Memory latency | dependent pointer chasing through a private cycle larger than cache | +| Memory latency | dependent pointer chasing through a cycle larger than cache | +| Memory bandwidth | STREAM triad with a 12 MiB working set per thread | ## Scores -A workload score compares its measured rate with a fixed reference rate: +Each workload uses a fixed reference rate: ```text test score = 10000 * measured rate / reference rate ``` -The single-core and multicore totals are weighted geometric means. Both passes -use the same references and weights. +Single-core and multicore totals are weighted geometric means. Both use the +same references and weights. | Workload | Weight | |---|---:| -| Integer math | 20% | -| Memory latency | 16% | -| Compression | 14% | -| Sorting | 12% | -| Extended instructions | 11% | -| Floating point | 9% | +| Integer math | 10% | +| Wide integer | 3% | +| Floating point | 10% | +| Prime numbers | 5% | +| Extended instructions | 16% | +| Compression | 12% | | Encryption | 8% | -| Prime numbers | 6% | -| Physics | 4% | +| Physics | 3% | +| Sorting | 8% | +| Memory latency | 10% | +| Memory bandwidth | 15% | -The benchmark profile lives in `src/app/benchmark.c`. Changing its reference -rates, weights, workload sizes, calibration time, or repeat count makes scores -incompatible with the default build. +The benchmark profile is in `src/app/benchmark.c`. Changing its reference +rates, weights, workload sizes, calibration time, or repeat count makes its +scores incompatible with the default build. -Memory latency is printed in nanoseconds per access, though scoring uses the -underlying pointer-chase throughput. Memory placement and background operating -system work can move this result between runs. +Memory latency is shown in nanoseconds per access. Its score uses pointer-chase +throughput. Memory placement and background system work affect the result. ## Tests -The correctness suite compares the kernels with C implementations, known -answers, or invariants. It covers the RFC 8439 ChaCha20 vector, prime counts, -sorting, physics momentum, pointer chasing, deterministic output, and concurrent -execution. +Run the correctness suite: ```sh make test ``` -The command exits with a nonzero status when a check fails. +It checks kernels against C implementations, known answers, or invariants. It +covers ChaCha20 RFC 8439, prime counts, sorting, physics momentum, pointer +chasing, deterministic output, and concurrent execution. Failure returns a +nonzero status. -## Repository layout +## Files ```text -src/main.c command-line parsing and entrypoint -src/app/benchmark.c workload setup, timing, scoring, and run flow -src/app/benchmark.h function used by main.c +src/main.c option parsing and entry point +src/app/benchmark.c workloads, timing, scoring, and run flow +src/app/benchmark.h interface used by main.c src/app/upload.c API payload and network transport src/kernels/fossbench-arm64.S ARM64 kernels src/kernels/fossbench-amd64.S x86-64 kernels diff --git a/src/app/benchmark.c b/src/app/benchmark.c index 0044d8f..2e482a1 100644 --- a/src/app/benchmark.c +++ b/src/app/benchmark.c @@ -16,8 +16,10 @@ #endif #if !defined(_WIN32) -# include # include +#endif +#if !defined(_WIN32) && !defined(FB_NO_UPLOAD) +# include # include # include # include @@ -38,7 +40,7 @@ #ifndef FB_API_BASE_URL # define FB_API_BASE_URL "https://fossbench.net" #endif -#define FB_VERSION "0.1.6" +#define FB_VERSION "0.2.0" /* Names used in the header. */ @@ -142,6 +144,7 @@ extern uint64_t fb_chase(void **ptrs, uint64_t steps); #define SIMD_BUF 256 /* Small SIMD buffer. */ #define NBODY_N 512 /* Number of physics bodies. */ #define SORT_N (1u << 20) /* Number of values to sort. */ +#define STREAM_N (1u << 20) /* 12 MiB triad working set. */ /* Use less memory on 32-bit PowerPC. */ #if defined(__powerpc__) && !defined(__powerpc64__) # define CHASE_NODES (1u << 19) /* Smaller pointer loop. */ @@ -163,6 +166,7 @@ extern uint64_t fb_chase(void **ptrs, uint64_t steps); /* Rates from the reference machine. */ #define FB_REF_INT 3086.0 /* Reference rate. */ +#define FB_REF_INT32 3086.0 /* Common 32-bit integer reference. */ #define FB_REF_FP 1682.0 /* Reference rate. */ #define FB_REF_PRIMES 812.0 /* Reference rate. */ #define FB_REF_SIMD 6576.0 /* Reference rate. */ @@ -171,17 +175,20 @@ extern uint64_t fb_chase(void **ptrs, uint64_t steps); #define FB_REF_PHYSICS 631.0 /* Reference rate. */ #define FB_REF_SORT 363.0 /* Reference rate. */ #define FB_REF_CHASE 79.0 /* Memory test reference. */ +#define FB_REF_STREAM 3200.0 /* STREAM triad reference rate. */ /* How much each test counts. */ -#define FB_WEIGHT_INT 20.0 /* Score weight. */ -#define FB_WEIGHT_CHASE 16.0 /* Score weight. */ -#define FB_WEIGHT_COMPRESS 14.0 /* Score weight. */ -#define FB_WEIGHT_SORT 12.0 /* Score weight. */ -#define FB_WEIGHT_SIMD 11.0 /* Score weight. */ -#define FB_WEIGHT_FP 9.0 /* Score weight. */ +#define FB_WEIGHT_INT 3.0 /* Wide integer mix. */ +#define FB_WEIGHT_INT32 10.0 /* Common native-width integer work. */ +#define FB_WEIGHT_CHASE 10.0 /* Random-access latency. */ +#define FB_WEIGHT_STREAM 15.0 /* Sustained memory bandwidth. */ +#define FB_WEIGHT_COMPRESS 12.0 /* Score weight. */ +#define FB_WEIGHT_SORT 8.0 /* Score weight. */ +#define FB_WEIGHT_SIMD 16.0 /* Vector and packed arithmetic. */ +#define FB_WEIGHT_FP 10.0 /* Score weight. */ #define FB_WEIGHT_CRYPTO 8.0 /* Score weight. */ -#define FB_WEIGHT_PRIMES 6.0 /* Score weight. */ -#define FB_WEIGHT_PHYSICS 4.0 /* Score weight. */ +#define FB_WEIGHT_PRIMES 5.0 /* Score weight. */ +#define FB_WEIGHT_PHYSICS 3.0 /* Divide/square-root-heavy. */ /* Simple repeatable random numbers. */ @@ -330,6 +337,7 @@ struct workspace { double *bodies; /* n-body integration buffer. */ uint32_t *sort_work; /* the buffer we actually sort. */ void **chase; /* private 16 MiB pointer-chase cycle. */ + float *stream_a, *stream_b, *stream_c; }; static long g_ncores = 1; /* active online cores. */ @@ -640,10 +648,18 @@ static void setup(void) w->bodies = xalloc(NBODY_N * 8 * sizeof(double)); w->sort_work = xalloc(SORT_N * sizeof(uint32_t)); w->chase = xalloc(CHASE_NODES * sizeof(void *)); + w->stream_a = xalloc(STREAM_N * sizeof(float)); + w->stream_b = xalloc(STREAM_N * sizeof(float)); + w->stream_c = xalloc(STREAM_N * sizeof(float)); memcpy(w->cipher_buf, g_cipher_src, CIPHER_LEN); memcpy(w->simd_buf, g_simd_src, SIMD_BUF); build_chase(w->chase, CHASE_NODES); + for (i = 0; i < STREAM_N; i++) { + w->stream_a[i] = (float)(i & 1023) * (1.0f / 1024.0f); + w->stream_b[i] = (float)((i * 17) & 1023) * (1.0f / 1024.0f); + w->stream_c[i] = 0.0f; + } } } @@ -657,6 +673,7 @@ static void teardown(void) xfree(w->sieve); xfree(w->ht); xfree(w->cipher_buf); xfree(w->simd_buf); xfree(w->bodies); xfree(w->sort_work); xfree(w->chase); + xfree(w->stream_a); xfree(w->stream_b); xfree(w->stream_c); } xfree(g_ws); @@ -685,6 +702,25 @@ static uint64_t run_int(uint64_t n, struct workspace *ws) (void)ws; return fb_int_math(n * 100000); } + +static uint64_t run_int32(uint64_t n, struct workspace *ws) +{ + uint32_t a = 0x9e3779b9u, b = 0xbf58476du; + uint32_t c = 0x94d049bbu, d = 0x2545f491u; + uint64_t i, iters = n * 100000; + (void)ws; + for (i = 0; i < iters; i++) { + a = a * 0xdeadbeefu + b; + b = b * 0xdeadbeefu + c; + c = c * 0x9e3779b1u + d; + d = d * 0x9e3779b1u + a; + a ^= (c >> 7) | (c << 25); + b ^= (d >> 11) | (d << 21); + c ^= (a >> 17) | (a << 15); + d ^= (b >> 23) | (b << 9); + } + return (uint64_t)(a ^ b ^ c ^ d); +} static uint64_t run_fp(uint64_t n, struct workspace *ws) { (void)ws; @@ -735,8 +771,31 @@ static uint64_t run_chase(uint64_t n, struct workspace *ws) return fb_chase(ws->chase, n * 1000000); } +static uint64_t run_stream(uint64_t n, struct workspace *ws) +{ + uint64_t pass, checksum = 0; + const float scale = 1.0009765625f; + for (pass = 0; pass < n; pass++) { + size_t i; + float *restrict a = ws->stream_a; + float *restrict b = ws->stream_b; + float *restrict c = ws->stream_c; + for (i = 0; i < STREAM_N; i++) + c[i] = a[i] + scale * b[i]; + } + { + uint32_t bits; + memcpy(&bits, &ws->stream_c[(n * 104729u) & (STREAM_N - 1)], sizeof bits); + checksum = bits; + } + return checksum; +} + static const struct test tests[] = { - { "Integer Math", D_INT, + { "Native Integer Math", "common 32-bit multiply/add/rotate mix", + run_int32, 20, 100000.0 * 16, "Mops/s", + FB_REF_INT32, FB_WEIGHT_INT32 }, + { "Wide Integer Math", D_INT, run_int, 20, 100000.0 * 24, "Mops/s", FB_REF_INT, FB_WEIGHT_INT }, { "Floating Point Math", D_FP, @@ -763,6 +822,9 @@ static const struct test tests[] = { { "Memory Latency", CHASE_DETAIL, run_chase, 1, 1000000.0, "ns/access", FB_REF_CHASE, FB_WEIGHT_CHASE }, + { "Memory Bandwidth", "STREAM triad, 12 MiB working set per thread", + run_stream, 16, (double)STREAM_N * 12.0, "MB/s", + FB_REF_STREAM, FB_WEIGHT_STREAM }, }; #define NTESTS (sizeof(tests) / sizeof(tests[0])) @@ -892,7 +954,9 @@ static double display_metric(const struct test *t, const struct result *r) return r->rate; } -#include "upload.c" +#if !defined(FB_NO_UPLOAD) +# include "upload.c" +#endif /* Print the results. */ static void print_header(const struct system_info *info) @@ -1029,9 +1093,14 @@ int fossbench_run(int verbose, int upload_mode, int system_check) printf(" Result was not uploaded.\n"); } - if (do_upload) + if (do_upload) { +#if defined(FB_NO_UPLOAD) + fprintf(stderr, " Upload support is disabled in this build.\n"); +#else upload_results(&system_info, multicore_score, singlecore_score, multi, single, duration_ms, &background, token); +#endif + } } return 0; } diff --git a/src/kernels/fossbench-ppc32be.S b/src/kernels/fossbench-ppc32be.S index 46dc965..08f89dd 100644 --- a/src/kernels/fossbench-ppc32be.S +++ b/src/kernels/fossbench-ppc32be.S @@ -1,8 +1,5 @@ -/* fossbench-ppc32be.S - 32-bit big-endian PowerPC benchmark kernels. - * SysV PPC32 ABI. Includes scalar kernels and guarded paired-single, - * AltiVec, and VSX SIMD implementations selected through Linux HWCAP. */ .file "fossbench-ppc32be.S" - .machine ppc + .machine "7450" .machine altivec .section ".text" .align 2 @@ -14,158 +11,155 @@ fb_int_math: .cfi_def_cfa_offset 64 or. 9,3,4 mflr 0 - stw 29,52(1) + stw 22,24(1) .cfi_register 65, 0 - .cfi_offset 29, -12 - mr 29,3 - stw 31,60(1) - .cfi_offset 31, -4 - mr 31,4 + .cfi_offset 22, -40 + mr 22,3 + stw 25,36(1) + .cfi_offset 25, -28 + mr 25,4 stw 0,68(1) .cfi_offset 65, 4 beq- 0,.L1 - stw 20,16(1) - .cfi_offset 20, -48 - lis 10,0x4f6c - lis 9,0x94d0 - stw 24,32(1) - .cfi_offset 24, -32 - lis 4,0x1331 - lis 8,0xbf58 - stw 28,48(1) - .cfi_offset 28, -16 - lis 7,0x1ce4 - lis 28,0x2545 - lis 12,0x9e37 - lis 3,0x7f4a stw 21,20(1) .cfi_offset 21, -44 - stw 22,24(1) - .cfi_offset 22, -40 - ori 28,28,0xf491 - ori 21,8,0x476d + lis 9,0x94d0 + lis 4,0x1331 + stw 24,32(1) + .cfi_offset 24, -32 + lis 8,0xbf58 + lis 24,0x2545 + stw 28,48(1) + .cfi_offset 28, -16 + lis 10,0x1ce4 + lis 28,0x4f6c + lis 11,0x9e37 + lis 7,0x7f4a stw 23,28(1) .cfi_offset 23, -36 - ori 22,3,0x7c15 - ori 23,12,0x79b9 - stw 25,36(1) - .cfi_offset 25, -28 - ori 25,9,0x49bb stw 26,40(1) .cfi_offset 26, -24 - ori 26,4,0x11eb + ori 24,24,0xf491 + ori 28,28,0xdd1d stw 27,44(1) .cfi_offset 27, -20 - ori 27,10,0xdd1d - ori 10,7,0xe5b9 + ori 26,9,0x49bb + ori 10,10,0xe5b9 + stw 29,52(1) + .cfi_offset 29, -12 + ori 23,11,0x79b9 + ori 29,4,0x11eb + stw 31,60(1) + .cfi_offset 31, -4 + ori 27,7,0x7c15 + ori 31,8,0x476d .L4: lis 9,0xdead lis 6,0xdead - ori 9,9,0xbeef li 5,0 - mulhwu 4,22,9 + ori 9,9,0xbeef ori 6,6,0xbeef - mullw 12,23,9 - mullw 3,22,9 - add 12,12,4 + mulhwu 4,27,9 + mullw 11,23,9 + mullw 7,27,9 + mullw 12,31,9 + add 11,11,4 mulhwu 4,10,9 - addc 3,3,10 + addc 7,7,10 + adde 11,11,31 mullw 10,10,9 - adde 24,12,21 - mullw 7,21,9 - mulhwu 23,26,9 - addc 12,10,26 - mullw 11,25,9 - add 7,7,4 - adde 25,7,25 - mullw 0,26,9 - mulhwu 10,27,9 - add 11,11,23 - mullw 8,28,9 - addc 0,0,27 - adde 28,11,28 - srwi 7,0,29 - mullw 9,27,9 - slwi 11,28,3 - srwi 23,28,29 - add 11,11,7 - xor 23,23,24 - add 8,8,10 - xor 22,11,3 - srwi 27,23,31 - slwi 10,22,1 - addc 9,9,3 - srwi 3,22,31 - adde 24,8,24 - srwi 7,9,15 - slwi 8,24,17 - slwi 20,9,17 - add 7,7,8 - slwi 8,23,1 - xor 21,7,25 - xor 20,20,12 - add 8,8,3 - add 10,10,27 - xor 25,10,28 - srwi 7,20,7 - xor 26,8,0 - slwi 10,21,25 - add 10,10,7 - srwi 28,21,7 - mr 3,25 - mr 4,26 - xor 27,10,9 - xor 28,28,24 + mulhwu 0,29,9 + add 12,12,4 + mullw 3,26,9 + addc 10,10,29 + adde 12,12,26 + mullw 4,29,9 + mullw 8,24,9 + add 3,3,0 + addc 4,4,28 + mulhwu 0,28,9 + adde 3,3,24 + srwi 31,4,29 + mullw 9,28,9 + slwi 27,3,3 + srwi 23,3,29 + add 27,27,31 + xor 23,23,11 + xor 27,27,7 + add 8,8,0 + slwi 0,23,1 + srwi 31,27,31 + srwi 29,23,31 + slwi 26,27,1 + addc 9,9,7 + add 0,0,31 + add 26,26,29 + adde 8,8,11 + srwi 31,9,15 + slwi 21,9,17 + slwi 11,8,17 + xor 21,21,10 + xor 29,0,4 + add 31,31,11 + srwi 10,21,7 + xor 26,26,3 + xor 31,31,12 + mr 3,26 + mr 4,29 + slwi 28,31,25 + srwi 24,31,7 + add 28,28,10 + xor 24,24,8 + xor 28,28,9 bl __udivdi3@plt lis 6,0xdead - addc 22,4,22 - mr 12,3 - mr 4,27 - mr 3,28 + mr 10,4 + mr 11,3 + mr 4,28 + addc 27,10,27 + mr 3,24 li 5,0 ori 6,6,0xbeef - adde 23,12,23 + adde 23,11,23 bl __udivdi3@plt - addc 10,4,20 - adde 21,3,21 - addic 31,31,-1 - addme 29,29 - or. 9,29,31 + addc 10,4,21 + adde 31,3,31 + addic 25,25,-1 + addme 22,22 + or. 9,22,25 bne+ 0,.L4 - xor 3,25,28 - xor 4,26,27 - lwz 20,16(1) - .cfi_restore 20 - xor 3,3,23 - xor 4,4,22 - lwz 23,28(1) - .cfi_restore 23 - xor 3,3,21 - lwz 22,24(1) - .cfi_restore 22 - xor 4,4,10 + xor 3,26,24 + xor 4,29,28 lwz 21,20(1) .cfi_restore 21 + xor 3,3,23 + xor 4,4,27 + lwz 23,28(1) + .cfi_restore 23 + xor 3,3,31 lwz 24,32(1) .cfi_restore 24 - lwz 25,36(1) - .cfi_restore 25 + xor 4,4,10 lwz 26,40(1) .cfi_restore 26 lwz 27,44(1) .cfi_restore 27 lwz 28,48(1) .cfi_restore 28 + lwz 29,52(1) + .cfi_restore 29 + lwz 31,60(1) + .cfi_restore 31 .L1: lwz 0,68(1) - lwz 29,52(1) - lwz 31,60(1) + lwz 22,24(1) + lwz 25,36(1) + addi 1,1,64 + .cfi_restore 25 + .cfi_restore 22 + .cfi_def_cfa_offset 0 mtlr 0 .cfi_restore 65 - addi 1,1,64 - .cfi_restore 31 - .cfi_restore 29 - .cfi_def_cfa_offset 0 blr .cfi_endproc .size fb_int_math, .-fb_int_math @@ -184,6 +178,10 @@ fb_int_math: .long .LC13 .LC17: .long .LC16 +.LC20: + .long .LC19 +.LC23: + .long .LC22 .section ".text" .align 2 .globl fb_fp_math @@ -192,163 +190,161 @@ fb_int_math: .type fb_fp_math, @function fb_fp_math: .cfi_startproc - stwu 1,-128(1) - .cfi_def_cfa_offset 128 + stwu 1,-112(1) + .cfi_def_cfa_offset 112 mflr 0 .cfi_register 65, 0 bcl 20,31,.LCF1 .LCF1: or. 9,3,4 - stw 24,32(1) - .cfi_offset 24, -96 - mr 24,4 - stw 28,48(1) - .cfi_offset 28, -80 - mr 28,3 - stw 30,56(1) - .cfi_offset 30, -72 + stw 27,20(1) + .cfi_offset 27, -92 + mr 27,3 + stw 30,32(1) + .cfi_offset 30, -80 mflr 30 - stw 0,132(1) + stw 31,36(1) + .cfi_offset 31, -76 + mr 31,4 + stw 0,116(1) .cfi_offset 65, 4 lwz 0,.LCL1-.LCF1(30) add 30,0,30 beq- 0,.L9 - stw 27,44(1) - .cfi_offset 27, -84 - lwz 27,.LC2-.LCTOC1(30) - stfd 29,104(1) + stw 29,28(1) + .cfi_offset 29, -84 + lwz 29,.LC20-.LCTOC1(30) + stfd 29,88(1) .cfi_offset 61, -24 - lfs 29,0(27) - lwz 10,.LC5-.LCTOC1(30) - lwz 9,.LC8-.LCTOC1(30) - stw 23,28(1) - .cfi_offset 23, -100 - stw 25,36(1) - .cfi_offset 25, -92 - stw 26,40(1) - .cfi_offset 26, -88 - stw 29,52(1) - .cfi_offset 29, -76 - li 29,0 - stw 31,60(1) - .cfi_offset 31, -68 - li 31,0 - stfd 26,80(1) - .cfi_offset 58, -48 - fmr 26,29 - stfd 27,88(1) - .cfi_offset 59, -40 - stfd 28,96(1) - .cfi_offset 60, -32 - stfd 24,64(1) - .cfi_offset 56, -64 - stfd 25,72(1) - .cfi_offset 57, -56 - stfd 30,112(1) + lfs 29,0(29) + lwz 5,.LC2-.LCTOC1(30) + lwz 6,.LC5-.LCTOC1(30) + lwz 7,.LC8-.LCTOC1(30) + lwz 8,.LC11-.LCTOC1(30) + lwz 10,.LC14-.LCTOC1(30) + lwz 9,.LC17-.LCTOC1(30) + stfd 30,96(1) .cfi_offset 62, -16 - stfd 31,120(1) + fmr 30,29 + stfd 23,40(1) + .cfi_offset 55, -72 + stfd 24,48(1) + .cfi_offset 56, -64 + stfd 28,80(1) + .cfi_offset 60, -32 + stfd 31,104(1) .cfi_offset 63, -8 - lfs 27,0(10) - lfs 28,0(9) - lwz 25,.LC11-.LCTOC1(30) - lwz 26,.LC14-.LCTOC1(30) - lwz 23,.LC17-.LCTOC1(30) - b .L14 -.L16: - lfs 24,0(25) - lfs 26,0(26) - lfs 25,0(27) - fmul 29,29,24 - fmul 30,30,24 - fmr 2,25 - fadd 1,29,26 - fmul 31,31,24 - bl fmin@plt - fmr 2,25 - fmr 29,1 - fadd 1,30,26 - bl fmin@plt - fmr 2,25 - fmr 27,1 - fadd 1,31,26 - bl fmin@plt - fmr 26,1 -.L14: + lfs 28,0(5) + lfs 31,0(6) + lfs 0,0(7) + lfs 12,0(8) + lfs 23,0(10) + lfs 24,0(9) + stw 28,24(1) + .cfi_offset 28, -88 + stfd 25,56(1) + .cfi_offset 57, -56 + stfd 26,64(1) + .cfi_offset 58, -48 + stfd 27,72(1) + .cfi_offset 59, -40 + lwz 28,.LC23-.LCTOC1(30) +.L22: + fmul 12,12,23 + fmul 0,0,23 + fmul 31,31,23 + fmul 28,28,23 + fmr 27,30 + fadd 12,12,24 + fadd 0,0,24 + fadd 25,31,24 + fadd 28,28,24 + fcmpu 0,12,30 + bnl- 0,.L13 + fmr 27,12 +.L13: + fcmpu 0,0,29 + fmr 26,30 + bnl- 0,.L15 + fmr 26,0 +.L15: fmr 1,27 bl sqrt@plt - lfs 0,0(25) - lfs 12,0(26) - fadd 29,1,29 - lfs 2,0(27) - fmul 0,28,0 - fadd 1,0,12 - bl fmin@plt - fmr 30,1 + lfs 31,0(29) + fmr 0,31 + fcmpu 0,25,0 + bnl- 0,.L17 + fmr 31,25 +.L17: + lfs 0,0(29) + fadd 31,31,1 + fmr 12,0 + fmr 25,0 + fcmpu 0,28,12 + bnl- 0,.L19 + fmr 25,28 +.L19: fmr 1,26 bl sqrt@plt - lfs 31,0(23) - fadd 1,30,1 - fmr 2,31 + lfs 11,0(28) + fadd 1,1,25 + fmr 0,11 fabs 1,1 - fadd 30,29,31 - bl fmax@plt - addic 31,31,1 - fadd 0,1,31 - addze 29,29 - fdiv 30,31,30 - cmplw 0,28,29 - fdiv 31,31,0 - fmr 28,1 - fadd 30,30,27 - fadd 31,31,26 - bne+ 0,.L16 - cmplw 0,24,31 - bne+ 0,.L16 - fadd 30,30,31 - lfd 24,64(1) + fcmpu 0,1,0 + bng- 0,.L21 + fmr 11,1 +.L21: + lfs 0,0(28) + addic 31,31,-1 + fmr 28,11 + addme 27,27 + or. 9,27,31 + fadd 12,31,0 + fadd 10,11,0 + fdiv 12,0,12 + fdiv 0,0,10 + fadd 12,12,27 + fadd 0,0,26 + bne+ 0,.L22 + fadd 12,12,0 + lfd 23,40(1) + .cfi_restore 55 + lfd 24,48(1) .cfi_restore 56 - lfd 25,72(1) + lfd 25,56(1) .cfi_restore 57 - lfd 26,80(1) + lfd 26,64(1) .cfi_restore 58 - fadd 30,30,29 - lfd 27,88(1) + lfd 27,72(1) .cfi_restore 59 - lfd 28,96(1) + fadd 1,12,31 + lfd 28,80(1) .cfi_restore 60 - lfd 29,104(1) + lfd 29,88(1) .cfi_restore 61 - fadd 0,30,1 - lfd 31,120(1) - .cfi_restore 63 - lfd 30,112(1) + lfd 30,96(1) .cfi_restore 62 - lwz 23,28(1) - .cfi_restore 23 + lfd 31,104(1) + .cfi_restore 63 + lwz 28,24(1) + .cfi_restore 28 + fadd 0,1,11 + lwz 29,28(1) + .cfi_restore 29 stfd 0,8(1) - lwz 25,36(1) - .cfi_restore 25 - lwz 26,40(1) - .cfi_restore 26 lwz 3,8(1) lwz 4,12(1) - lwz 27,44(1) - .cfi_restore 27 - lwz 29,52(1) - .cfi_restore 29 - lwz 31,60(1) - .cfi_restore 31 .L9: - lwz 0,132(1) - lwz 24,32(1) - lwz 28,48(1) + lwz 0,116(1) + lwz 27,20(1) + lwz 30,32(1) + lwz 31,36(1) mtlr 0 .cfi_restore 65 - lwz 30,56(1) - addi 1,1,128 + addi 1,1,112 + .cfi_restore 31 .cfi_restore 30 - .cfi_restore 28 - .cfi_restore 24 + .cfi_restore 27 .cfi_def_cfa_offset 0 blr .cfi_endproc @@ -376,26 +372,26 @@ fb_primes: mfcr 31 stw 0,68(1) .cfi_offset 65, 4 - beq- 0,.L41 -.L33: + beq- 0,.L53 +.L45: mr 5,29 li 4,0 + mr 3,23 stw 25,36(1) .cfi_offset 25, -28 - mr 3,23 stw 26,40(1) .cfi_offset 26, -24 bl memset@plt addic 25,29,-1 li 9,257 addme 26,28 - sth 9,0(23) srwi 10,25,1 + sth 9,0(23) srwi. 9,26,1 slwi 9,26,31 add 9,9,10 - beq- 0,.L42 -.L34: + beq- 0,.L54 +.L46: stw 24,32(1) .cfi_offset 24, -32 li 31,2 @@ -403,35 +399,35 @@ fb_primes: stw 27,44(1) .cfi_offset 27, -20 li 27,1 -.L37: +.L49: lbzx 9,23,31 cmpwi 0,9,0 - beq- 0,.L43 -.L24: + beq- 0,.L55 +.L36: addic 31,31,1 mr 3,26 + mr 4,25 addze 24,24 mr 6,31 mr 5,24 - mr 4,25 bl __udivdi3@plt cmplw 0,24,3 - bgt- 0,.L40 - bne+ 0,.L37 + bgt- 0,.L52 + bne+ 0,.L49 cmplw 0,31,4 - ble+ 0,.L37 -.L40: + ble+ 0,.L49 +.L52: lwz 24,32(1) .cfi_restore 24 lwz 27,44(1) .cfi_restore 27 -.L30: +.L42: addic 10,29,-2 addi 23,23,1 - addme 28,28 li 3,0 + addme 28,28 li 4,0 -.L32: +.L44: lbzu 9,1(23) cntlzw 9,9 srwi 9,9,5 @@ -440,15 +436,15 @@ fb_primes: addic 10,10,-1 addme 28,28 or. 9,28,10 - bne+ 0,.L32 + bne+ 0,.L44 lwz 0,68(1) lwz 25,36(1) .cfi_restore 25 lwz 26,40(1) .cfi_restore 26 + lwz 23,28(1) mtlr 0 .cfi_restore 65 - lwz 23,28(1) lwz 28,48(1) lwz 29,52(1) lwz 31,60(1) @@ -459,7 +455,7 @@ fb_primes: .cfi_restore 23 .cfi_def_cfa_offset 0 blr -.L43: +.L55: .cfi_def_cfa_offset 64 .cfi_offset 23, -36 .cfi_offset 24, -32 @@ -476,34 +472,34 @@ fb_primes: mullw 9,31,31 add 10,10,8 cmplw 0,28,10 - ble- 0,.L44 -.L36: + ble- 0,.L56 +.L48: addc 8,31,9 stbx 27,23,9 adde 10,24,10 mr 9,8 cmplw 0,28,10 - bgt+ 0,.L36 + bgt+ 0,.L48 cmplw 7,29,8 - bne- 0,.L24 - bgt+ 7,.L36 - b .L24 -.L41: + bne- 0,.L36 + bgt+ 7,.L48 + b .L36 +.L53: .cfi_restore 24 .cfi_restore 25 .cfi_restore 26 .cfi_restore 27 cmplwi 0,4,1 - bgt+ 0,.L33 -.L20: + bgt+ 0,.L45 +.L32: lwz 0,68(1) li 3,0 li 4,0 lwz 23,28(1) lwz 28,48(1) + lwz 29,52(1) mtlr 0 .cfi_restore 65 - lwz 29,52(1) lwz 31,60(1) addi 1,1,64 .cfi_restore 31 @@ -512,7 +508,7 @@ fb_primes: .cfi_restore 23 .cfi_def_cfa_offset 0 blr -.L44: +.L56: .cfi_def_cfa_offset 64 .cfi_offset 23, -36 .cfi_offset 24, -32 @@ -523,50 +519,50 @@ fb_primes: .cfi_offset 29, -12 .cfi_offset 31, -4 .cfi_offset 65, 4 - bne- 0,.L24 + bne- 0,.L36 cmplw 0,29,9 - bgt+ 0,.L36 - b .L24 -.L42: + bgt+ 0,.L48 + b .L36 +.L54: .cfi_restore 24 .cfi_restore 27 cmplwi 0,9,1 - bgt+ 0,.L34 + bgt+ 0,.L46 mtcrf 128,31 - bne- 0,.L30 + bne- 0,.L42 cmplwi 0,29,2 - bne- 0,.L30 + bne- 0,.L42 lwz 25,36(1) .cfi_restore 25 lwz 26,40(1) .cfi_restore 26 - b .L20 + b .L32 .cfi_endproc .size fb_primes, .-fb_primes .section .rodata.str1.4,"aMS",@progbits,1 .align 2 -.LC19: +.LC25: .string "rb" .align 2 -.LC21: +.LC27: .string "/proc/device-tree/compatible" .align 2 -.LC23: +.LC29: .string "/sys/firmware/devicetree/base/compatible" .section ".got2","aw" -.LC18: - .long .LANCHOR0 -.LC20: - .long .LC19 -.LC22: - .long .LC21 .LC24: - .long .LC23 + .long .LANCHOR0 .LC26: - .long fb_simd_ps_kernel -.LC27: - .long fb_simd_vsx_kernel + .long .LC25 .LC28: + .long .LC27 +.LC30: + .long .LC29 +.LC32: + .long fb_simd_ps_kernel +.LC33: + .long fb_simd_vsx_kernel +.LC34: .long fb_simd_altivec_kernel .section ".text" .align 2 @@ -576,8 +572,8 @@ fb_primes: .type fb_simd, @function fb_simd: .cfi_startproc - or. 10,3,4 - mr 8,3 + or. 8,3,4 + mr 10,3 mr 9,4 beqlr- 0 stwu 1,-128(1) @@ -596,57 +592,57 @@ fb_simd: .cfi_offset 65, 4 lwz 0,.LCL3-.LCF3(30) add 30,0,30 - lwz 10,.LC18-.LCTOC1(30) - lwz 7,0(10) + lwz 8,.LC24-.LCTOC1(30) + lwz 7,0(8) cmpw 0,7,7 bne- 0,$+4 isync cmpwi 0,7,0 - beq- 0,.L72 -.L48: - lwz 10,4(10) - cmpwi 0,10,0 - beq- 0,.L73 - mr 3,8 + beq- 0,.L84 +.L60: + lwz 8,4(8) + cmpwi 0,8,0 + beq- 0,.L85 + mr 3,10 mr 4,9 - mtctr 10 + mtctr 8 mr 5,31 bctrl - lwz 10,4(31) - li 8,0 + lwz 8,4(31) + li 10,0 lwz 9,8(31) - lwz 7,0(31) - xor 9,9,10 - lwz 10,12(31) - xor 9,9,7 - lwz 7,16(31) - xor 9,9,10 - lwz 10,20(31) + lwz 6,0(31) + lwz 7,12(31) + xor 9,9,8 + lwz 8,16(31) + xor 9,9,6 + lwz 6,20(31) xor 9,9,7 lwz 7,24(31) - xor 9,9,10 - lwz 10,28(31) + xor 9,9,8 + lwz 8,28(31) + xor 9,9,6 xor 9,9,7 - xor 9,9,10 -.L46: + xor 9,9,8 +.L58: lwz 0,132(1) - mr 3,8 + mr 3,10 mr 4,9 lwz 30,120(1) lwz 31,124(1) - mtlr 0 - .cfi_remember_state - .cfi_restore 65 addi 1,1,128 + .cfi_remember_state .cfi_restore 31 .cfi_restore 30 .cfi_def_cfa_offset 0 + mtlr 0 + .cfi_restore 65 blr -.L72: +.L84: .cfi_restore_state stw 3,80(1) li 3,16 - stw 10,88(1) + stw 8,88(1) stw 28,112(1) .cfi_offset 28, -16 stw 29,116(1) @@ -654,86 +650,84 @@ fb_simd: stw 4,84(1) bl getauxval@plt mr 29,3 - lwz 4,.LC20-.LCTOC1(30) - lwz 3,.LC22-.LCTOC1(30) + lwz 4,.LC26-.LCTOC1(30) + lwz 3,.LC28-.LCTOC1(30) mr 28,4 bl fopen@plt - lwz 8,80(1) + lwz 10,80(1) mr. 6,3 lwz 9,84(1) - lwz 10,88(1) - beq- 0,.L74 -.L49: - addi 3,1,16 + lwz 8,88(1) + beq- 0,.L86 +.L61: li 5,9 - stw 10,92(1) + addi 3,1,16 li 4,1 + stw 8,92(1) stw 9,88(1) - stw 8,84(1) + stw 10,84(1) stw 6,80(1) bl fread@plt cmpwi 0,3,9 lwz 6,80(1) - lwz 8,84(1) + lwz 10,84(1) lwz 9,88(1) - lwz 10,92(1) - beq- 0,.L75 -.L51: + lwz 8,92(1) + beq- 0,.L87 +.L63: mr 3,6 - stw 10,88(1) + stw 8,88(1) stw 9,84(1) - stw 8,80(1) + stw 10,80(1) bl fclose@plt - lwz 10,88(1) + lwz 8,88(1) lwz 9,84(1) - lwz 8,80(1) -.L50: + lwz 10,80(1) +.L62: mr 7,29 andi. 7,7,0x80 - bne- 0,.L76 + bne- 0,.L88 andis. 7,29,0x1000 - beq- 0,.L54 - lwz 7,.LC28-.LCTOC1(30) -.L54: - stw 7,4(10) + beq- 0,.L66 + lwz 7,.LC34-.LCTOC1(30) +.L66: + stw 7,4(8) lwsync li 7,1 - stw 7,0(10) + stw 7,0(8) lwz 28,112(1) .cfi_remember_state .cfi_restore 28 lwz 29,116(1) .cfi_restore 29 - b .L48 -.L75: + b .L60 +.L87: .cfi_restore_state lwz 5,16(1) - lis 7,0x6e69 - ori 7,7,0x6e74 - cmpw 0,5,7 - bne+ 0,.L51 + xoris 7,5,0x6e69 + cmpwi 0,7,28276 + bne 0,.L63 lwz 5,20(1) - lis 7,0x656e - ori 7,7,0x646f - cmpw 0,5,7 - bne+ 0,.L51 + xoris 7,5,0x656e + cmpwi 0,7,25711 + bne 0,.L63 lbz 7,24(1) cmpwi 0,7,44 - bne+ 0,.L51 + bne+ 0,.L63 mr 3,6 - stw 10,88(1) + stw 8,88(1) stw 9,84(1) - stw 8,80(1) + stw 10,80(1) bl fclose@plt - lwz 7,.LC26-.LCTOC1(30) - lwz 8,80(1) + lwz 7,.LC32-.LCTOC1(30) + lwz 10,80(1) lwz 9,84(1) - lwz 10,88(1) - b .L54 -.L76: - lwz 7,.LC27-.LCTOC1(30) - b .L54 -.L73: + lwz 8,88(1) + b .L66 +.L88: + lwz 7,.LC33-.LCTOC1(30) + b .L66 +.L85: .cfi_restore 28 .cfi_restore 29 stw 27,108(1) @@ -742,121 +736,112 @@ fb_simd: .cfi_offset 28, -16 stw 29,116(1) .cfi_offset 29, -12 - lwz 10,0(31) - lwz 0,4(31) - mr 28,10 - lwz 10,8(31) - lwz 11,12(31) - mr 27,10 - lwz 10,20(31) - lwz 3,16(31) - mtlr 10 - lwz 10,24(31) - lwz 12,28(31) - mtctr 10 -.L57: - slwi 10,0,1 - slwi 4,12,3 - add 10,10,0 - add 4,4,12 - add 10,10,28 - mflr 29 - rotlwi 6,10,5 - rlwinm 10,10,7,0,29 - add 10,10,6 - mr 28,6 - slwi 10,10,1 - addic 9,9,-1 - add 12,10,12 - mflr 10 - slwi 6,10,3 - mfctr 10 - slwi 5,11,2 - add 4,4,10 - slwi 10,10,3 - slwi 7,3,1 - add 10,10,29 - add 5,5,11 - addme 8,8 - mtlr 10 - add 7,7,3 - add 5,5,27 - or. 10,8,9 - rotlwi 10,4,11 - slwi 7,7,1 - mtctr 10 - rotlwi 10,5,7 - add 7,7,11 - subf 6,29,6 - slwi 11,27,2 - mr 27,10 - mflr 10 - add 0,11,0 - add 3,6,3 - rotlwi 10,10,10 - rotlwi 12,12,12 - rotlwi 11,7,8 - rotlwi 0,0,6 - rotlwi 3,3,9 - mtlr 10 - bne+ 0,.L57 - mflr 6 - stw 11,28(1) - li 10,16 - vxor 0,0,0 - stw 6,36(1) + lwz 8,0(31) + lwz 7,16(31) + lwz 12,4(31) + mtctr 8 + lwz 8,8(31) + lwz 11,20(31) + mtlr 7 + lwz 4,24(31) + mr 27,8 + lwz 0,28(31) + lwz 8,12(31) +.L69: + slwi 7,12,1 mfctr 6 - li 7,32 - stw 6,40(1) - li 9,64 + slwi 5,0,3 + add 7,7,12 + add 5,5,0 + addic 9,9,-1 + add 7,7,6 mflr 6 - stw 0,20(1) - li 8,0 - stw 27,24(1) - stw 3,32(1) - stw 12,44(1) - stw 28,16(1) - lwz 11,20(1) - lwz 4,28(1) - lvx 1,1,7 - lvx 13,1,10 - lwz 5,32(1) + add 5,5,4 + mulli 3,6,6 + rotlwi 7,7,5 + slwi 4,4,3 + mulli 29,7,10 + slwi 6,8,2 + mtctr 7 + slwi 7,11,3 + add 28,4,11 + add 6,6,8 + subf 7,11,7 + mflr 4 + addme 10,10 + add 8,3,8 + add 6,6,27 + slwi 3,27,2 + add 7,7,4 + or. 11,10,9 + add 0,29,0 + add 12,3,12 + rotlwi 6,6,7 + rotlwi 7,7,9 + rotlwi 0,0,12 + rotlwi 4,5,11 + mr 27,6 + rotlwi 12,12,6 + rotlwi 11,28,10 + mtlr 7 + rotlwi 8,8,8 + bne+ 0,.L69 + stw 8,28(1) + mfctr 9 + mflr 8 + stw 9,16(1) + li 7,16 + li 9,32 + stw 6,24(1) + vxor 0,0,0 + li 3,64 + stw 8,32(1) + mfctr 8 + li 10,0 + stw 11,36(1) + stw 4,40(1) + stw 12,20(1) + stw 0,44(1) + lwz 5,28(1) + stw 8,0(31) + lvx 1,1,9 + mflr 9 + lvx 13,1,7 + stw 12,4(31) + stw 27,8(31) vxor 13,13,1 + lwz 6,36(1) vsldoi 1,13,0,8 + lwz 7,40(1) vxor 1,1,13 vsldoi 0,1,0,4 vxor 0,0,1 - stvx 0,1,9 - stw 28,0(31) - lwz 7,40(1) - lwz 10,44(1) + stvx 0,1,3 + stw 5,12(31) + stw 9,16(31) lwz 9,64(1) - stw 11,4(31) - stw 27,8(31) - stw 4,12(31) - stw 5,16(31) stw 6,20(31) stw 7,24(31) - stw 10,28(31) + stw 0,28(31) lwz 27,108(1) .cfi_restore 27 lwz 28,112(1) .cfi_restore 28 lwz 29,116(1) .cfi_restore 29 - b .L46 -.L74: + b .L58 +.L86: .cfi_offset 28, -16 .cfi_offset 29, -12 - lwz 3,.LC24-.LCTOC1(30) + lwz 3,.LC30-.LCTOC1(30) mr 4,28 bl fopen@plt - lwz 8,80(1) + lwz 10,80(1) mr. 6,3 lwz 9,84(1) - lwz 10,88(1) - bne+ 0,.L49 - b .L50 + lwz 8,88(1) + bne+ 0,.L61 + b .L62 .cfi_endproc .size fb_simd, .-fb_simd .align 2 @@ -892,8 +877,8 @@ fb_compress: addic 9,27,1 mtlr 9 addze 23,28 - beq- 0,.L108 -.L98: + beq- 0,.L120 +.L110: addic 9,27,-12 stw 19,28(1) .cfi_offset 19, -52 @@ -920,93 +905,93 @@ fb_compress: li 24,0 stw 22,40(1) .cfi_offset 22, -40 - b .L105 -.L99: + b .L117 +.L111: subfc 6,0,9 subfe 10,24,8 cmpwi 0,10,0 - bne- 0,.L80 + bne- 0,.L92 cmplwi 0,6,65535 - bgt- 0,.L80 + bgt- 0,.L92 lwzx 10,31,0 cmpw 0,10,11 - beq- 0,.L109 -.L80: + beq- 0,.L121 +.L92: addic 9,9,1 addze 8,8 cmplw 0,25,8 - ble- 0,.L110 -.L105: + ble- 0,.L122 +.L117: lwzx 11,31,9 cmplwi 0,8,0 mullw 10,11,26 rlwinm 10,10,18,14,29 lwzx 0,29,10 stwx 9,29,10 - bgt+ 0,.L99 - bne- 0,.L80 + bgt+ 0,.L111 + bne- 0,.L92 cmplw 0,9,0 - bgt+ 0,.L99 - b .L80 -.L109: + bgt+ 0,.L111 + b .L92 +.L121: addic 20,9,4 addze 6,8 cmplw 0,28,6 - ble- 0,.L111 -.L97: + ble- 0,.L123 +.L109: li 12,0 li 10,4 - b .L104 -.L90: + b .L116 +.L102: addc 20,5,9 mr 10,5 - adde 6,21,8 mr 12,21 + adde 6,21,8 cmplw 0,28,6 - ble- 0,.L112 -.L104: + ble- 0,.L124 +.L116: add 11,31,10 addic 5,10,1 lbzx 22,11,9 addze 21,12 lbzx 11,11,0 cmpw 0,22,11 - beq+ 0,.L90 + beq+ 0,.L102 cmpwi 0,12,0 li 11,1 - beq- 0,.L113 -.L91: + beq- 0,.L125 +.L103: li 5,0 -.L85: +.L97: subfc 4,4,9 mfctr 10 + li 9,1 subfe 8,10,8 addic 7,7,3 cmpwi 0,8,0 addze 3,3 addc 7,7,4 - li 9,1 adde 3,3,8 - bne- 0,.L93 + bne- 0,.L105 subfic 4,4,14 subfe 9,9,9 rlwinm 9,9,0,31,31 -.L93: +.L105: mr 8,6 addc 7,7,9 + mtctr 6 cmplw 0,25,8 addze 3,3 addc 7,7,11 - mtctr 6 mr 4,20 adde 3,3,5 mr 9,20 - bgt+ 0,.L105 -.L110: - bne- 0,.L103 + bgt+ 0,.L117 +.L122: + bne- 0,.L115 cmplw 0,19,9 - bgt+ 0,.L105 -.L103: + bgt+ 0,.L117 +.L115: mflr 9 lwz 0,84(1) addc 7,7,9 @@ -1046,7 +1031,7 @@ fb_compress: .cfi_restore 23 .cfi_def_cfa_offset 0 blr -.L108: +.L120: .cfi_def_cfa_offset 80 .cfi_offset 23, -36 .cfi_offset 27, -20 @@ -1055,15 +1040,15 @@ fb_compress: .cfi_offset 31, -4 .cfi_offset 65, 4 cmplwi 0,27,15 - bgt+ 0,.L98 + bgt+ 0,.L110 lwz 0,84(1) mr 3,23 mflr 4 lwz 23,44(1) lwz 27,60(1) + lwz 28,64(1) mtlr 0 .cfi_restore 65 - lwz 28,64(1) lwz 29,68(1) lwz 31,76(1) addi 1,1,80 @@ -1074,7 +1059,7 @@ fb_compress: .cfi_restore 23 .cfi_def_cfa_offset 0 blr -.L112: +.L124: .cfi_def_cfa_offset 80 .cfi_offset 19, -52 .cfi_offset 20, -48 @@ -1090,50 +1075,50 @@ fb_compress: .cfi_offset 31, -4 .cfi_offset 65, 4 cmplw 7,27,20 - bne- 0,.L102 - bgt+ 7,.L104 -.L102: + bne- 0,.L114 + bgt+ 7,.L116 +.L114: cmpwi 0,21,0 li 11,1 - bne- 0,.L91 + bne- 0,.L103 subfic 5,5,18 subfe 10,10,10 neg 10,10 neg 10,10 and 11,11,10 - b .L91 -.L113: + b .L103 +.L125: subfic 10,10,18 subfe 10,10,10 neg 10,10 neg 10,10 and 11,11,10 - b .L91 -.L111: - bne- 0,.L101 + b .L103 +.L123: + bne- 0,.L113 cmplw 0,27,20 - bgt+ 0,.L97 -.L101: + bgt+ 0,.L109 +.L113: li 5,0 li 11,0 - b .L85 + b .L97 .cfi_endproc .size fb_compress, .-fb_compress .section ".got2","aw" -.LC29: - .long .LANCHOR1 -.LC31: - .long .LC30 -.LC33: - .long .LC32 .LC35: - .long .LC34 + .long .LANCHOR1 .LC37: .long .LC36 .LC39: .long .LC38 .LC41: .long .LC40 +.LC43: + .long .LC42 +.LC45: + .long .LC44 +.LC47: + .long .LC46 .section ".text" .align 2 .globl fb_chacha20 @@ -1142,465 +1127,501 @@ fb_compress: .type fb_chacha20, @function fb_chacha20: .cfi_startproc - stwu 1,-512(1) - .cfi_def_cfa_offset 512 + stwu 1,-608(1) + .cfi_def_cfa_offset 608 mflr 0 - rlwinm 4,6,0,0,25 .cfi_register 65, 0 bcl 20,31,.LCF5 .LCF5: + rlwinm 4,6,0,0,25 or. 8,5,4 - stw 0,516(1) + stw 0,612(1) .cfi_offset 65, 4 - li 0,336 - stw 24,480(1) - .cfi_offset 24, -32 - mr 24,3 - mr 3,5 - stw 30,504(1) - stvx 26,1,0 li 0,352 + stw 25,580(1) + .cfi_offset 25, -28 + mr 25,3 + mr 3,5 + stw 30,600(1) .cfi_offset 30, -8 - .cfi_offset 103, -176 mflr 30 - stvx 27,1,0 + stvx 21,1,0 li 0,368 - stvx 28,1,0 + stvx 22,1,0 li 0,384 - stvx 29,1,0 + stvx 23,1,0 li 0,400 - stvx 30,1,0 + stvx 24,1,0 li 0,416 + stvx 25,1,0 + li 0,432 + stvx 26,1,0 + li 0,448 + stvx 27,1,0 + li 0,464 + stvx 28,1,0 + li 0,480 + stvx 29,1,0 + li 0,496 + stvx 30,1,0 + li 0,512 stvx 31,1,0 lwz 0,.LCL5-.LCF5(30) add 30,0,30 + .cfi_offset 98, -256 + .cfi_offset 99, -240 + .cfi_offset 100, -224 + .cfi_offset 101, -208 + .cfi_offset 102, -192 + .cfi_offset 103, -176 .cfi_offset 104, -160 .cfi_offset 105, -144 .cfi_offset 106, -128 .cfi_offset 107, -112 .cfi_offset 108, -96 - beq- 0,.L114 - stw 28,496(1) - .cfi_offset 28, -16 - mr 28,9 - or. 9,28,10 - stw 16,448(1) + beq- 0,.L126 + stw 26,584(1) + .cfi_offset 26, -24 + mr 26,9 + or. 9,26,10 + stw 16,544(1) .cfi_offset 16, -64 mr 16,10 - beq- 0,.L125 - addic 9,4,-1 - stw 17,452(1) + beq- 0,.L137 + stw 29,596(1) + .cfi_offset 29, -12 + li 10,16 + li 0,80 + lwz 29,.LC35-.LCTOC1(30) + addi 11,7,15 + addi 3,7,31 + stw 17,548(1) .cfi_offset 17, -60 - addi 8,24,64 - vxor 30,30,30 - addme 10,5 - stw 19,460(1) + addic 9,4,-1 + addi 8,25,64 + stw 19,556(1) .cfi_offset 19, -52 srwi 9,9,6 - stw 20,464(1) + li 19,0 + lvx 1,29,10 + addme 10,5 + slwi 17,9,6 + stw 20,560(1) .cfi_offset 20, -48 slwi 10,10,26 - slwi 4,9,6 - stw 21,468(1) + li 5,96 + stw 21,564(1) .cfi_offset 21, -44 add 9,10,9 - li 10,16 - stw 22,472(1) - .cfi_offset 22, -40 - li 5,80 - addi 17,9,1 - stw 26,488(1) - .cfi_offset 26, -24 - add 9,8,4 - li 26,0 - stw 27,492(1) - .cfi_offset 27, -20 - li 19,0 - li 27,0 - stw 29,500(1) - .cfi_offset 29, -12 - li 22,16 - li 29,0 - stw 14,440(1) - .cfi_offset 14, -72 - li 21,32 - li 20,48 - stw 15,444(1) - .cfi_offset 15, -68 - vspltish 31,8 - stw 18,456(1) - .cfi_offset 18, -56 - stw 23,476(1) - .cfi_offset 23, -36 - stw 25,484(1) - .cfi_offset 25, -28 - stw 31,508(1) - .cfi_offset 31, -4 - lwz 3,.LC29-.LCTOC1(30) - lwz 6,.LC31-.LCTOC1(30) - lvx 1,3,10 - addi 10,7,15 - stvx 1,1,5 - addi 3,7,31 - lvx 0,0,6 - neg 6,7 - lvx 29,0,10 - li 5,96 - lvsr 1,0,6 li 10,0 - li 6,112 + stw 22,568(1) + .cfi_offset 22, -40 + add 17,8,17 + li 29,0 + stw 24,576(1) + .cfi_offset 24, -32 + addi 24,9,1 + li 22,16 + stw 27,588(1) + .cfi_offset 27, -20 + li 21,32 + li 27,0 + stw 28,592(1) + .cfi_offset 28, -16 + li 20,48 + li 28,0 + stw 31,604(1) + .cfi_offset 31, -4 + neg 31,7 + vspltish 30,8 + stw 14,536(1) + .cfi_offset 14, -72 + vxor 31,31,31 + stw 15,540(1) + .cfi_offset 15, -68 + stw 18,552(1) + .cfi_offset 18, -56 + stw 23,572(1) + .cfi_offset 23, -36 + stvx 1,1,0 + lwz 6,.LC37-.LCTOC1(30) + lvsr 1,0,31 + lvx 29,0,11 lvx 28,0,7 lvx 13,0,3 + lvx 0,0,6 + li 6,112 vperm 28,28,29,1 - stw 9,304(1) - vperm 28,28,28,0 stw 10,140(1) vperm 29,29,13,1 - stvx 28,1,5 - vperm 29,29,29,0 stw 10,136(1) - stvx 29,1,6 - vor 26,28,28 - vor 27,29,29 + vperm 28,28,28,0 stw 10,132(1) - stw 24,320(1) - stw 28,324(1) - stw 16,332(1) - stw 17,328(1) -.L118: - stw 27,308(1) - mr 17,27 - stw 29,312(1) - stw 26,316(1) - lwz 23,320(1) -.L122: + vperm 29,29,29,0 + stw 25,332(1) + stvx 28,1,5 + vor 26,28,28 + stvx 29,1,6 + vor 27,29,29 + stw 26,336(1) + stw 24,340(1) + stw 16,344(1) + mr 16,17 +.L130: + lwz 23,332(1) + mr 17,28 + stw 28,320(1) + stw 29,324(1) + stw 27,328(1) +.L134: li 5,64 addi 4,1,80 - stw 17,128(1) addi 3,1,16 - mr 24,17 + stw 17,128(1) bl memcpy@plt li 9,10 - lwz 29,16(1) - addi 17,17,1 mtctr 9 + lwz 31,16(1) + mr 24,17 lwz 7,32(1) + addi 17,17,1 mr 8,24 - lwz 31,48(1) - lwz 27,20(1) + lwz 0,48(1) + lwz 28,20(1) lwz 6,36(1) lwz 5,68(1) - lwz 0,52(1) - lwz 28,24(1) + lwz 11,52(1) + lwz 29,24(1) lwz 9,40(1) lwz 3,72(1) lwz 25,56(1) - lwz 11,28(1) + lwz 27,28(1) lwz 10,44(1) lwz 4,76(1) lwz 26,60(1) -.L119: - add 29,29,7 - add 27,27,6 - add 28,9,28 - add 11,10,11 - xor 8,29,8 - xor 5,27,5 - xor 3,28,3 - xor 4,11,4 +.L131: + add 31,31,7 + add 28,28,6 + add 29,9,29 + add 27,10,27 + xor 8,31,8 + xor 5,28,5 + xor 3,29,3 + xor 4,27,4 rotlwi 8,8,16 rotlwi 5,5,16 rotlwi 3,3,16 rotlwi 4,4,16 - add 31,8,31 - add 0,5,0 + add 0,8,0 + add 11,5,11 add 25,25,3 add 26,26,4 - xor 7,31,7 - xor 6,0,6 + xor 7,0,7 + xor 6,11,6 xor 9,25,9 xor 10,26,10 rotlwi 7,7,12 rotlwi 6,6,12 rotlwi 9,9,12 rotlwi 10,10,12 - add 29,29,7 - add 27,27,6 + add 31,31,7 + add 28,28,6 + add 29,29,9 + add 27,27,10 + xor 8,31,8 + xor 5,28,5 + xor 3,29,3 + xor 4,27,4 + rotlwi 8,8,8 + rotlwi 5,5,8 + rotlwi 3,3,8 + rotlwi 4,4,8 + add 0,0,8 + add 11,11,5 + add 25,25,3 + add 26,26,4 + xor 7,0,7 + xor 6,11,6 + xor 9,25,9 + xor 10,26,10 + rotlwi 7,7,7 + rotlwi 6,6,7 + rotlwi 9,9,7 + rotlwi 10,10,7 + add 31,31,6 add 28,28,9 - add 11,11,10 - xor 8,29,8 - xor 5,27,5 - xor 3,28,3 - xor 4,11,4 - rotlwi 8,8,8 - rotlwi 5,5,8 - rotlwi 3,3,8 - rotlwi 4,4,8 - add 31,31,8 - add 0,0,5 - add 25,25,3 - add 26,26,4 - xor 7,31,7 - xor 6,0,6 - xor 9,25,9 - xor 10,26,10 - rotlwi 7,7,7 - rotlwi 6,6,7 - rotlwi 9,9,7 - rotlwi 10,10,7 - add 29,29,6 - add 27,27,9 - add 11,11,7 - add 28,28,10 - xor 8,27,8 - xor 3,11,3 - xor 4,29,4 - xor 5,28,5 + add 27,27,7 + add 29,29,10 + xor 8,28,8 + xor 3,27,3 + xor 4,31,4 + xor 5,29,5 rotlwi 8,8,16 rotlwi 3,3,16 rotlwi 4,4,16 rotlwi 5,5,16 - add 0,0,3 + add 11,11,3 add 25,25,4 add 26,26,8 - add 31,31,5 - xor 7,0,7 + add 0,0,5 + xor 7,11,7 xor 6,25,6 xor 9,26,9 - xor 10,31,10 + xor 10,0,10 rotlwi 7,7,12 rotlwi 6,6,12 rotlwi 9,9,12 rotlwi 10,10,12 - add 11,11,7 - add 29,29,6 - add 27,27,9 - add 28,28,10 - xor 3,11,3 - xor 4,29,4 - xor 8,27,8 - xor 5,28,5 + add 27,27,7 + add 31,31,6 + add 28,28,9 + add 29,29,10 + xor 3,27,3 + xor 4,31,4 + xor 8,28,8 + xor 5,29,5 rotlwi 3,3,8 rotlwi 4,4,8 rotlwi 8,8,8 rotlwi 5,5,8 - add 0,0,3 + add 11,11,3 add 25,25,4 add 26,26,8 - add 31,31,5 - xor 7,0,7 + add 0,0,5 + xor 7,11,7 xor 6,25,6 xor 9,26,9 - xor 10,31,10 + xor 10,0,10 rotlwi 7,7,7 rotlwi 6,6,7 rotlwi 9,9,7 rotlwi 10,10,7 - bdnz .L119 - andi. 16,23,0xf - stw 29,16(1) + bdnz .L131 + andi. 14,23,0xf + stw 31,16(1) stw 4,76(1) stw 25,56(1) stw 6,36(1) - stw 27,20(1) + stw 28,20(1) stw 8,64(1) stw 26,60(1) stw 9,40(1) - stw 28,24(1) + stw 29,24(1) stw 5,68(1) - stw 31,48(1) + stw 0,48(1) stw 10,44(1) - stw 11,28(1) + stw 27,28(1) stw 3,72(1) - stw 0,52(1) + stw 11,52(1) stw 7,32(1) - bne- 0,.L120 + bne- 0,.L132 + lwz 10,.LC39-.LCTOC1(30) li 9,64 - lwz 10,.LC33-.LCTOC1(30) li 8,128 - lvx 12,1,22 - lvx 0,1,9 + lvx 0,1,22 + lvx 1,1,9 neg 9,23 - lvx 1,1,8 - lvx 13,1,20 - lvsr 8,0,9 - addi 9,23,31 - lvx 11,0,10 + lvx 13,0,10 addi 10,23,15 - lvx 9,0,9 - addi 9,23,63 - lvx 4,0,10 + vmrghw 8,0,0 + lvsr 10,0,9 + addi 9,23,31 + vmrglw 25,0,0 + lvx 5,0,23 + vadduwm 0,0,13 + lvx 13,1,8 + lvx 9,0,10 addi 10,23,47 - lvx 5,0,9 - li 9,160 - vadduwm 1,1,0 - vadduwm 13,27,13 - vadduwm 11,12,11 - lvx 0,1,21 - vxor 10,1,11 - vadduwm 0,26,0 - vxor 10,10,0 - vxor 10,10,13 - vsldoi 7,10,30,8 - vxor 7,7,10 - lvx 10,0,10 - vsldoi 6,7,30,4 - vxor 7,6,7 - lvx 6,0,23 - stvx 7,1,9 - lwz 9,160(1) - vperm 5,10,5,8 - vperm 6,6,4,8 - lwz 10,.LC35-.LCTOC1(30) - vperm 10,9,10,8 - vpkuwum 7,13,1 - vperm 9,4,9,8 - xor 19,19,9 - lwz 9,.LC39-.LCTOC1(30) - vpkuwum 11,11,0 - vpkuhum 3,6,9 - lvx 4,0,10 - vsrh 8,11,31 - lwz 10,.LC37-.LCTOC1(30) - vpkuhum 11,11,7 - vsrh 7,7,31 - vpkuhum 8,8,7 - vperm 7,6,9,4 - vpkuwum 6,6,9 - vperm 9,10,5,4 - vperm 7,7,9,4 - lvx 9,0,9 - lwz 9,.LC41-.LCTOC1(30) - vpkuhum 2,10,5 - vxor 7,7,11 - vperm 3,3,2,4 - vpkuwum 10,10,5 - vxor 8,8,3 - vmrghw 5,0,0 - lvx 4,0,10 - vmrglw 0,0,0 - vsrw 5,5,9 - vsrw 11,0,9 - vmrghw 0,12,12 - vpkuwum 5,5,11 - vadduwm 0,0,4 - vmrghw 11,13,13 - vmrglw 12,12,12 - vsrw 11,11,9 - lvx 4,0,9 - vsrw 0,0,9 - vadduwm 12,12,4 - vmrglw 13,13,13 - vsrw 12,12,9 - vsrw 13,13,9 - vpkuwum 0,0,12 - vpkuwum 13,11,13 - vmrghw 12,1,1 - vmrglb 11,7,8 - vsrw 12,12,9 - vpkuhum 0,0,5 + lvx 6,0,9 + addi 9,23,63 + vadduwm 12,13,1 + lvx 1,1,21 + lvx 11,0,9 + addi 9,1,304 + vxor 13,12,0 + lvx 3,0,10 + vperm 18,9,6,10 + vadduwm 1,26,1 + lwz 10,.LC41-.LCTOC1(30) + vmrghw 2,12,12 + stvx 5,0,9 + vpkuwum 7,0,1 + vxor 13,13,1 + lvx 0,1,20 + vperm 6,6,3,10 + lwz 9,.LC43-.LCTOC1(30) + vperm 3,3,11,10 + vsrh 15,7,30 + lvx 16,0,10 + vperm 5,5,9,10 + lwz 10,.LC47-.LCTOC1(30) + vadduwm 0,27,0 + vmrghw 19,1,1 + lvx 11,0,9 + vxor 13,13,0 + vpkuwum 14,0,12 + lwz 9,.LC45-.LCTOC1(30) + vsldoi 17,13,31,8 + lvx 22,0,10 vmrglw 1,1,1 - vxor 0,0,6 - vsrw 1,1,9 - vpkuwum 1,12,1 - vmrghb 12,7,8 - vpkuhum 1,13,1 - vmrghh 13,12,0 - vxor 1,1,10 + vsrh 4,14,30 + vadduwm 11,8,11 + vmrglw 9,0,0 + lvx 8,0,9 + vxor 17,17,13 + vmrglw 10,12,12 + vmrghw 13,0,0 + vadduwm 22,25,22 + li 9,160 + vpkuhum 25,5,18 + vpkuhum 23,6,3 + vsrw 12,1,8 + vperm 0,5,18,16 + vsrw 1,11,8 + vperm 21,6,3,16 + vsrw 11,22,8 + vsrw 19,19,8 + vpkuwum 1,1,11 + vsrw 13,13,8 + vpkuwum 19,19,12 + vsrw 9,9,8 + vsldoi 24,17,31,4 + vsrw 2,2,8 + vpkuhum 14,7,14 + vsrw 10,10,8 + vpkuhum 4,15,4 + vperm 25,25,23,16 + vxor 24,24,17 + vperm 0,0,21,16 + stvx 24,1,9 + vpkuwum 13,13,9 + vxor 4,4,25 + vpkuwum 2,2,10 + vxor 0,0,14 + vpkuwum 5,5,18 + lwz 9,160(1) + vpkuwum 6,6,3 + vpkuhum 1,1,19 + vpkuhum 13,13,2 + xor 19,19,9 + vmrglb 12,0,4 + vxor 1,1,5 + vmrghb 0,0,4 + vxor 13,13,6 + vmrghh 11,12,13 + vmrglh 12,12,13 + vmrghh 13,0,1 + stvx 11,23,21 + vmrglh 0,0,1 + stvx 12,23,20 stvx 13,0,23 - vmrglh 12,12,0 - vmrghh 13,11,1 - vmrglh 11,11,1 - stvx 13,23,21 - stvx 11,23,20 - stvx 12,23,22 -.L121: - lwz 9,304(1) + stvx 0,23,22 +.L133: addi 23,23,64 - cmplw 0,9,23 - bne+ 0,.L122 - lwz 9,328(1) - lwz 27,308(1) - lwz 26,316(1) - lwz 29,312(1) - add 27,27,9 - addic 26,26,1 - lwz 9,324(1) + cmplw 0,16,23 + bne+ 0,.L134 + lwz 9,340(1) + lwz 28,320(1) + lwz 27,328(1) + lwz 29,324(1) + add 28,28,9 + lwz 9,336(1) + addic 27,27,1 addze 29,29 cmplw 0,9,29 - bne+ 0,.L118 - lwz 9,332(1) - cmplw 0,9,26 - bne+ 0,.L118 + bne+ 0,.L130 + lwz 9,344(1) + cmplw 0,9,27 + bne+ 0,.L130 mr 4,19 - lwz 14,440(1) + lwz 14,536(1) .cfi_restore 14 li 3,0 - lwz 15,444(1) + lwz 15,540(1) .cfi_restore 15 - lwz 16,448(1) + lwz 16,544(1) .cfi_restore 16 - lwz 17,452(1) + lwz 17,548(1) .cfi_restore 17 - lwz 18,456(1) + lwz 18,552(1) .cfi_restore 18 - lwz 19,460(1) + lwz 19,556(1) .cfi_restore 19 - lwz 20,464(1) + lwz 20,560(1) .cfi_restore 20 - lwz 21,468(1) + lwz 21,564(1) .cfi_restore 21 - lwz 22,472(1) + lwz 22,568(1) .cfi_restore 22 - lwz 23,476(1) + lwz 23,572(1) .cfi_restore 23 - lwz 25,484(1) - .cfi_restore 25 - lwz 26,488(1) - .cfi_restore 26 - lwz 27,492(1) - .cfi_restore 27 - lwz 28,496(1) - .cfi_restore 28 - lwz 29,500(1) - .cfi_restore 29 - lwz 31,508(1) - .cfi_restore 31 -.L114: - li 0,336 - lwz 24,480(1) - lvx 26,1,0 - li 0,352 - lwz 30,504(1) - lvx 27,1,0 - li 0,368 - lvx 28,1,0 - li 0,384 - lvx 29,1,0 - li 0,400 - lvx 30,1,0 - li 0,416 - lvx 31,1,0 - lwz 0,516(1) - addi 1,1,512 - .cfi_restore 30 + lwz 24,576(1) .cfi_restore 24 + lwz 26,584(1) + .cfi_restore 26 + lwz 27,588(1) + .cfi_restore 27 + lwz 28,592(1) + .cfi_restore 28 + lwz 29,596(1) + .cfi_restore 29 + lwz 31,604(1) + .cfi_restore 31 +.L126: + li 0,352 + lwz 25,580(1) + lvx 21,1,0 + li 0,368 + lvx 22,1,0 + li 0,384 + lvx 23,1,0 + li 0,400 + lvx 24,1,0 + li 0,416 + lvx 25,1,0 + li 0,432 + lvx 26,1,0 + li 0,448 + lvx 27,1,0 + li 0,464 + lvx 28,1,0 + li 0,480 + lvx 29,1,0 + li 0,496 + lvx 30,1,0 + li 0,512 + lvx 31,1,0 + lwz 0,612(1) + lwz 30,600(1) + addi 1,1,608 + .cfi_restore 30 + .cfi_restore 25 .cfi_restore 108 .cfi_restore 107 .cfi_restore 106 .cfi_restore 105 .cfi_restore 104 .cfi_restore 103 + .cfi_restore 102 + .cfi_restore 101 + .cfi_restore 100 + .cfi_restore 99 + .cfi_restore 98 .cfi_def_cfa_offset 0 mtlr 0 .cfi_restore 65 blr -.L125: - .cfi_def_cfa_offset 512 +.L137: + .cfi_def_cfa_offset 608 .cfi_offset 16, -64 - .cfi_offset 24, -32 - .cfi_offset 28, -16 + .cfi_offset 25, -28 + .cfi_offset 26, -24 .cfi_offset 30, -8 + .cfi_offset 98, -256 + .cfi_offset 99, -240 + .cfi_offset 100, -224 + .cfi_offset 101, -208 + .cfi_offset 102, -192 .cfi_offset 103, -176 .cfi_offset 104, -160 .cfi_offset 105, -144 @@ -1608,14 +1629,14 @@ fb_chacha20: .cfi_offset 107, -112 .cfi_offset 108, -96 .cfi_offset 65, 4 - mr 3,28 - lwz 16,448(1) + mr 3,26 + lwz 16,544(1) .cfi_restore 16 mr 4,10 - lwz 28,496(1) - .cfi_restore 28 - b .L114 -.L120: + lwz 26,584(1) + .cfi_restore 26 + b .L126 +.L132: .cfi_offset 14, -72 .cfi_offset 15, -68 .cfi_offset 16, -64 @@ -1626,334 +1647,334 @@ fb_chacha20: .cfi_offset 21, -44 .cfi_offset 22, -40 .cfi_offset 23, -36 - .cfi_offset 25, -28 + .cfi_offset 24, -32 .cfi_offset 26, -24 .cfi_offset 27, -20 .cfi_offset 28, -16 .cfi_offset 29, -12 .cfi_offset 31, -4 - lbz 16,2(23) - addis 29,29,0x6170 - addis 27,27,0x3320 - addi 29,29,30821 - lbz 12,1(23) - addi 27,27,25710 - mtlr 16 - lbz 16,3(23) + lbz 15,3(23) + addis 31,31,0x6170 + addis 28,28,0x3320 + lbz 14,1(23) + addi 31,31,30821 + addi 28,28,25710 + lbz 12,2(23) add 8,8,24 - addis 28,28,0x7962 - lbz 14,5(23) - addi 28,28,11570 - addis 11,11,0x6b20 - mtctr 16 - srwi 16,29,8 - lbz 15,6(23) - addi 11,11,25972 - xor 16,16,12 - mflr 12 - lbz 24,7(23) - stb 16,1(23) - srwi 16,29,16 + addis 29,29,0x7962 + mtctr 15 + srwi 15,31,8 + lbz 24,6(23) + xor 14,15,14 + lbz 15,5(23) + addi 29,29,11570 + stb 14,1(23) + srwi 14,31,16 mfctr 18 - xor 16,16,12 + xor 12,14,12 + lbz 14,7(23) + addis 27,27,0x6b20 + stb 12,2(23) + srwi 12,31,24 + addi 27,27,25972 + xor 12,12,18 + mtctr 12 lbz 12,9(23) - stb 16,2(23) - srwi 16,29,24 - xor 16,16,18 + mfctr 18 + stb 18,3(23) + srwi 18,28,8 + xor 15,18,15 lbz 18,10(23) - stb 16,3(23) - srwi 16,27,8 - xor 16,16,14 - mtctr 18 - lbz 14,11(23) - stb 16,5(23) - srwi 16,27,16 - xor 15,16,15 - mfctr 18 - lbz 16,13(23) - stb 15,6(23) - srwi 15,27,24 + stb 15,5(23) + srwi 15,28,16 xor 24,15,24 - lbz 15,14(23) + lbz 15,11(23) + stb 24,6(23) + srwi 24,28,24 + mtctr 18 + xor 24,24,14 + lbz 14,13(23) stb 24,7(23) - srwi 24,28,8 - xor 24,24,12 - lbz 12,15(23) - stb 24,9(23) - srwi 24,28,16 - xor 24,24,18 - mtctr 24 - lbz 24,0(23) + srwi 24,29,8 mfctr 18 - xor 24,29,24 - xor 29,29,27 - mtctr 24 - lbz 24,4(23) - xor 29,29,19 - stb 18,10(23) - srwi 18,28,24 - xor 29,29,28 - xor 24,27,24 - mfctr 27 - xor 14,18,14 - lbz 19,12(23) - stb 14,11(23) - srwi 14,11,8 - xor 14,14,16 - srwi 16,11,16 - stb 24,4(23) - stb 27,0(23) - xor 16,16,15 - xor 19,11,19 - lbz 27,8(23) - srwi 15,8,16 + xor 24,24,12 + lbz 12,14(23) + stb 24,9(23) + srwi 24,29,16 + xor 24,24,18 + lbz 18,15(23) + stb 24,10(23) + srwi 24,29,24 + xor 15,24,15 + lbz 24,0(23) + stb 15,11(23) + srwi 15,27,8 + mtctr 18 + xor 14,15,14 + lbz 15,4(23) + xor 24,31,24 stb 14,13(23) - srwi 14,8,24 - xor 27,28,27 - srwi 28,11,24 - stb 16,14(23) - xor 28,28,12 - xor 11,29,11 - stb 27,8(23) + xor 31,31,28 + srwi 14,27,16 + xor 31,31,19 + mfctr 18 + xor 14,14,12 + lbz 12,8(23) + xor 31,31,29 + xor 31,31,27 + xor 28,28,15 + lbz 15,12(23) + xor 31,31,4 + srwi 19,27,24 + stb 24,0(23) + xor 29,29,12 + xor 31,31,5 + xor 19,19,18 + stb 29,8(23) + srwi 29,8,16 + xor 31,31,3 + mtctr 29 + srwi 29,8,24 + xor 24,27,15 + stb 19,15(23) + mtlr 29 + xor 19,31,8 li 29,176 - stb 28,15(23) - xor 11,11,4 - stb 19,12(23) - stvx 28,1,29 - li 29,192 - xor 11,11,5 + li 31,192 + stb 14,14(23) + stb 28,4(23) + srwi 18,5,8 + srwi 12,8,8 + stb 24,12(23) + srwi 15,3,8 stvx 28,1,29 li 29,208 - li 28,224 + stvx 28,1,31 + srwi 31,5,16 + stw 31,304(1) + stvx 28,1,29 + li 29,224 stvx 28,1,29 lwz 29,196(1) - xor 11,11,3 - stvx 28,1,28 - lbz 28,21(23) - xor 19,11,8 - srwi 16,8,8 - add 6,29,6 - lwz 11,176(1) - srwi 12,5,8 - srwi 29,6,8 lwz 27,216(1) - xor 29,29,28 - lbz 28,22(23) - add 11,11,7 - lwz 24,236(1) - srwi 7,6,16 + lbz 28,21(23) + lwz 31,176(1) + add 29,29,6 add 9,27,9 - xor 7,7,28 - lbz 27,23(23) - lbz 28,25(23) - add 24,24,10 - srwi 10,6,24 - stb 29,21(23) - srwi 29,9,8 - xor 10,10,27 - xor 29,29,28 + srwi 6,29,8 + lwz 27,236(1) + xor 6,6,28 + lbz 28,22(23) + add 7,31,7 + lbz 31,23(23) + add 10,27,10 + stb 6,21(23) + srwi 6,29,16 + lbz 27,25(23) + xor 6,6,28 + srwi 28,29,24 + stb 6,22(23) + xor 6,28,31 + srwi 31,9,8 lbz 28,26(23) + lbz 24,27(23) + xor 31,31,27 srwi 27,9,16 - stb 10,23(23) - lbz 10,20(23) + stb 31,25(23) + lbz 31,24(23) xor 27,27,28 - lbz 28,27(23) - xor 10,6,10 - stb 7,22(23) - srwi 7,9,24 - xor 7,7,28 - stb 10,20(23) - srwi 28,11,8 - lbz 10,17(23) - stb 7,27(23) - lbz 7,24(23) - xor 10,28,10 - lbz 28,18(23) - xor 7,9,7 - stb 29,25(23) - srwi 29,11,16 - xor 28,29,28 - stb 7,24(23) - lbz 29,19(23) - lbz 7,16(23) - stb 10,17(23) - lbz 10,28(23) - xor 7,11,7 + srwi 28,9,24 + xor 28,28,24 + stb 6,23(23) + srwi 24,7,8 + stb 28,27(23) + xor 31,9,31 + lbz 28,17(23) + lbz 6,20(23) + stb 31,24(23) + lbz 31,18(23) + xor 28,24,28 stb 27,26(23) - srwi 27,11,24 - xor 29,27,29 - xor 10,24,10 - stb 28,18(23) - stb 29,19(23) - srwi 28,24,8 - srwi 29,24,16 - stb 7,16(23) - stb 10,28(23) - li 10,240 - stvx 29,1,10 - li 10,256 - stvx 29,1,10 - li 10,272 - stvx 29,1,10 - lwz 27,260(1) - lwz 7,240(1) - add 0,27,0 - lbz 27,29(23) - lwz 10,280(1) - add 7,7,31 - xor 27,28,27 - lbz 28,31(23) - xor 19,19,7 - add 10,10,25 - lbz 31,30(23) - srwi 25,24,24 - xor 28,25,28 - lbz 25,33(23) - xor 19,19,0 - xor 31,29,31 - srwi 29,7,8 - stb 27,29(23) - stb 31,30(23) - xor 31,29,25 srwi 27,7,16 - stb 31,33(23) - srwi 25,7,24 - xor 19,19,10 - lbz 31,32(23) - lbz 29,34(23) - xor 31,7,31 - lbz 7,37(23) - xor 29,27,29 - stb 28,31(23) - srwi 28,0,8 - lbz 27,35(23) - xor 28,28,7 - lbz 7,38(23) - xor 25,25,27 - stb 31,32(23) - srwi 27,0,16 - lbz 31,39(23) - xor 7,27,7 + xor 6,29,6 + lbz 24,19(23) + xor 31,27,31 + stb 28,17(23) + lbz 27,28(23) + lbz 28,16(23) + stb 6,20(23) + srwi 6,7,24 + xor 6,6,24 + xor 27,10,27 + stb 31,18(23) + xor 28,7,28 + stb 6,19(23) + li 6,240 + stb 28,16(23) + srwi 24,10,8 + stb 27,28(23) srwi 27,10,16 - stb 28,37(23) - lbz 28,36(23) - stb 29,34(23) - srwi 29,0,24 - xor 29,29,31 - xor 28,0,28 - lbz 31,41(23) - lbz 0,40(23) - stb 7,38(23) - srwi 7,5,16 - stb 25,35(23) - mtctr 7 - srwi 25,10,8 - srwi 7,5,24 + stvx 29,1,6 + li 6,256 + stvx 29,1,6 + li 6,272 + stvx 29,1,6 + lwz 6,280(1) + lwz 31,240(1) + lwz 28,260(1) + add 6,6,25 + lbz 25,29(23) + add 31,31,0 + add 28,28,11 + xor 0,19,31 + srwi 11,10,24 + xor 25,24,25 + xor 0,0,28 + srwi 24,31,8 + stb 25,29(23) + xor 14,0,6 + lbz 25,33(23) + lbz 0,31(23) + lbz 19,30(23) + xor 25,24,25 + lbz 24,34(23) + xor 0,11,0 + srwi 11,31,16 + stb 25,33(23) + xor 27,27,19 + stb 0,31(23) + srwi 0,28,8 + xor 11,11,24 + lbz 24,35(23) + srwi 25,28,16 + stb 27,30(23) + srwi 27,31,24 + stb 11,34(23) + srwi 11,28,24 + xor 27,27,24 + lbz 24,32(23) + stb 27,35(23) + srwi 27,6,8 + xor 31,31,24 + lbz 24,37(23) + stb 31,32(23) + lbz 31,38(23) + xor 0,0,24 + lbz 24,39(23) + stb 0,37(23) xor 31,25,31 - stb 29,39(23) - xor 0,10,0 - mtlr 7 - stb 28,36(23) - li 7,288 - stb 31,41(23) - srwi 10,10,24 - stb 0,40(23) - srwi 25,3,8 - lbz 0,42(23) - stvx 29,1,7 - lwz 7,300(1) - lbz 29,43(23) - xor 0,27,0 - add 7,7,26 + lbz 0,36(23) + lbz 25,41(23) + xor 11,11,24 + srwi 24,5,24 + stb 31,38(23) + lbz 31,40(23) + xor 0,28,0 + xor 25,27,25 + stb 11,39(23) + srwi 27,6,24 + stb 0,36(23) + srwi 11,6,16 + li 0,288 + xor 6,6,31 + stb 25,41(23) + stb 6,40(23) + lbz 6,42(23) + stvx 29,1,0 + xor 11,11,6 + lwz 6,300(1) lbz 31,45(23) - srwi 26,3,16 - xor 10,10,29 - xor 19,19,7 - lbz 29,46(23) - srwi 27,7,8 - xor 11,19,11 - stb 0,42(23) - xor 27,27,31 - srwi 28,7,16 - lbz 31,47(23) - xor 28,28,29 - xor 6,11,6 - lbz 0,44(23) - srwi 29,7,24 - xor 6,6,9 - lbz 9,53(23) - xor 29,29,31 - lbz 31,49(23) - xor 19,6,24 - lbz 24,48(23) - xor 12,12,9 - mfctr 9 - lbz 6,54(23) - xor 31,16,31 - xor 7,7,0 - lbz 16,52(23) - xor 24,8,24 - lbz 0,50(23) - xor 6,9,6 + lbz 25,50(23) + add 6,6,26 + stb 11,42(23) + srwi 28,6,8 + xor 14,14,6 + lbz 11,46(23) + xor 28,28,31 + lbz 31,44(23) + xor 7,14,7 + lbz 26,47(23) + xor 7,7,29 + srwi 29,6,16 + xor 7,7,9 + srwi 9,6,24 + lbz 0,43(23) + xor 31,6,31 + mfctr 6 + xor 29,29,11 + xor 9,9,26 lbz 11,51(23) - xor 16,5,16 - mflr 5 + xor 25,6,25 + lbz 26,48(23) + xor 19,7,10 + mflr 10 + lbz 6,52(23) + xor 27,27,0 + lbz 7,53(23) + xor 11,10,11 + lbz 0,49(23) + xor 26,8,26 + lbz 10,54(23) + xor 6,5,6 lbz 8,55(23) - xor 0,15,0 - lbz 9,56(23) - xor 11,14,11 - xor 8,5,8 - stb 10,43(23) - srwi 10,3,24 - xor 9,3,9 - stb 27,45(23) - srwi 3,4,24 - stb 28,46(23) - srwi 27,4,8 - srwi 28,4,16 - stb 7,44(23) - stb 6,54(23) - stb 9,56(23) - stb 29,47(23) - stb 31,49(23) - stb 0,50(23) + xor 7,18,7 + lbz 5,56(23) + xor 0,12,0 + lwz 18,304(1) + xor 8,24,8 + stb 27,43(23) + srwi 27,3,16 + xor 5,3,5 + stb 28,45(23) + srwi 28,3,24 + xor 10,18,10 + stb 29,46(23) + srwi 3,4,8 + stb 9,47(23) + srwi 29,4,16 + srwi 9,4,24 stb 11,51(23) - stb 24,48(23) - stb 16,52(23) - stb 12,53(23) + stb 6,52(23) + stb 7,53(23) + stb 10,54(23) stb 8,55(23) + stb 31,44(23) + stb 0,49(23) + stb 25,50(23) + stb 26,48(23) + stb 5,56(23) + lbz 7,59(23) lbz 8,57(23) - lbz 6,59(23) - lbz 7,60(23) - xor 8,25,8 - lbz 9,58(23) - xor 10,10,6 + lbz 10,58(23) + lbz 11,60(23) + xor 28,28,7 lbz 5,61(23) - xor 4,4,7 + xor 8,15,8 lbz 6,62(23) - xor 9,26,9 + xor 10,27,10 lbz 7,63(23) - xor 27,27,5 - xor 28,28,6 + xor 4,4,11 + xor 3,3,5 stb 8,57(23) - xor 3,3,7 - stb 9,58(23) - stb 10,59(23) + xor 29,29,6 + stb 10,58(23) + xor 9,9,7 + stb 28,59(23) stb 4,60(23) - stb 27,61(23) - stb 28,62(23) - stb 3,63(23) - b .L121 + stb 3,61(23) + stb 29,62(23) + stb 9,63(23) + b .L133 .cfi_endproc .size fb_chacha20, .-fb_chacha20 .section ".got2","aw" -.LC44: - .long .LC43 -.LC47: - .long .LC46 - .set .LC48,.LC17 -.LC51: - .long .LC50 +.LC50: + .long .LC49 +.LC53: + .long .LC52 + .set .LC54,.LC23 +.LC57: + .long .LC56 .section ".text" .align 2 .globl fb_physics @@ -1962,239 +1983,241 @@ fb_chacha20: .type fb_physics, @function fb_physics: .cfi_startproc - stwu 1,-160(1) - .cfi_def_cfa_offset 160 + stwu 1,-128(1) + .cfi_def_cfa_offset 128 mflr 0 .cfi_register 65, 0 bcl 20,31,.LCF6 .LCF6: or. 9,5,6 - stw 23,44(1) - .cfi_offset 23, -116 - mr 23,5 - stw 25,52(1) - .cfi_offset 25, -108 - mr 25,6 + stw 24,48(1) + .cfi_offset 24, -80 + mr 24,5 + stw 26,56(1) + .cfi_offset 26, -72 + mr 26,6 stw 30,72(1) - .cfi_offset 30, -88 + .cfi_offset 30, -56 mflr 30 - stw 0,164(1) + stw 0,132(1) .cfi_offset 65, 4 lwz 0,.LCL6-.LCF6(30) add 30,0,30 - beq- 0,.L145 + beq- 0,.L161 or. 9,7,8 stw 17,20(1) - .cfi_offset 17, -140 + .cfi_offset 17, -108 mr 17,8 stw 18,24(1) - .cfi_offset 18, -136 + .cfi_offset 18, -104 mr 18,7 - beq- 0,.L146 - lwz 8,.LC44-.LCTOC1(30) - slwi 9,6,6 - lwz 10,.LC47-.LCTOC1(30) - lfs 0,0(8) - stfd 25,104(1) - .cfi_offset 57, -56 - stw 27,60(1) - .cfi_offset 27, -100 - stw 28,64(1) - .cfi_offset 28, -96 - stw 29,68(1) - .cfi_offset 29, -92 - stw 31,76(1) - .cfi_offset 31, -84 - stfd 22,80(1) - .cfi_offset 54, -80 - stfd 23,88(1) - .cfi_offset 55, -72 - stfd 24,96(1) - .cfi_offset 56, -64 - stfd 26,112(1) - .cfi_offset 58, -48 - stfd 27,120(1) - .cfi_offset 59, -40 - stfd 28,128(1) - .cfi_offset 60, -32 - stfd 29,136(1) - .cfi_offset 61, -24 - stfd 30,144(1) - .cfi_offset 62, -16 - stfd 31,152(1) - .cfi_offset 63, -8 - lfs 25,0(10) - stfs 0,8(1) + beq- 0,.L162 + lwz 9,.LC50-.LCTOC1(30) stw 21,36(1) - .cfi_offset 21, -124 - stw 26,56(1) - .cfi_offset 26, -104 - lwz 21,.LC51-.LCTOC1(30) - lwz 26,.LC48-.LCTOC1(30) + .cfi_offset 21, -92 + stw 23,44(1) + .cfi_offset 23, -84 + lfs 0,0(9) + stw 25,52(1) + .cfi_offset 25, -76 + stw 27,60(1) + .cfi_offset 27, -68 + stw 28,64(1) + .cfi_offset 28, -64 + stw 29,68(1) + .cfi_offset 29, -60 + stw 31,76(1) + .cfi_offset 31, -52 + stfd 26,80(1) + .cfi_offset 58, -48 + stfd 27,88(1) + .cfi_offset 59, -40 + stfd 28,96(1) + .cfi_offset 60, -32 + stfd 29,104(1) + .cfi_offset 61, -24 + stfd 30,112(1) + .cfi_offset 62, -16 + stfd 31,120(1) + .cfi_offset 63, -8 + lwz 21,.LC57-.LCTOC1(30) + stfs 0,8(1) stw 16,16(1) - .cfi_offset 16, -144 - mr 16,8 + .cfi_offset 16, -112 + mr 16,9 stw 19,28(1) - .cfi_offset 19, -132 + .cfi_offset 19, -100 li 19,0 stw 20,32(1) - .cfi_offset 20, -128 + .cfi_offset 20, -96 li 20,0 stw 22,40(1) - .cfi_offset 22, -120 - add 22,3,9 - stw 24,48(1) - .cfi_offset 24, -112 - mr 24,3 -.L138: - mr 27,24 -.L143: - lfs 22,8(1) - mr 29,24 - mr 28,23 - lfd 26,0(27) - mr 31,25 - lfd 27,8(27) - fmr 23,22 - lfd 28,16(27) - fmr 24,22 -.L139: + .cfi_offset 22, -88 + mr 22,3 +.L150: + mr 27,22 + li 25,0 + li 23,0 +.L159: + lfs 26,8(1) + mr 29,22 + mr 28,24 + mr 31,26 + fmr 27,26 + fmr 28,26 + b .L153 +.L163: lfd 0,0(29) addi 29,29,64 - fsub 29,0,26 + lfd 12,0(27) + lwz 9,.LC53-.LCTOC1(30) + fsub 29,0,12 lfd 0,-56(29) - fsub 30,0,27 + lfd 12,8(27) + lfs 1,0(9) + fsub 30,0,12 lfd 0,-48(29) - fmul 1,29,29 - fmul 12,30,30 - fsub 31,0,28 - fadd 1,1,12 - fmul 0,31,31 - fadd 1,1,0 - fadd 1,1,25 + lfd 12,16(27) + fmul 11,30,30 + fsub 31,0,12 + fmul 0,29,29 + fmul 12,31,31 + fadd 0,0,11 + fadd 0,0,12 + fadd 1,0,1 bl sqrt@plt - lfs 0,0(26) + lwz 9,.LC54-.LCTOC1(30) addic 31,31,-1 - lfd 12,-40(29) addme 28,28 + lfs 0,0(9) or. 9,28,31 fdiv 0,0,1 fmul 1,0,0 fmul 1,1,0 - fmul 1,1,12 + lfd 0,-40(29) + fmul 1,1,0 fmul 29,29,1 fmul 30,30,1 fmul 31,31,1 - fadd 24,24,29 - fadd 23,23,30 - fadd 22,22,31 - bne+ 0,.L139 + fadd 28,28,29 + fadd 27,27,30 + fadd 26,26,31 + beq- 0,.L179 +.L153: + subfc 10,31,26 + subfe 9,28,24 + cmplw 0,25,9 + bne+ 0,.L163 + cmplw 0,23,10 + bne+ 0,.L163 + addic 31,31,-1 + addi 29,29,64 + addme 28,28 + or. 9,28,31 + bne+ 0,.L153 +.L179: lfs 0,0(21) + addic 23,23,1 addi 27,27,64 + addze 25,25 + cmplw 0,24,25 fmr 12,0 - fmul 24,24,12 - fmul 23,23,12 - fmul 22,22,12 + fmul 28,28,12 + fmul 27,27,12 + fmul 26,26,12 lfd 12,-32(27) - fadd 10,12,24 + fadd 10,12,28 lfd 12,-24(27) - fadd 11,12,23 + fadd 11,12,27 lfd 12,-16(27) stfd 10,-32(27) - fadd 12,12,22 + fadd 12,12,26 stfd 11,-24(27) stfd 12,-16(27) - cmplw 0,22,27 - bne+ 0,.L143 - mr 9,24 - mtctr 25 -.L140: + bne+ 0,.L159 + cmplw 0,26,23 + bne+ 0,.L159 + mr 9,22 + mtctr 26 +.L156: lfd 12,32(9) addi 9,9,64 lfd 9,-64(9) fmul 10,12,0 lfd 12,-24(9) - fadd 10,9,10 - lfd 9,-56(9) fmul 11,12,0 lfd 12,-16(9) - stfd 10,-64(9) + fadd 10,9,10 + lfd 9,-56(9) + fmul 12,12,0 fadd 11,9,11 lfd 9,-48(9) - fmul 12,12,0 - stfd 11,-56(9) + stfd 10,-64(9) fadd 12,9,12 + stfd 11,-56(9) stfd 12,-48(9) - bdnz .L140 + bdnz .L156 addic 20,20,1 addze 19,19 cmplw 0,18,19 - bne+ 0,.L138 + bne+ 0,.L150 cmplw 0,17,20 - bne+ 0,.L138 - andi. 9,25,0x1 + bne+ 0,.L150 lfs 0,0(16) - addi 9,24,32 - addi 10,25,-1 + andi. 9,26,0x1 + addi 10,26,-1 + addi 9,22,32 stfd 0,8(1) - beq- 0,.L152 - lfd 0,0(9) + beq- 0,.L168 cmpwi 0,10,0 + lfd 0,0(9) lfd 11,8(9) lfd 12,16(9) - addi 9,24,96 + addi 9,22,96 fadd 0,0,11 fadd 0,0,12 lfd 12,8(1) fadd 0,12,0 stfd 0,8(1) - beq- 0,.L157 -.L152: - srwi 10,25,1 + beq- 0,.L174 +.L168: + srwi 10,26,1 mtctr 10 -.L144: - lfd 12,8(9) +.L160: + lfd 11,8(9) mr 10,9 addi 9,9,128 lfd 0,-128(9) - lfd 10,-56(9) - lfd 9,-112(9) - fadd 0,0,12 + lfd 9,-56(9) lfd 12,-64(9) + lfd 10,-112(9) + fadd 0,0,11 lfd 11,80(10) - fadd 12,12,10 - lfd 10,8(1) - fadd 0,0,9 + fadd 12,12,9 + fadd 0,0,10 fadd 12,12,11 - fadd 0,10,0 + lfd 11,8(1) + fadd 0,11,0 fadd 0,0,12 stfd 0,8(1) - bdnz .L144 -.L157: - lwz 0,164(1) + bdnz .L160 +.L174: + lwz 0,132(1) lwz 3,8(1) lwz 4,12(1) + lfd 26,80(1) + .cfi_restore 58 mtlr 0 .cfi_restore 65 - lfd 22,80(1) - .cfi_restore 54 - lfd 23,88(1) - .cfi_restore 55 - lfd 24,96(1) - .cfi_restore 56 - lfd 25,104(1) - .cfi_restore 57 - lfd 26,112(1) - .cfi_restore 58 - lfd 27,120(1) + lfd 27,88(1) .cfi_restore 59 - lfd 28,128(1) + lfd 28,96(1) .cfi_restore 60 - lfd 29,136(1) + lfd 29,104(1) .cfi_restore 61 - lfd 30,144(1) + lfd 30,112(1) .cfi_restore 62 - lfd 31,152(1) + lfd 31,120(1) .cfi_restore 63 lwz 16,16(1) .cfi_restore 16 @@ -2210,10 +2233,10 @@ fb_physics: .cfi_restore 21 lwz 22,40(1) .cfi_restore 22 - lwz 24,48(1) - .cfi_restore 24 - lwz 26,56(1) - .cfi_restore 26 + lwz 23,44(1) + .cfi_restore 23 + lwz 25,52(1) + .cfi_restore 25 lwz 27,60(1) .cfi_restore 27 lwz 28,64(1) @@ -2222,59 +2245,59 @@ fb_physics: .cfi_restore 29 lwz 31,76(1) .cfi_restore 31 - lwz 23,44(1) - lwz 25,52(1) + lwz 24,48(1) + lwz 26,56(1) lwz 30,72(1) - addi 1,1,160 + addi 1,1,128 .cfi_restore 30 - .cfi_restore 25 - .cfi_restore 23 + .cfi_restore 26 + .cfi_restore 24 .cfi_def_cfa_offset 0 blr -.L146: - .cfi_def_cfa_offset 160 - .cfi_offset 17, -140 - .cfi_offset 18, -136 - .cfi_offset 23, -116 - .cfi_offset 25, -108 - .cfi_offset 30, -88 +.L162: + .cfi_def_cfa_offset 128 + .cfi_offset 17, -108 + .cfi_offset 18, -104 + .cfi_offset 24, -80 + .cfi_offset 26, -72 + .cfi_offset 30, -56 .cfi_offset 65, 4 - lwz 0,164(1) + lwz 0,132(1) mr 3,7 mr 4,8 lwz 17,20(1) .cfi_restore 17 lwz 18,24(1) .cfi_restore 18 + lwz 24,48(1) mtlr 0 .cfi_restore 65 - lwz 23,44(1) - lwz 25,52(1) + lwz 26,56(1) lwz 30,72(1) - addi 1,1,160 + addi 1,1,128 .cfi_restore 30 - .cfi_restore 25 - .cfi_restore 23 + .cfi_restore 26 + .cfi_restore 24 .cfi_def_cfa_offset 0 blr -.L145: - .cfi_def_cfa_offset 160 - .cfi_offset 23, -116 - .cfi_offset 25, -108 - .cfi_offset 30, -88 +.L161: + .cfi_def_cfa_offset 128 + .cfi_offset 24, -80 + .cfi_offset 26, -72 + .cfi_offset 30, -56 .cfi_offset 65, 4 - lwz 0,164(1) + lwz 0,132(1) mr 3,5 mr 4,6 - lwz 23,44(1) - lwz 25,52(1) + lwz 24,48(1) + lwz 26,56(1) + lwz 30,72(1) mtlr 0 .cfi_restore 65 - lwz 30,72(1) - addi 1,1,160 + addi 1,1,128 .cfi_restore 30 - .cfi_restore 25 - .cfi_restore 23 + .cfi_restore 26 + .cfi_restore 24 .cfi_def_cfa_offset 0 blr .cfi_endproc @@ -2284,184 +2307,187 @@ fb_physics: .type fb_sort, @function fb_sort: .cfi_startproc - cmpwi 0,5,0 - beq- 0,.L198 -.L162: + mr. 11,5 + beq- 0,.L217 +.L181: stwu 1,-48(1) .cfi_def_cfa_offset 48 srwi 10,6,1 - slwi 9,5,31 + slwi 9,11,31 add 9,9,10 - stw 27,28(1) - .cfi_offset 27, -20 - srwi 27,5,1 - slwi 10,27,1 stw 26,24(1) .cfi_offset 26, -24 - srwi 26,9,31 + srwi 26,11,1 + slwi 10,26,1 + stw 25,20(1) + .cfi_offset 25, -28 + srwi 25,9,31 + stw 27,28(1) + .cfi_offset 27, -20 + addic 27,9,-1 + slwi 9,9,1 + stw 29,36(1) + addme 26,26 + add 25,25,10 + stw 31,44(1) stw 28,32(1) + .cfi_offset 29, -12 + .cfi_offset 31, -4 .cfi_offset 28, -16 addic 28,9,-1 - slwi 9,9,1 - stw 31,44(1) - addme 27,27 - add 26,26,10 - stw 29,36(1) - .cfi_offset 31, -4 - .cfi_offset 29, -12 - addic 29,9,-1 - addme 26,26 -.L193: - cmplw 0,5,26 - ble- 0,.L199 -.L189: - slwi 9,28,2 - mr 7,26 - lwzx 31,3,9 - mr 4,29 - mr 9,27 - mr 0,28 -.L172: - addic 10,0,1 - slwi 8,4,2 - addze 9,9 - srwi 11,10,31 - lwzx 12,3,8 - slwi 9,9,1 - add 8,3,8 - add 9,11,9 - slwi 10,10,1 - cmplw 0,5,9 - mr 11,8 - bgt- 0,.L168 - bne- 0,.L171 - cmplw 0,6,10 - ble- 0,.L171 -.L168: - lwz 8,4(8) - cmplw 0,8,12 - ble- 0,.L171 - slwi 11,10,2 - lwzx 12,3,11 - add 11,3,11 -.L170: - cmplw 0,31,12 - bge- 0,.L166 - slwi 8,10,1 - srwi 7,10,31 - addic 4,8,1 - slwi 8,9,1 - adde 7,7,8 - slwi 0,0,2 - cmplw 0,5,7 - stwx 12,3,0 - stw 31,0(11) - ble- 0,.L200 -.L187: - mr 0,10 - b .L172 -.L200: - bne- 0,.L166 - cmplw 0,6,4 - bgt+ 0,.L187 -.L166: - addic 28,28,-1 - addme 27,27 - addic 29,29,-2 - cmpwi 0,27,-1 - addme 26,26 - bne+ 0,.L193 - cmpwi 0,28,-1 - bne+ 0,.L193 - addic 28,6,-1 - addi 9,3,4 - addme 31,5 - slwi 27,28,2 - cmpwi 0,31,0 - add 27,27,9 - lwz 9,0(3) - lwzu 10,-4(27) - stw 10,0(3) - stw 9,0(27) - beq- 0,.L201 -.L190: - lwz 29,0(3) - li 7,0 - li 4,1 - li 9,0 - li 11,0 -.L183: - addic 10,11,1 - slwi 8,4,2 - addze 9,9 - srwi 0,10,31 - lwzx 26,3,8 - slwi 9,9,1 - add 8,3,8 - add 9,0,9 - slwi 10,10,1 - cmplw 0,31,9 - mr 12,8 - bgt- 0,.L177 - bne- 0,.L180 - cmplw 0,28,10 - ble- 0,.L180 -.L177: - lwz 8,4(8) - cmplw 0,8,26 - ble- 0,.L180 - slwi 12,10,2 - lwzx 26,3,12 - add 12,3,12 -.L179: - cmplw 0,29,26 - bge- 0,.L181 - slwi 8,10,1 - srwi 7,10,31 - addic 4,8,1 - slwi 8,9,1 - adde 7,7,8 - slwi 11,11,2 - cmplw 0,31,7 - stwx 26,3,11 - stw 29,0(12) - ble- 0,.L202 + addme 25,25 +.L212: + cmplw 0,11,25 + ble- 0,.L218 +.L208: + slwi 9,27,2 + mr 8,25 + mr 10,28 + lwzx 29,3,9 + mr 5,27 + mr 9,26 .L191: - mr 11,10 - b .L183 -.L202: - bne- 0,.L181 - cmplw 0,28,4 - bgt+ 0,.L191 -.L181: - addic 28,28,-1 + addic 0,5,1 + slwi 7,10,2 + addze 9,9 + srwi 12,0,31 + add 31,3,7 + slwi 9,9,1 + lwzx 4,3,7 + slwi 0,0,1 + add 9,12,9 + mr 12,31 + cmplw 0,11,9 + bgt- 0,.L187 + bne- 0,.L190 + cmplw 0,6,0 + ble- 0,.L190 +.L187: + lwz 7,4(31) + cmplw 0,7,4 + ble- 0,.L190 + slwi 12,0,2 + lwzx 4,3,12 + add 12,3,12 +.L189: + cmplw 0,29,4 + bge- 0,.L185 + slwi 10,0,1 + srwi 8,0,31 + slwi 7,9,1 + addic 10,10,1 + slwi 5,5,2 + adde 8,8,7 + stwx 4,3,5 + cmplw 0,11,8 + stw 29,0(12) + ble- 0,.L219 +.L206: + mr 5,0 + b .L191 +.L219: + bne- 0,.L185 + cmplw 0,6,10 + bgt+ 0,.L206 +.L185: + addic 27,27,-1 + addme 26,26 + addic 28,28,-2 + cmpwi 0,26,-1 + addme 25,25 + bne+ 0,.L212 + cmpwi 0,27,-1 + bne+ 0,.L212 + addic 27,6,-1 + addi 9,3,4 + slwi 26,27,2 + addme 29,11 + add 26,26,9 + cmpwi 0,29,0 lwz 9,0(3) - addme 31,31 - lwzu 10,-4(27) - cmpwi 0,31,0 + lwzu 10,-4(26) stw 10,0(3) - stw 9,0(27) - bne+ 0,.L190 -.L201: - cmplwi 0,28,1 - bne+ 0,.L190 + stw 9,0(26) + beq- 0,.L220 +.L209: + lwz 28,0(3) + li 7,0 + li 8,1 + li 9,0 + li 4,0 +.L202: + addic 10,4,1 + slwi 5,8,2 + addze 9,9 + srwi 12,10,31 + add 31,3,5 + slwi 9,9,1 + lwzx 0,3,5 + slwi 10,10,1 + add 9,12,9 + mr 12,31 + cmplw 0,29,9 + bgt- 0,.L196 + bne- 0,.L199 + cmplw 0,27,10 + ble- 0,.L199 +.L196: + lwz 5,4(31) + cmplw 0,5,0 + ble- 0,.L199 + slwi 12,10,2 + lwzx 0,3,12 + add 12,3,12 +.L198: + cmplw 0,28,0 + bge- 0,.L200 + slwi 8,10,1 + srwi 7,10,31 + slwi 5,9,1 + addic 8,8,1 + slwi 4,4,2 + adde 7,7,5 + stwx 0,3,4 + cmplw 0,29,7 + stw 28,0(12) + ble- 0,.L221 +.L210: + mr 4,10 + b .L202 +.L221: + bne- 0,.L200 + cmplw 0,27,8 + bgt+ 0,.L210 +.L200: + addic 27,27,-1 + lwz 9,0(3) + addme 29,29 + lwzu 10,-4(26) + cmpwi 0,29,0 + stw 10,0(3) + stw 9,0(26) + bne+ 0,.L209 +.L220: + cmplwi 0,27,1 + bne+ 0,.L209 addi 9,3,-4 li 4,0 li 3,0 -.L184: - srwi 7,4,7 +.L203: lwzu 8,4(9) + srwi 7,4,7 slwi 10,3,25 add 10,10,7 srwi 3,3,7 - xor 10,8,10 slwi 7,4,25 + xor 10,8,10 addc 4,8,10 adde 3,7,3 addic 6,6,-1 - addme 5,5 - or. 10,5,6 - bne+ 0,.L184 + addme 11,11 + or. 10,11,6 + bne+ 0,.L203 + lwz 25,20(1) lwz 26,24(1) lwz 27,28(1) lwz 28,32(1) @@ -2474,37 +2500,39 @@ fb_sort: .cfi_restore 28 .cfi_restore 27 .cfi_restore 26 + .cfi_restore 25 .cfi_def_cfa_offset 0 blr -.L171: +.L190: .cfi_restore_state - mr 9,7 - mr 10,4 - b .L170 -.L180: - mr 9,7 - mr 10,4 - b .L179 + mr 9,8 + mr 0,10 + b .L189 .L199: - bne- 0,.L166 - cmplw 0,6,29 - bgt+ 0,.L189 - b .L166 -.L198: + mr 9,7 + mr 10,8 + b .L198 +.L218: + bne- 0,.L185 + cmplw 0,6,28 + bgt+ 0,.L208 + b .L185 +.L217: .cfi_def_cfa_offset 0 + .cfi_restore 25 .cfi_restore 26 .cfi_restore 27 .cfi_restore 28 .cfi_restore 29 .cfi_restore 31 cmplwi 0,6,1 - bgt+ 0,.L162 + bgt+ 0,.L181 cmpwi 0,6,0 - bne- 0,.L203 + bne- 0,.L222 li 3,0 li 4,0 blr -.L203: +.L222: lwz 4,0(3) li 3,0 blr @@ -2516,18 +2544,18 @@ fb_sort: fb_chase: .cfi_startproc or. 9,5,6 - beq- 0,.L208 + beq- 0,.L227 mr 4,3 -.L207: +.L226: addic 6,6,-1 lwz 4,0(4) addme 5,5 or. 10,5,6 - bne+ 0,.L207 + bne+ 0,.L226 subf 4,3,4 li 3,0 blr -.L208: +.L227: mr 3,5 mr 4,6 blr @@ -2536,25 +2564,31 @@ fb_chase: .section .rodata.cst4,"aM",@progbits,4 .align 2 .LC1: - .long 1073741824 - .align 2 -.LC4: - .long 1070342144 - .align 2 -.LC7: .long 1056964608 .align 2 +.LC4: + .long 1080033280 + .align 2 +.LC7: + .long 1075838976 + .align 2 .LC10: - .long 1065877504 + .long 1069547520 .align 2 .LC13: - .long 981467136 + .long 1065877504 .align 2 .LC16: + .long 981467136 + .align 2 +.LC19: + .long 1073741824 + .align 2 +.LC22: .long 1065353216 .section .rodata.cst16,"aM",@progbits,16 .align 4 -.LC30: +.LC36: .byte 3 .byte 2 .byte 1 @@ -2572,13 +2606,13 @@ fb_chase: .byte 13 .byte 12 .align 4 -.LC32: +.LC38: .long 1634760805 .long 857760878 .long 2036477234 .long 1797285236 .align 4 -.LC34: +.LC40: .byte 0 .byte 2 .byte 4 @@ -2596,32 +2630,32 @@ fb_chase: .byte 28 .byte 30 .align 4 -.LC36: +.LC42: .long 1634760805 .long 1634760805 .long 857760878 .long 857760878 .align 4 -.LC38: +.LC44: .long 16 .long 24 .long 16 .long 24 .align 4 -.LC40: +.LC46: .long 2036477234 .long 2036477234 .long 1797285236 .long 1797285236 .section .rodata.cst4 .align 2 -.LC43: +.LC49: .long 0 .align 2 -.LC46: +.LC52: .long 1031798784 .align 2 -.LC50: +.LC56: .long 1006632960 .section .rodata .align 4 diff --git a/src/kernels/fossbench-ppc64be.S b/src/kernels/fossbench-ppc64be.S index 61351c1..11dd563 100644 --- a/src/kernels/fossbench-ppc64be.S +++ b/src/kernels/fossbench-ppc64be.S @@ -1,6 +1,3 @@ -/* fossbench-ppc64be.S - 64-bit big-endian PowerPC benchmark kernels. - * ELFv1 ABI; tuned for the PowerPC 970 baseline selected by the Makefile. - * All nine public kernels live in this translation unit. */ .file "fossbench-ppc64be.S" .machine power4 .machine altivec @@ -97,209 +94,215 @@ fb_fp_math: .type fb_fp_math, @function .L.fb_fp_math: .cfi_startproc - std 27,-112(1) - .cfi_offset 27, -112 - mr. 27,3 - stdu 1,-256(1) - .cfi_def_cfa_offset 256 - beq 0,.L18 - mflr 0 - .cfi_register 65, 0 + cmpdi 0,3,0 + beq 0,.L28 + addis 10,2,.LC20@toc@ha addis 9,2,.LC6@toc@ha - stfd 30,240(1) - .cfi_offset 62, -16 - stfd 29,232(1) - .cfi_offset 61, -24 - std 25,128(1) - .cfi_offset 25, -128 - std 26,136(1) - .cfi_offset 26, -120 - addis 25,2,.LC12@toc@ha - addis 26,2,.LC18@toc@ha - lfs 30,.LC6@toc@l(9) - std 28,152(1) - .cfi_offset 28, -104 + stdu 1,-240(1) + .cfi_def_cfa_offset 240 + addis 5,2,.LC18@toc@ha + addi 10,10,.LC20@toc@l + lfs 12,.LC6@toc@l(9) addis 9,2,.LC8@toc@ha - std 29,160(1) - .cfi_offset 29, -96 - std 30,168(1) - .cfi_offset 30, -88 - stfd 23,184(1) - .cfi_offset 55, -72 - std 31,176(1) - .cfi_offset 31, -80 - lfs 29,.LC8@toc@l(9) + lfs 6,.LC18@toc@l(5) + addis 5,2,.LC22@toc@ha + lfs 4,0(10) + addis 6,2,.LC16@toc@ha + addis 7,2,.LC18@toc@ha + lfs 9,.LC8@toc@l(9) addis 9,2,.LC10@toc@ha - stfd 27,216(1) - .cfi_offset 59, -40 - addis 28,2,.LC6@toc@ha - addis 29,2,.LC14@toc@ha - stfd 31,248(1) - .cfi_offset 63, -8 - std 0,272(1) - .cfi_offset 65, 16 - lfs 23,.LC10@toc@l(9) - addis 30,2,.LC16@toc@ha - stfd 24,192(1) - .cfi_offset 56, -64 + lfs 2,.LC22@toc@l(5) + addis 8,2,.LC22@toc@ha + addi 6,6,.LC16@toc@l + addi 7,7,.LC18@toc@l + lfs 0,.LC10@toc@l(9) addis 9,2,.LC12@toc@ha - stfd 25,200(1) - .cfi_offset 57, -56 - stfd 26,208(1) - .cfi_offset 58, -48 - stfd 28,224(1) - .cfi_offset 60, -32 - li 31,0 - addi 25,25,.LC12@toc@l - lfs 27,.LC12@toc@l(9) - fmr 31,30 - addi 28,28,.LC6@toc@l - addi 29,29,.LC14@toc@l - addi 30,30,.LC16@toc@l - addi 26,26,.LC18@toc@l - b .L17 + addi 8,8,.LC22@toc@l + lfs 11,.LC12@toc@l(9) + addis 9,2,.LC16@toc@ha + fmr 7,4 + fmr 3,4 + lfs 5,.LC16@toc@l(9) + addis 9,2,.LC14@toc@ha + addi 9,9,.LC14@toc@l .p2align 4,,15 -.L25: - lfs 24,0(29) - lfs 26,0(30) - lfs 25,0(28) - fmul 1,28,24 - fmul 29,29,24 - fmr 2,25 - fmul 31,31,24 - fadd 1,1,26 - bl fmin - nop - fmr 2,25 - fmr 30,1 - fadd 1,29,26 - bl fmin - nop - fmr 2,25 - fmr 29,1 - fadd 1,31,26 - bl fmin - nop - fmr 31,1 -.L17: - fcmpu 0,29,27 - blt 0,.L21 - fsqrt 28,29 -.L12: - lfs 0,0(29) - lfs 12,0(30) - fadd 28,28,30 - lfs 2,0(28) - fmul 1,23,0 - fadd 1,1,12 - bl fmin - nop - lfs 12,0(25) - fmr 26,1 - fcmpu 0,31,12 - blt 0,.L22 - fsqrt 1,31 +.L27: + fmul 10,11,5 + fmul 0,0,5 + fmul 11,9,5 + fmr 8,7 + fadd 10,10,6 + fadd 9,0,6 + fadd 11,11,6 + fcmpu 0,10,7 + bnl 0,.L11 + fmr 8,10 +.L11: + fcmpu 0,9,3 + fmr 0,7 + bnl 0,.L13 + fmr 0,9 +.L13: + fcmpu 0,11,4 + fmr 9,7 + bnl 0,.L15 + fmr 9,11 +.L15: + fcmpu 0,8,2 + blt 0,.L37 + fsqrt 11,8 +.L18: + lfs 10,0(8) + fadd 9,9,11 + fcmpu 0,0,10 + blt 0,.L38 + lfs 10,0(6) + lfs 1,0(7) + lfs 11,0(10) + fmul 12,12,10 + fmr 13,11 + fadd 12,12,1 + fcmpu 0,12,13 + bnl 0,.L22 + fmr 11,12 +.L22: + fsqrt 10,0 + lfs 12,0(9) + fmr 13,12 + fadd 10,10,11 + fcmpu 0,10,13 + bng 0,.L24 + fmr 12,10 .L24: - lfs 30,0(26) - fadd 1,26,1 - addi 31,31,1 - fmr 2,30 - fabs 1,1 - bl fmax - nop - fadd 0,28,30 - cmpld 0,27,31 - fadd 12,1,30 - fmr 23,1 - fdiv 0,30,0 - fdiv 30,30,12 - fadd 29,0,29 - fadd 31,30,31 - bne 0,.L25 - fadd 31,31,29 - ld 0,272(1) - lfd 23,184(1) - .cfi_restore 55 - lfd 24,192(1) - .cfi_restore 56 - lfd 25,200(1) - .cfi_restore 57 - lfd 26,208(1) - .cfi_restore 58 - lfd 27,216(1) - .cfi_restore 59 - lfd 29,232(1) - .cfi_restore 61 - lfd 30,240(1) - .cfi_restore 62 - mtlr 0 - .cfi_restore 65 - ld 25,128(1) - .cfi_restore 25 - ld 26,136(1) - .cfi_restore 26 - ld 28,152(1) - .cfi_restore 28 - ld 29,160(1) - .cfi_restore 29 - fadd 31,31,28 - ld 30,168(1) - .cfi_restore 30 - lfd 28,224(1) - .cfi_restore 60 - ld 31,176(1) - .cfi_restore 31 - fadd 0,31,1 - lfd 31,248(1) - .cfi_restore 63 + lfs 11,0(9) + addic. 3,3,-1 + fadd 10,12,11 + fadd 13,9,11 + fdiv 10,11,10 + fdiv 11,11,13 + fadd 0,10,0 + fadd 11,11,8 + bne 0,.L27 +.L26: + fadd 0,0,11 + fadd 0,0,9 + fadd 0,0,12 stfd 0,112(1) ld 3,112(1) - addi 1,1,256 + addi 1,1,240 .cfi_def_cfa_offset 0 - ld 27,-112(1) - .cfi_restore 27 blr .p2align 4,,15 -.L18: - .cfi_def_cfa_offset 256 - .cfi_offset 27, -112 - addi 1,1,256 - .cfi_def_cfa_offset 0 +.L28: li 3,0 - ld 27,-112(1) - .cfi_restore 27 blr -.L22: - .cfi_def_cfa_offset 256 - .cfi_offset 25, -128 - .cfi_offset 26, -120 - .cfi_offset 27, -112 - .cfi_offset 28, -104 - .cfi_offset 29, -96 - .cfi_offset 30, -88 - .cfi_offset 31, -80 - .cfi_offset 55, -72 - .cfi_offset 56, -64 - .cfi_offset 57, -56 - .cfi_offset 58, -48 - .cfi_offset 59, -40 - .cfi_offset 60, -32 - .cfi_offset 61, -24 - .cfi_offset 62, -16 - .cfi_offset 63, -8 +.L38: + .cfi_def_cfa_offset 240 + mflr 0 + .cfi_register 65, 0 + fmr 1,0 + std 9,208(1) + std 10,176(1) + stfd 8,152(1) + std 3,128(1) + stfd 9,120(1) + stfd 0,112(1) + std 0,256(1) .cfi_offset 65, 16 - fmr 1,31 + std 7,224(1) + std 6,216(1) + stfd 4,200(1) + stfd 3,192(1) + std 8,184(1) + stfd 7,168(1) + stfd 2,160(1) + stfd 6,144(1) + stfd 5,136(1) bl sqrt nop - b .L24 -.L21: - fmr 1,29 + ld 9,208(1) + addis 10,2,.LC6@toc@ha + lfd 0,112(1) + lfd 9,120(1) + ld 3,128(1) + lfs 10,.LC6@toc@l(10) + lfd 8,152(1) + lfs 12,0(9) + addic. 3,3,-1 + fadd 0,0,10 + fmr 11,12 + fadd 10,9,11 + fdiv 11,11,10 + fadd 11,11,8 + beq 0,.L43 + ld 0,256(1) + lfd 5,136(1) + lfd 6,144(1) + lfd 2,160(1) + lfd 7,168(1) + lfd 3,192(1) + lfd 4,200(1) + ld 10,176(1) + mtlr 0 + .cfi_restore 65 + ld 8,184(1) + ld 6,216(1) + ld 7,224(1) + b .L27 +.L37: + mflr 0 + .cfi_register 65, 0 + fmr 1,8 + std 7,232(1) + std 6,224(1) + std 9,216(1) + stfd 4,208(1) + stfd 3,200(1) + std 8,192(1) + std 0,256(1) + .cfi_offset 65, 16 + std 10,184(1) + stfd 7,176(1) + stfd 2,168(1) + stfd 9,160(1) + stfd 0,152(1) + stfd 6,144(1) + stfd 5,136(1) + std 3,128(1) + stfd 12,120(1) + stfd 8,112(1) bl sqrt nop - fmr 28,1 - b .L12 + ld 0,256(1) + lfd 4,208(1) + fmr 11,1 + lfd 3,200(1) + lfd 7,176(1) + lfd 2,168(1) + lfd 9,160(1) + lfd 0,152(1) + lfd 6,144(1) + mtlr 0 + .cfi_remember_state + .cfi_restore 65 + lfd 5,136(1) + lfd 12,120(1) + lfd 8,112(1) + ld 7,232(1) + ld 6,224(1) + ld 9,216(1) + ld 8,192(1) + ld 10,184(1) + ld 3,128(1) + b .L18 +.L43: + .cfi_restore_state + ld 0,256(1) + mtlr 0 + .cfi_restore 65 + b .L26 .long 0 - .byte 0,0,2,1,137,7,0,0 + .byte 0,0,0,1,128,0,0,0 .cfi_endproc .size fb_fp_math,.-.L.fb_fp_math .align 2 @@ -314,7 +317,7 @@ fb_primes: .L.fb_primes: .cfi_startproc cmpldi 0,3,1 - ble 0,.L46 + ble 0,.L64 mflr 0 mr 8,4 mr 5,3 @@ -333,44 +336,44 @@ fb_primes: sth 9,0(3) addi 6,5,-1 cmpldi 0,6,3 - ble 0,.L28 + ble 0,.L46 li 10,2 li 7,1 - b .L31 + b .L49 .p2align 4,,15 -.L29: +.L47: addi 10,10,1 divdu 9,6,10 cmpld 0,9,10 - blt 0,.L32 -.L31: + blt 0,.L50 +.L49: lbzx 9,8,10 cmpwi 0,9,0 - bne 0,.L29 + bne 0,.L47 mulld 9,10,10 cmpld 0,9,5 - bge 0,.L29 + bge 0,.L47 .p2align 4,,15 -.L30: +.L48: stbx 7,8,9 add 9,9,10 cmpld 0,5,9 - bgt 0,.L30 + bgt 0,.L48 addi 10,10,1 divdu 9,6,10 cmpld 0,9,10 - bge 0,.L31 -.L32: + bge 0,.L49 +.L50: andi. 9,5,0x1 addi 8,8,1 li 3,0 li 6,0 addi 9,5,-2 - bne 0,.L49 -.L39: + bne 0,.L67 +.L57: srdi 9,9,1 mtctr 9 -.L34: +.L52: lbz 10,1(8) lbz 9,2(8) addi 8,8,2 @@ -380,8 +383,8 @@ fb_primes: srwi 9,9,5 add 3,3,10 add 6,6,9 - bdnz .L34 -.L43: + bdnz .L52 +.L61: addi 1,1,112 .cfi_remember_state .cfi_def_cfa_offset 0 @@ -391,25 +394,25 @@ fb_primes: .cfi_restore 65 blr .p2align 4,,15 -.L49: +.L67: .cfi_restore_state lbzu 3,1(8) cmpdi 0,5,3 cntlzw 3,3 srwi 3,3,5 - bne 0,.L39 - b .L43 + bne 0,.L57 + b .L61 .p2align 4,,15 -.L46: +.L64: .cfi_def_cfa_offset 0 .cfi_restore 65 li 3,0 blr -.L28: +.L46: .cfi_def_cfa_offset 112 .cfi_offset 65, 16 cmpldi 0,5,2 - bne 0,.L32 + bne 0,.L50 addi 1,1,112 .cfi_def_cfa_offset 0 li 3,0 @@ -451,17 +454,17 @@ fb_simd: std 5,8(10) lvx 1,6,8 lvx 0,6,7 - beq 0,.L57 + beq 0,.L75 vadduwm 0,0,1 cmpdi 0,11,0 vxor 1,0,1 vadduwm 0,0,1 vxor 1,1,0 - beq 0,.L62 -.L57: + beq 0,.L80 +.L75: srdi 8,3,1 mtctr 8 -.L52: +.L70: vadduwm 0,0,1 vxor 1,0,1 vadduwm 0,0,1 @@ -470,8 +473,8 @@ fb_simd: vxor 1,0,1 vadduwm 0,0,1 vxor 1,1,0 - bdnz .L52 -.L62: + bdnz .L70 +.L80: addi 7,1,-144 li 8,64 addi 11,1,-144 @@ -547,7 +550,7 @@ fb_compress: cmpldi 0,30,15 addi 9,30,1 mtlr 9 - ble 0,.L64 + ble 0,.L82 lis 4,0x9e37 mr 6,3 addi 0,30,-12 @@ -556,31 +559,31 @@ fb_compress: ori 4,4,0x79b1 li 9,0 .p2align 4,,15 -.L71: +.L89: lwzx 7,31,9 mullw 10,7,4 rlwinm 10,10,18,14,29 lwzx 8,6,10 stwx 9,6,10 cmpld 0,8,9 - bge 0,.L66 + bge 0,.L84 subf 10,8,9 cmpldi 0,10,65535 - bgt 0,.L66 + bgt 0,.L84 lwzx 10,31,8 add 8,31,8 cmpw 0,10,7 - beq 0,.L91 -.L66: + beq 0,.L109 +.L84: addi 9,9,1 -.L69: +.L87: cmpld 0,9,0 - blt 0,.L71 + blt 0,.L89 mflr 9 add 11,11,9 subf 9,3,11 mtlr 9 -.L64: +.L82: mflr 3 addi 1,1,144 .cfi_remember_state @@ -594,12 +597,12 @@ fb_compress: .cfi_restore 30 blr .p2align 4,,15 -.L91: +.L109: .cfi_restore_state addi 10,9,4 li 7,4 cmpld 0,30,10 - ble 0,.L86 + ble 0,.L104 std 29,120(1) .cfi_offset 29, -24 lbzx 5,31,10 @@ -610,40 +613,40 @@ fb_compress: add 5,5,30 cmpw 0,29,12 rldicl 12,5,0,63 - bne 0,.L87 + bne 0,.L105 addi 10,9,5 li 7,5 cmpld 0,10,30 - bge 0,.L87 + bge 0,.L105 cmpdi 0,12,0 - bne 0,.L92 -.L80: + bne 0,.L110 +.L98: srdi 5,5,1 mtctr 5 - b .L67 + b .L85 .p2align 4,,15 -.L70: +.L88: addi 7,7,1 addi 10,10,1 lbzx 5,8,7 lbzx 12,31,10 cmpw 0,12,5 - bne 0,.L87 + bne 0,.L105 addi 7,7,1 addi 10,10,1 - bdz .L87 -.L67: + bdz .L105 +.L85: lbzx 12,31,10 lbzx 5,8,7 cmpw 0,12,5 - beq 0,.L70 -.L87: + beq 0,.L88 +.L105: subfic 7,7,18 ld 29,120(1) .cfi_restore 29 subfe 8,8,8 neg 8,8 -.L68: +.L86: subf 9,3,9 addi 11,11,3 mr 3,10 @@ -653,23 +656,23 @@ fb_compress: subfe 10,10,10 subf 11,10,11 add 11,11,8 - b .L69 + b .L87 .p2align 4,,15 -.L92: +.L110: .cfi_offset 29, -24 lbzx 29,31,10 lbzx 12,8,7 cmpw 0,29,12 - bne 0,.L87 + bne 0,.L105 addi 10,9,6 li 7,6 cmpld 0,10,30 - blt 0,.L80 - b .L87 -.L86: + blt 0,.L98 + b .L105 +.L104: .cfi_restore 29 li 8,0 - b .L68 + b .L86 .long 0 .byte 0,0,0,1,128,3,0,0 .cfi_endproc @@ -690,7 +693,7 @@ fb_chacha20: rldicr. 4,4,0,57 beqlr 0 cmpdi 0,6,0 - beq 0,.L101 + beq 0,.L119 mflr 0 std 18,-112(1) std 20,-96(1) @@ -744,11 +747,11 @@ fb_chacha20: li 11,0 ld 28,0(9) ld 29,8(9) - addis 9,2,.LC26@toc@ha + addis 9,2,.LC32@toc@ha li 18,0 li 22,160 li 23,48 - addi 9,9,.LC26@toc@l + addi 9,9,.LC32@toc@l li 20,80 vspltish 8,8 stvx 23,1,0 @@ -795,42 +798,42 @@ fb_chacha20: std 9,320(1) li 9,0 mtlr 3 - addis 3,2,.LC27@toc@ha - addi 3,3,.LC27@toc@l + addis 3,2,.LC33@toc@ha + addi 3,3,.LC33@toc@l lvsr 1,0,31 std 3,328(1) - addis 3,2,.LC28@toc@ha + addis 3,2,.LC34@toc@ha stw 0,164(1) std 11,168(1) std 7,736(1) std 6,760(1) stw 5,396(1) - addi 3,3,.LC28@toc@l + addi 3,3,.LC34@toc@l vperm 5,5,6,1 vperm 6,6,13,1 std 3,336(1) - addis 3,2,.LC29@toc@ha + addis 3,2,.LC35@toc@ha vperm 5,5,5,0 vperm 6,6,6,0 - addi 3,3,.LC29@toc@l + addi 3,3,.LC35@toc@l vor 3,5,5 std 3,344(1) - addis 3,2,.LC30@toc@ha + addis 3,2,.LC36@toc@ha stvx 5,1,10 vor 4,6,6 stvx 6,1,4 - addi 3,3,.LC30@toc@l + addi 3,3,.LC36@toc@l std 3,352(1) - addis 3,2,.LC31@toc@ha - addi 3,3,.LC31@toc@l + addis 3,2,.LC37@toc@ha + addi 3,3,.LC37@toc@l std 3,360(1) -.L95: +.L113: std 9,384(1) stw 8,392(1) mr 14,8 ld 12,736(1) .p2align 4,,15 -.L99: +.L117: li 9,112 mr 25,14 addi 14,14,1 @@ -866,7 +869,7 @@ fb_chacha20: lwz 3,104(1) lwz 4,108(1) .p2align 4,,15 -.L96: +.L114: add 30,30,5 add 31,31,6 add 0,7,0 @@ -963,7 +966,7 @@ fb_chacha20: rotlwi 6,6,7 rotlwi 7,7,7 rotlwi 9,9,7 - bdnz .L96 + bdnz .L114 andi. 24,12,0xf stw 30,48(1) stw 4,108(1) @@ -981,7 +984,7 @@ fb_chacha20: stw 3,104(1) stw 26,84(1) stw 5,64(1) - bne 0,.L97 + bne 0,.L115 ld 9,328(1) lvx 1,1,23 li 8,64 @@ -1083,11 +1086,11 @@ fb_chacha20: li 9,32 stvx 13,12,9 stvx 0,12,23 -.L98: +.L116: ld 9,320(1) addi 12,12,64 cmpld 0,9,12 - bne 0,.L99 + bne 0,.L117 lwz 10,396(1) lwz 8,392(1) ld 9,384(1) @@ -1095,7 +1098,7 @@ fb_chacha20: ld 10,760(1) addi 9,9,1 cmpld 0,10,9 - bne 0,.L95 + bne 0,.L113 li 0,-288 addi 1,1,688 .cfi_def_cfa_offset 0 @@ -1166,11 +1169,11 @@ fb_chacha20: .cfi_restore 101 .cfi_restore 100 blr -.L101: +.L119: li 3,0 blr .p2align 4,,15 -.L97: +.L115: .cfi_def_cfa_offset 688 .cfi_offset 14, -144 .cfi_offset 15, -136 @@ -1514,7 +1517,7 @@ fb_chacha20: xor 9,9,7 stb 10,63(12) xor 18,9,8 - b .L98 + b .L116 .long 0 .byte 0,0,0,1,128,18,0,0 .cfi_endproc @@ -1530,58 +1533,65 @@ fb_physics: .type fb_physics, @function .L.fb_physics: .cfi_startproc - mr. 8,4 - beq 0,.L121 + cmpdi 0,4,0 + beq 0,.L140 cmpdi 0,5,0 - mr 7,3 + std 31,-8(1) + .cfi_offset 31, -8 + mr 0,3 + mr 31,5 li 3,0 - beqlr 0 - addis 10,2,.LC12@toc@ha - stfd 31,-8(1) - .cfi_offset 63, -8 - sldi 9,8,6 - addis 4,2,.LC42@toc@ha - lfs 0,.LC12@toc@l(10) - addis 10,2,.LC40@toc@ha - add 6,7,9 - addi 4,4,.LC42@toc@l - lfs 31,.LC40@toc@l(10) - addis 10,2,.LC18@toc@ha - lfs 1,.LC18@toc@l(10) + beq 0,.L131 + addis 9,2,.LC22@toc@ha + addis 3,2,.LC48@toc@ha + addis 12,2,.LC46@toc@ha + addis 11,2,.LC14@toc@ha + lfs 0,.LC22@toc@l(9) + li 5,0 + addi 3,3,.LC48@toc@l + addi 12,12,.LC46@toc@l + addi 11,11,.LC14@toc@l stfs 0,-32(1) .p2align 4,,15 -.L115: - mr 10,7 +.L133: + mr 7,0 + li 6,0 .p2align 4,,15 -.L119: - mtctr 8 +.L138: + mtctr 4 lfs 6,-32(1) - lfd 13,0(10) - lfd 2,8(10) - lfd 3,16(10) - mr 9,7 + mr 9,0 + mr 8,4 fmr 7,6 fmr 8,6 .p2align 4,,15 -.L116: +.L135: + subf 10,8,4 + addi 8,8,-1 + cmpld 0,6,10 + beq 0,.L134 + lfd 2,0(7) + lfd 3,8(7) lfd 10,0(9) lfd 11,8(9) - addi 9,9,64 - lfd 12,-48(9) - lfd 5,-40(9) - fsub 10,10,13 - fsub 11,11,2 - fsub 12,12,3 + lfd 0,16(7) + lfd 12,16(9) + lfs 4,0(12) + lfs 9,0(11) + lfd 5,24(9) + fsub 10,10,2 + fsub 11,11,3 + fsub 12,12,0 + fmul 2,11,11 fmul 0,10,10 - fmul 4,11,11 - fmul 9,12,12 + fmul 3,12,12 + fadd 0,0,2 + fadd 0,0,3 fadd 0,0,4 - fadd 0,0,9 - fadd 0,0,31 fsqrt 0,0 - fdiv 0,1,0 - fmul 9,0,0 - fmul 0,9,0 + fdiv 9,9,0 + fmul 0,9,9 + fmul 0,0,9 fmul 0,0,5 fmul 10,10,0 fmul 11,11,0 @@ -1589,12 +1599,16 @@ fb_physics: fadd 8,8,10 fadd 7,7,11 fadd 6,6,12 - bdnz .L116 - lfs 12,0(4) - lfd 9,32(10) - addi 10,10,64 - lfd 10,-24(10) - lfd 11,-16(10) +.L134: + addi 9,9,64 + bdnz .L135 + lfs 12,0(3) + lfd 9,32(7) + addi 6,6,1 + addi 7,7,64 + lfd 10,-24(7) + lfd 11,-16(7) + cmpld 0,4,6 fmr 0,12 fmul 8,8,0 fmul 7,7,0 @@ -1602,16 +1616,15 @@ fb_physics: fadd 9,9,8 fadd 10,10,7 fadd 0,11,0 - stfd 9,-32(10) - stfd 10,-24(10) - stfd 0,-16(10) - cmpld 0,6,10 - bne 0,.L119 - mtctr 8 + stfd 9,-32(7) + stfd 10,-24(7) + stfd 0,-16(7) + bne 0,.L138 + mtctr 4 fmr 0,12 - mr 9,7 + mr 9,0 .p2align 4,,15 -.L117: +.L136: lfd 7,32(9) lfd 8,40(9) addi 9,9,64 @@ -1628,29 +1641,31 @@ fb_physics: stfd 10,-64(9) stfd 11,-56(9) stfd 12,-48(9) - bdnz .L117 - addi 3,3,1 - cmpld 0,5,3 - bne 0,.L115 - andi. 9,8,0x1 - addis 10,2,.LC12@toc@ha - addi 9,7,32 - lfs 11,.LC12@toc@l(10) - addi 10,8,-1 - beq 0,.L128 + bdnz .L136 + addi 5,5,1 + cmpld 0,31,5 + bne 0,.L133 + andi. 9,6,0x1 + addis 10,2,.LC22@toc@ha + mr 9,0 + lfs 11,.LC22@toc@l(10) + addi 10,6,-1 + addi 9,9,32 + beq 0,.L147 lfd 0,0(9) lfd 10,8(9) cmpdi 0,10,0 lfd 12,16(9) - addi 9,7,96 + mr 9,0 + addi 9,9,96 fadd 0,0,10 fadd 0,0,12 fadd 11,11,0 - beq 0,.L133 -.L128: - srdi 10,8,1 + beq 0,.L152 +.L147: + srdi 10,6,1 mtctr 10 -.L120: +.L139: lfd 12,0(9) lfd 7,8(9) addi 9,9,128 @@ -1664,20 +1679,22 @@ fb_physics: fadd 0,0,10 fadd 11,11,12 fadd 11,11,0 - bdnz .L120 -.L133: + bdnz .L139 +.L152: stfd 11,-32(1) - lfd 31,-8(1) + nop nop nop ld 3,-32(1) - .cfi_restore 63 +.L131: + ld 31,-8(1) + .cfi_restore 31 blr -.L121: +.L140: li 3,0 blr .long 0 - .byte 0,0,2,0,1,0,0,0 + .byte 0,0,0,0,0,1,0,0 .cfi_endproc .size fb_physics,.-.L.fb_physics .align 2 @@ -1693,27 +1710,27 @@ fb_sort: .cfi_startproc cmpldi 0,4,1 mr 10,3 - ble 0,.L172 + ble 0,.L191 std 31,-8(1) .cfi_offset 31, -8 rldicr 31,4,0,62 srdi 12,4,1 addi 31,31,-1 .p2align 4,,15 -.L147: +.L166: cmpld 0,4,31 addi 12,12,-1 - ble 0,.L144 + ble 0,.L163 sldi 9,12,2 mr 7,31 mr 5,12 lwzx 11,10,9 - b .L146 + b .L165 .p2align 4,,15 -.L173: +.L192: lwzx 3,10,3 cmplw 0,3,6 - ble 0,.L155 + ble 0,.L174 mr 6,3 sldi 7,9,1 sldi 3,5,2 @@ -1722,12 +1739,12 @@ fb_sort: addi 7,7,1 mr 5,9 cmpld 7,4,7 - bge 0,.L144 -.L174: + bge 0,.L163 +.L193: stwx 6,10,3 stw 11,0(8) - ble 7,.L144 -.L146: + ble 7,.L163 +.L165: addi 9,5,1 sldi 8,7,2 sldi 3,9,3 @@ -1736,8 +1753,8 @@ fb_sort: add 8,10,8 cmpld 0,4,9 add 0,10,3 - bgt 0,.L173 -.L155: + bgt 0,.L192 +.L174: mr 9,7 cmplw 0,11,6 sldi 3,5,2 @@ -1745,11 +1762,11 @@ fb_sort: mr 5,9 addi 7,7,1 cmpld 7,4,7 - blt 0,.L174 -.L144: + blt 0,.L193 +.L163: cmpdi 0,12,0 addi 31,31,-2 - bne 0,.L147 + bne 0,.L166 addi 9,4,-1 sldi 4,4,2 mtctr 9 @@ -1760,18 +1777,18 @@ fb_sort: lwzu 8,-4(4) stw 8,0(10) stw 9,0(4) - beq 0,.L148 + beq 0,.L167 .p2align 4,,15 -.L177: +.L196: lwz 0,0(10) li 5,0 li 7,1 - b .L151 + b .L170 .p2align 4,,15 -.L175: +.L194: lwzx 3,10,3 cmplw 0,3,6 - ble 0,.L158 + ble 0,.L177 mr 6,3 sldi 7,9,1 sldi 3,5,2 @@ -1780,12 +1797,12 @@ fb_sort: addi 7,7,1 mr 5,9 cmpld 7,7,11 - bge 0,.L150 -.L176: + bge 0,.L169 +.L195: stwx 6,10,3 stw 0,0(8) - bge 7,.L150 -.L151: + bge 7,.L169 +.L170: addi 9,5,1 sldi 8,7,2 sldi 3,9,3 @@ -1794,8 +1811,8 @@ fb_sort: add 8,10,8 cmpld 0,9,11 add 31,10,3 - blt 0,.L175 -.L158: + blt 0,.L194 +.L177: mr 9,7 cmplw 0,0,6 sldi 3,5,2 @@ -1803,51 +1820,51 @@ fb_sort: mr 5,9 addi 7,7,1 cmpld 7,7,11 - blt 0,.L176 -.L150: + blt 0,.L195 +.L169: addi 11,11,-1 lwz 9,0(10) lwzu 8,-4(4) cmpldi 0,11,1 stw 8,0(10) stw 9,0(4) - bne 0,.L177 -.L148: + bne 0,.L196 +.L167: mfctr 9 addi 8,10,-4 andi. 9,9,0x1 mfctr 9 - bne 0,.L178 -.L163: + bne 0,.L197 +.L182: srdi 9,9,1 addi 9,9,1 mtctr 9 - b .L152 + b .L171 .p2align 4,,15 -.L179: +.L198: lwz 12,4(9) rotldi 3,3,57 xor 3,12,3 add 12,12,3 -.L152: +.L171: lwz 3,4(8) rotldi 12,12,57 addi 9,8,4 addi 8,8,8 xor 12,3,12 add 3,3,12 - bdnz .L179 + bdnz .L198 ld 31,-8(1) .cfi_remember_state .cfi_restore 31 blr -.L178: +.L197: .cfi_restore_state lwz 12,0(10) mr 8,10 sldi 12,12,1 - b .L163 -.L172: + b .L182 +.L191: .cfi_restore 31 cmpdi 0,4,0 li 3,0 @@ -1870,44 +1887,44 @@ fb_chase: .L.fb_chase: .cfi_startproc cmpdi 0,4,0 - beq 0,.L183 + beq 0,.L202 andi. 8,4,0x3 mr 9,3 addi 7,4,-1 mr 10,4 - beq 0,.L190 + beq 0,.L209 cmpdi 0,8,1 - beq 0,.L194 + beq 0,.L213 cmpdi 0,8,2 - bne 0,.L202 -.L195: + bne 0,.L221 +.L214: ld 9,0(9) addi 4,4,-1 -.L194: +.L213: cmpdi 0,4,1 ld 9,0(9) - beq 0,.L200 -.L190: + beq 0,.L219 +.L209: srdi 10,10,2 mtctr 10 -.L182: +.L201: ld 9,0(9) ld 9,0(9) ld 9,0(9) ld 9,0(9) - bdnz .L182 -.L200: + bdnz .L201 +.L219: subf 3,3,9 blr .p2align 4,,15 -.L183: +.L202: li 3,0 blr .p2align 4,,15 -.L202: +.L221: ld 9,0(3) mr 4,7 - b .L195 + b .L214 .long 0 .byte 0,0,0,0,0,0,0,0 .cfi_endproc @@ -1915,28 +1932,34 @@ fb_chase: .section .rodata.cst4,"aM",@progbits,4 .align 2 .LC6: - .long 1073741824 - .align 2 -.LC8: - .long 1070342144 - .align 2 -.LC10: .long 1056964608 .align 2 +.LC8: + .long 1080033280 + .align 2 +.LC10: + .long 1075838976 + .align 2 .LC12: - .long 0 + .long 1069547520 .align 2 .LC14: - .long 1065877504 + .long 1065353216 .align 2 .LC16: - .long 981467136 + .long 1065877504 .align 2 .LC18: - .long 1065353216 + .long 981467136 + .align 2 +.LC20: + .long 1073741824 + .align 2 +.LC22: + .long 0 .section .rodata.cst16,"aM",@progbits,16 .align 4 -.LC26: +.LC32: .byte 3 .byte 2 .byte 1 @@ -1954,13 +1977,13 @@ fb_chase: .byte 13 .byte 12 .align 4 -.LC27: +.LC33: .long 1634760805 .long 857760878 .long 2036477234 .long 1797285236 .align 4 -.LC28: +.LC34: .byte 0 .byte 2 .byte 4 @@ -1978,29 +2001,29 @@ fb_chase: .byte 28 .byte 30 .align 4 -.LC29: +.LC35: .long 1634760805 .long 1634760805 .long 857760878 .long 857760878 .align 4 -.LC30: +.LC36: .long 16 .long 24 .long 16 .long 24 .align 4 -.LC31: +.LC37: .long 2036477234 .long 2036477234 .long 1797285236 .long 1797285236 .section .rodata.cst4 .align 2 -.LC40: +.LC46: .long 1031798784 .align 2 -.LC42: +.LC48: .long 1006632960 .section .rodata .align 4 @@ -2014,4 +2037,3 @@ sigma.0: .long 1797285236 .ident "GCC: (crosstool-NG UNKNOWN) 16.1.0" .gnu_attribute 4, 1 - .section .note.GNU-stack,"",@progbits