/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
* des3_ede-asm_64.S - x86-64 assembly implementation of 3DES cipher
*
* Copyright © 2014 Jussi Kivilinna <jussi.kivilinna@iki.fi>
*/
#include <linux/linkage.h>
.file "des3_ede-asm_64.S"
.text
#define s1 .L_s1
#define s2 ((s1) + (64 *8 ))
#define s3 ((s2) + (64 *8 ))
#define s4 ((s3) + (64 *8 ))
#define s5 ((s4) + (64 *8 ))
#define s6 ((s5) + (64 *8 ))
#define s7 ((s6) + (64 *8 ))
#define s8 ((s7) + (64 *8 ))
/* register macros */
#define CTX %rdi
#define RL0 %r8
#define RL1 %r9
#define RL2 %r10
#define RL0d %r8d
#define RL1d %r9d
#define RL2d %r10d
#define RR0 %r11
#define RR1 %r12
#define RR2 %r13
#define RR0d %r11d
#define RR1d %r12d
#define RR2d %r13d
#define RW0 %rax
#define RW1 %rbx
#define RW2 %rcx
#define RW0d %eax
#define RW1d %ebx
#define RW2d %ecx
#define RW0bl %al
#define RW1bl %bl
#define RW2bl %cl
#define RW0bh %ah
#define RW1bh %bh
#define RW2bh %ch
#define RT0 %r15
#define RT1 %rsi
#define RT2 %r14
#define RT3 %rdx
#define RT0d %r15d
#define RT1d %esi
#define RT2d %r14d
#define RT3d %edx
/***********************************************************************
* 1-way 3DES
***********************************************************************/
#define do_permutation(a, b, offset, mask) \
movl a, RT0d; \
shrl $(offset), RT0d; \
xorl b, RT0d; \
andl $(mask), RT0d; \
xorl RT0d, b; \
shll $(offset), RT0d; \
xorl RT0d, a;
#define expand_to_64bits(val, mask) \
movl val##d, RT0d; \
rorl $4 , RT0d; \
shlq $32 , RT0; \
orq RT0, val; \
andq mask, val;
#define compress_to_64bits(val) \
movq val, RT0; \
shrq $32 , RT0; \
roll $4 , RT0d; \
orl RT0d, val##d;
#define initial_permutation(left, right) \
do_permutation(left##d, right##d, 4 , 0 x0f0f0f0f); \
do_permutation(left##d, right##d, 16 , 0 x0000ffff); \
do_permutation(right##d, left##d, 2 , 0 x33333333); \
do_permutation(right##d, left##d, 8 , 0 x00ff00ff); \
movabs $0 x3f3f3f3f3f3f3f3f, RT3; \
movl left##d, RW0d; \
roll $1 , right##d; \
xorl right##d, RW0d; \
andl $0 xaaaaaaaa, RW0d; \
xorl RW0d, left##d; \
xorl RW0d, right##d; \
roll $1 , left##d; \
expand_to_64bits(right, RT3); \
expand_to_64bits(left, RT3);
#define final_permutation(left, right) \
compress_to_64bits(right); \
compress_to_64bits(left); \
movl right##d, RW0d; \
rorl $1 , left##d; \
xorl left##d, RW0d; \
andl $0 xaaaaaaaa, RW0d; \
xorl RW0d, right##d; \
xorl RW0d, left##d; \
rorl $1 , right##d; \
do_permutation(right##d, left##d, 8 , 0 x00ff00ff); \
do_permutation(right##d, left##d, 2 , 0 x33333333); \
do_permutation(left##d, right##d, 16 , 0 x0000ffff); \
do_permutation(left##d, right##d, 4 , 0 x0f0f0f0f);
#define round1(n, from, to, load_next_key) \
xorq from, RW0; \
\
movzbl RW0bl, RT0d; \
movzbl RW0bh, RT1d; \
shrq $16 , RW0; \
movzbl RW0bl, RT2d; \
movzbl RW0bh, RT3d; \
shrq $16 , RW0; \
leaq s8(%rip), RW1; \
movq (RW1, RT0, 8 ), RT0; \
leaq s6(%rip), RW1; \
xorq (RW1, RT1, 8 ), to; \
movzbl RW0bl, RL1d; \
movzbl RW0bh, RT1d; \
shrl $16 , RW0d; \
leaq s4(%rip), RW1; \
xorq (RW1, RT2, 8 ), RT0; \
leaq s2(%rip), RW1; \
xorq (RW1, RT3, 8 ), to; \
movzbl RW0bl, RT2d; \
movzbl RW0bh, RT3d; \
leaq s7(%rip), RW1; \
xorq (RW1, RL1, 8 ), RT0; \
leaq s5(%rip), RW1; \
xorq (RW1, RT1, 8 ), to; \
leaq s3(%rip), RW1; \
xorq (RW1, RT2, 8 ), RT0; \
load_next_key(n, RW0); \
xorq RT0, to; \
leaq s1(%rip), RW1; \
xorq (RW1, RT3, 8 ), to; \
#define load_next_key(n, RWx) \
movq (((n) + 1 ) * 8 )(CTX), RWx;
#define dummy2(a, b) /*_*/
#define read_block(io, left, right) \
movl (io), left##d; \
movl 4 (io), right##d; \
bswapl left##d; \
bswapl right##d;
#define write_block(io, left, right) \
bswapl left##d; \
bswapl right##d; \
movl left##d, (io); \
movl right##d, 4 (io);
SYM_FUNC_START(des3_ede_x86_64_crypt_blk)
/* input:
* %rdi: round keys, CTX
* %rsi: dst
* %rdx: src
*/
pushq %rbx;
pushq %r12;
pushq %r13;
pushq %r14;
pushq %r15;
pushq %rsi; /* dst */
read_block(%rdx, RL0, RR0);
initial_permutation(RL0, RR0);
movq (CTX), RW0;
round1(0 , RR0, RL0, load_next_key);
round1(1 , RL0, RR0, load_next_key);
round1(2 , RR0, RL0, load_next_key);
round1(3 , RL0, RR0, load_next_key);
round1(4 , RR0, RL0, load_next_key);
round1(5 , RL0, RR0, load_next_key);
round1(6 , RR0, RL0, load_next_key);
round1(7 , RL0, RR0, load_next_key);
round1(8 , RR0, RL0, load_next_key);
round1(9 , RL0, RR0, load_next_key);
round1(10 , RR0, RL0, load_next_key);
round1(11 , RL0, RR0, load_next_key);
round1(12 , RR0, RL0, load_next_key);
round1(13 , RL0, RR0, load_next_key);
round1(14 , RR0, RL0, load_next_key);
round1(15 , RL0, RR0, load_next_key);
round1(16 +0 , RL0, RR0, load_next_key);
round1(16 +1 , RR0, RL0, load_next_key);
round1(16 +2 , RL0, RR0, load_next_key);
round1(16 +3 , RR0, RL0, load_next_key);
round1(16 +4 , RL0, RR0, load_next_key);
round1(16 +5 , RR0, RL0, load_next_key);
round1(16 +6 , RL0, RR0, load_next_key);
round1(16 +7 , RR0, RL0, load_next_key);
round1(16 +8 , RL0, RR0, load_next_key);
round1(16 +9 , RR0, RL0, load_next_key);
round1(16 +10 , RL0, RR0, load_next_key);
round1(16 +11 , RR0, RL0, load_next_key);
round1(16 +12 , RL0, RR0, load_next_key);
round1(16 +13 , RR0, RL0, load_next_key);
round1(16 +14 , RL0, RR0, load_next_key);
round1(16 +15 , RR0, RL0, load_next_key);
round1(32 +0 , RR0, RL0, load_next_key);
round1(32 +1 , RL0, RR0, load_next_key);
round1(32 +2 , RR0, RL0, load_next_key);
round1(32 +3 , RL0, RR0, load_next_key);
round1(32 +4 , RR0, RL0, load_next_key);
round1(32 +5 , RL0, RR0, load_next_key);
round1(32 +6 , RR0, RL0, load_next_key);
round1(32 +7 , RL0, RR0, load_next_key);
round1(32 +8 , RR0, RL0, load_next_key);
round1(32 +9 , RL0, RR0, load_next_key);
round1(32 +10 , RR0, RL0, load_next_key);
round1(32 +11 , RL0, RR0, load_next_key);
round1(32 +12 , RR0, RL0, load_next_key);
round1(32 +13 , RL0, RR0, load_next_key);
round1(32 +14 , RR0, RL0, load_next_key);
round1(32 +15 , RL0, RR0, dummy2);
final_permutation(RR0, RL0);
popq %rsi /* dst */
write_block(%rsi, RR0, RL0);
popq %r15;
popq %r14;
popq %r13;
popq %r12;
popq %rbx;
RET;
SYM_FUNC_END(des3_ede_x86_64_crypt_blk)
/***********************************************************************
* 3-way 3DES
***********************************************************************/
#define expand_to_64bits(val, mask) \
movl val##d, RT0d; \
rorl $4 , RT0d; \
shlq $32 , RT0; \
orq RT0, val; \
andq mask, val;
#define compress_to_64bits(val) \
movq val, RT0; \
shrq $32 , RT0; \
roll $4 , RT0d; \
orl RT0d, val##d;
#define initial_permutation3(left, right) \
do_permutation(left##0 d, right##0 d, 4 , 0 x0f0f0f0f); \
do_permutation(left##0 d, right##0 d, 16 , 0 x0000ffff); \
do_permutation(left##1 d, right##1 d, 4 , 0 x0f0f0f0f); \
do_permutation(left##1 d, right##1 d, 16 , 0 x0000ffff); \
do_permutation(left##2 d, right##2 d, 4 , 0 x0f0f0f0f); \
do_permutation(left##2 d, right##2 d, 16 , 0 x0000ffff); \
\
do_permutation(right##0 d, left##0 d, 2 , 0 x33333333); \
do_permutation(right##0 d, left##0 d, 8 , 0 x00ff00ff); \
do_permutation(right##1 d, left##1 d, 2 , 0 x33333333); \
do_permutation(right##1 d, left##1 d, 8 , 0 x00ff00ff); \
do_permutation(right##2 d, left##2 d, 2 , 0 x33333333); \
do_permutation(right##2 d, left##2 d, 8 , 0 x00ff00ff); \
\
movabs $0 x3f3f3f3f3f3f3f3f, RT3; \
\
movl left##0 d, RW0d; \
roll $1 , right##0 d; \
xorl right##0 d, RW0d; \
andl $0 xaaaaaaaa, RW0d; \
xorl RW0d, left##0 d; \
xorl RW0d, right##0 d; \
roll $1 , left##0 d; \
expand_to_64bits(right##0 , RT3); \
expand_to_64bits(left##0 , RT3); \
movl left##1 d, RW1d; \
roll $1 , right##1 d; \
xorl right##1 d, RW1d; \
andl $0 xaaaaaaaa, RW1d; \
xorl RW1d, left##1 d; \
xorl RW1d, right##1 d; \
roll $1 , left##1 d; \
expand_to_64bits(right##1 , RT3); \
expand_to_64bits(left##1 , RT3); \
movl left##2 d, RW2d; \
roll $1 , right##2 d; \
xorl right##2 d, RW2d; \
andl $0 xaaaaaaaa, RW2d; \
xorl RW2d, left##2 d; \
xorl RW2d, right##2 d; \
roll $1 , left##2 d; \
expand_to_64bits(right##2 , RT3); \
expand_to_64bits(left##2 , RT3);
#define final_permutation3(left, right) \
compress_to_64bits(right##0 ); \
compress_to_64bits(left##0 ); \
movl right##0 d, RW0d; \
rorl $1 , left##0 d; \
xorl left##0 d, RW0d; \
andl $0 xaaaaaaaa, RW0d; \
xorl RW0d, right##0 d; \
xorl RW0d, left##0 d; \
rorl $1 , right##0 d; \
compress_to_64bits(right##1 ); \
compress_to_64bits(left##1 ); \
movl right##1 d, RW1d; \
rorl $1 , left##1 d; \
xorl left##1 d, RW1d; \
andl $0 xaaaaaaaa, RW1d; \
xorl RW1d, right##1 d; \
xorl RW1d, left##1 d; \
rorl $1 , right##1 d; \
compress_to_64bits(right##2 ); \
compress_to_64bits(left##2 ); \
movl right##2 d, RW2d; \
rorl $1 , left##2 d; \
xorl left##2 d, RW2d; \
andl $0 xaaaaaaaa, RW2d; \
xorl RW2d, right##2 d; \
xorl RW2d, left##2 d; \
rorl $1 , right##2 d; \
\
do_permutation(right##0 d, left##0 d, 8 , 0 x00ff00ff); \
do_permutation(right##0 d, left##0 d, 2 , 0 x33333333); \
do_permutation(right##1 d, left##1 d, 8 , 0 x00ff00ff); \
do_permutation(right##1 d, left##1 d, 2 , 0 x33333333); \
do_permutation(right##2 d, left##2 d, 8 , 0 x00ff00ff); \
do_permutation(right##2 d, left##2 d, 2 , 0 x33333333); \
\
do_permutation(left##0 d, right##0 d, 16 , 0 x0000ffff); \
do_permutation(left##0 d, right##0 d, 4 , 0 x0f0f0f0f); \
do_permutation(left##1 d, right##1 d, 16 , 0 x0000ffff); \
do_permutation(left##1 d, right##1 d, 4 , 0 x0f0f0f0f); \
do_permutation(left##2 d, right##2 d, 16 , 0 x0000ffff); \
do_permutation(left##2 d, right##2 d, 4 , 0 x0f0f0f0f);
#define round3(n, from, to, load_next_key, do_movq) \
xorq from##0 , RW0; \
movzbl RW0bl, RT3d; \
movzbl RW0bh, RT1d; \
shrq $16 , RW0; \
leaq s8(%rip), RT2; \
xorq (RT2, RT3, 8 ), to##0 ; \
leaq s6(%rip), RT2; \
xorq (RT2, RT1, 8 ), to##0 ; \
movzbl RW0bl, RT3d; \
movzbl RW0bh, RT1d; \
shrq $16 , RW0; \
leaq s4(%rip), RT2; \
xorq (RT2, RT3, 8 ), to##0 ; \
leaq s2(%rip), RT2; \
xorq (RT2, RT1, 8 ), to##0 ; \
movzbl RW0bl, RT3d; \
movzbl RW0bh, RT1d; \
shrl $16 , RW0d; \
leaq s7(%rip), RT2; \
xorq (RT2, RT3, 8 ), to##0 ; \
leaq s5(%rip), RT2; \
xorq (RT2, RT1, 8 ), to##0 ; \
movzbl RW0bl, RT3d; \
movzbl RW0bh, RT1d; \
load_next_key(n, RW0); \
leaq s3(%rip), RT2; \
xorq (RT2, RT3, 8 ), to##0 ; \
leaq s1(%rip), RT2; \
xorq (RT2, RT1, 8 ), to##0 ; \
xorq from##1 , RW1; \
movzbl RW1bl, RT3d; \
movzbl RW1bh, RT1d; \
shrq $16 , RW1; \
leaq s8(%rip), RT2; \
xorq (RT2, RT3, 8 ), to##1 ; \
leaq s6(%rip), RT2; \
xorq (RT2, RT1, 8 ), to##1 ; \
movzbl RW1bl, RT3d; \
movzbl RW1bh, RT1d; \
shrq $16 , RW1; \
leaq s4(%rip), RT2; \
xorq (RT2, RT3, 8 ), to##1 ; \
leaq s2(%rip), RT2; \
xorq (RT2, RT1, 8 ), to##1 ; \
movzbl RW1bl, RT3d; \
movzbl RW1bh, RT1d; \
shrl $16 , RW1d; \
leaq s7(%rip), RT2; \
xorq (RT2, RT3, 8 ), to##1 ; \
leaq s5(%rip), RT2; \
xorq (RT2, RT1, 8 ), to##1 ; \
movzbl RW1bl, RT3d; \
movzbl RW1bh, RT1d; \
do_movq(RW0, RW1); \
leaq s3(%rip), RT2; \
xorq (RT2, RT3, 8 ), to##1 ; \
leaq s1(%rip), RT2; \
xorq (RT2, RT1, 8 ), to##1 ; \
xorq from##2 , RW2; \
movzbl RW2bl, RT3d; \
movzbl RW2bh, RT1d; \
shrq $16 , RW2; \
leaq s8(%rip), RT2; \
xorq (RT2, RT3, 8 ), to##2 ; \
leaq s6(%rip), RT2; \
xorq (RT2, RT1, 8 ), to##2 ; \
movzbl RW2bl, RT3d; \
movzbl RW2bh, RT1d; \
shrq $16 , RW2; \
leaq s4(%rip), RT2; \
xorq (RT2, RT3, 8 ), to##2 ; \
leaq s2(%rip), RT2; \
xorq (RT2, RT1, 8 ), to##2 ; \
movzbl RW2bl, RT3d; \
movzbl RW2bh, RT1d; \
shrl $16 , RW2d; \
leaq s7(%rip), RT2; \
xorq (RT2, RT3, 8 ), to##2 ; \
leaq s5(%rip), RT2; \
xorq (RT2, RT1, 8 ), to##2 ; \
movzbl RW2bl, RT3d; \
movzbl RW2bh, RT1d; \
do_movq(RW0, RW2); \
leaq s3(%rip), RT2; \
xorq (RT2, RT3, 8 ), to##2 ; \
leaq s1(%rip), RT2; \
xorq (RT2, RT1, 8 ), to##2 ;
#define __movq(src, dst) \
movq src, dst;
SYM_FUNC_START(des3_ede_x86_64_crypt_blk_3way)
/* input:
* %rdi: ctx, round keys
* %rsi: dst (3 blocks)
* %rdx: src (3 blocks)
*/
pushq %rbx;
pushq %r12;
pushq %r13;
pushq %r14;
pushq %r15;
pushq %rsi /* dst */
/* load input */
movl 0 * 4 (%rdx), RL0d;
movl 1 * 4 (%rdx), RR0d;
movl 2 * 4 (%rdx), RL1d;
movl 3 * 4 (%rdx), RR1d;
movl 4 * 4 (%rdx), RL2d;
movl 5 * 4 (%rdx), RR2d;
bswapl RL0d;
bswapl RR0d;
bswapl RL1d;
bswapl RR1d;
bswapl RL2d;
bswapl RR2d;
initial_permutation3(RL, RR);
movq 0 (CTX), RW0;
movq RW0, RW1;
movq RW0, RW2;
round3(0 , RR, RL, load_next_key, __movq);
round3(1 , RL, RR, load_next_key, __movq);
round3(2 , RR, RL, load_next_key, __movq);
round3(3 , RL, RR, load_next_key, __movq);
round3(4 , RR, RL, load_next_key, __movq);
round3(5 , RL, RR, load_next_key, __movq);
round3(6 , RR, RL, load_next_key, __movq);
round3(7 , RL, RR, load_next_key, __movq);
round3(8 , RR, RL, load_next_key, __movq);
round3(9 , RL, RR, load_next_key, __movq);
round3(10 , RR, RL, load_next_key, __movq);
round3(11 , RL, RR, load_next_key, __movq);
round3(12 , RR, RL, load_next_key, __movq);
round3(13 , RL, RR, load_next_key, __movq);
round3(14 , RR, RL, load_next_key, __movq);
round3(15 , RL, RR, load_next_key, __movq);
round3(16 +0 , RL, RR, load_next_key, __movq);
round3(16 +1 , RR, RL, load_next_key, __movq);
round3(16 +2 , RL, RR, load_next_key, __movq);
round3(16 +3 , RR, RL, load_next_key, __movq);
round3(16 +4 , RL, RR, load_next_key, __movq);
round3(16 +5 , RR, RL, load_next_key, __movq);
round3(16 +6 , RL, RR, load_next_key, __movq);
round3(16 +7 , RR, RL, load_next_key, __movq);
round3(16 +8 , RL, RR, load_next_key, __movq);
round3(16 +9 , RR, RL, load_next_key, __movq);
round3(16 +10 , RL, RR, load_next_key, __movq);
round3(16 +11 , RR, RL, load_next_key, __movq);
round3(16 +12 , RL, RR, load_next_key, __movq);
round3(16 +13 , RR, RL, load_next_key, __movq);
round3(16 +14 , RL, RR, load_next_key, __movq);
round3(16 +15 , RR, RL, load_next_key, __movq);
round3(32 +0 , RR, RL, load_next_key, __movq);
round3(32 +1 , RL, RR, load_next_key, __movq);
round3(32 +2 , RR, RL, load_next_key, __movq);
round3(32 +3 , RL, RR, load_next_key, __movq);
round3(32 +4 , RR, RL, load_next_key, __movq);
round3(32 +5 , RL, RR, load_next_key, __movq);
round3(32 +6 , RR, RL, load_next_key, __movq);
round3(32 +7 , RL, RR, load_next_key, __movq);
round3(32 +8 , RR, RL, load_next_key, __movq);
round3(32 +9 , RL, RR, load_next_key, __movq);
round3(32 +10 , RR, RL, load_next_key, __movq);
round3(32 +11 , RL, RR, load_next_key, __movq);
round3(32 +12 , RR, RL, load_next_key, __movq);
round3(32 +13 , RL, RR, load_next_key, __movq);
round3(32 +14 , RR, RL, load_next_key, __movq);
round3(32 +15 , RL, RR, dummy2, dummy2);
final_permutation3(RR, RL);
bswapl RR0d;
bswapl RL0d;
bswapl RR1d;
bswapl RL1d;
bswapl RR2d;
bswapl RL2d;
popq %rsi /* dst */
movl RR0d, 0 * 4 (%rsi);
movl RL0d, 1 * 4 (%rsi);
movl RR1d, 2 * 4 (%rsi);
movl RL1d, 3 * 4 (%rsi);
movl RR2d, 4 * 4 (%rsi);
movl RL2d, 5 * 4 (%rsi);
popq %r15;
popq %r14;
popq %r13;
popq %r12;
popq %rbx;
RET;
SYM_FUNC_END(des3_ede_x86_64_crypt_blk_3way)
.section .rodata, "a" , @progbits
.align 16
.L_s1:
.quad 0 x0010100001010400, 0 x0000000000000000
.quad 0 x0000100000010000, 0 x0010100001010404
.quad 0 x0010100001010004, 0 x0000100000010404
.quad 0 x0000000000000004, 0 x0000100000010000
.quad 0 x0000000000000400, 0 x0010100001010400
.quad 0 x0010100001010404, 0 x0000000000000400
.quad 0 x0010000001000404, 0 x0010100001010004
.quad 0 x0010000001000000, 0 x0000000000000004
.quad 0 x0000000000000404, 0 x0010000001000400
.quad 0 x0010000001000400, 0 x0000100000010400
.quad 0 x0000100000010400, 0 x0010100001010000
.quad 0 x0010100001010000, 0 x0010000001000404
.quad 0 x0000100000010004, 0 x0010000001000004
.quad 0 x0010000001000004, 0 x0000100000010004
.quad 0 x0000000000000000, 0 x0000000000000404
.quad 0 x0000100000010404, 0 x0010000001000000
.quad 0 x0000100000010000, 0 x0010100001010404
.quad 0 x0000000000000004, 0 x0010100001010000
.quad 0 x0010100001010400, 0 x0010000001000000
.quad 0 x0010000001000000, 0 x0000000000000400
.quad 0 x0010100001010004, 0 x0000100000010000
.quad 0 x0000100000010400, 0 x0010000001000004
.quad 0 x0000000000000400, 0 x0000000000000004
.quad 0 x0010000001000404, 0 x0000100000010404
.quad 0 x0010100001010404, 0 x0000100000010004
.quad 0 x0010100001010000, 0 x0010000001000404
.quad 0 x0010000001000004, 0 x0000000000000404
.quad 0 x0000100000010404, 0 x0010100001010400
.quad 0 x0000000000000404, 0 x0010000001000400
.quad 0 x0010000001000400, 0 x0000000000000000
.quad 0 x0000100000010004, 0 x0000100000010400
.quad 0 x0000000000000000, 0 x0010100001010004
.L_s2:
.quad 0 x0801080200100020, 0 x0800080000000000
.quad 0 x0000080000000000, 0 x0001080200100020
.quad 0 x0001000000100000, 0 x0000000200000020
.quad 0 x0801000200100020, 0 x0800080200000020
.quad 0 x0800000200000020, 0 x0801080200100020
.quad 0 x0801080000100000, 0 x0800000000000000
.quad 0 x0800080000000000, 0 x0001000000100000
.quad 0 x0000000200000020, 0 x0801000200100020
.quad 0 x0001080000100000, 0 x0001000200100020
.quad 0 x0800080200000020, 0 x0000000000000000
.quad 0 x0800000000000000, 0 x0000080000000000
.quad 0 x0001080200100020, 0 x0801000000100000
.quad 0 x0001000200100020, 0 x0800000200000020
.quad 0 x0000000000000000, 0 x0001080000100000
.quad 0 x0000080200000020, 0 x0801080000100000
.quad 0 x0801000000100000, 0 x0000080200000020
.quad 0 x0000000000000000, 0 x0001080200100020
.quad 0 x0801000200100020, 0 x0001000000100000
.quad 0 x0800080200000020, 0 x0801000000100000
.quad 0 x0801080000100000, 0 x0000080000000000
.quad 0 x0801000000100000, 0 x0800080000000000
.quad 0 x0000000200000020, 0 x0801080200100020
.quad 0 x0001080200100020, 0 x0000000200000020
.quad 0 x0000080000000000, 0 x0800000000000000
.quad 0 x0000080200000020, 0 x0801080000100000
.quad 0 x0001000000100000, 0 x0800000200000020
.quad 0 x0001000200100020, 0 x0800080200000020
.quad 0 x0800000200000020, 0 x0001000200100020
.quad 0 x0001080000100000, 0 x0000000000000000
.quad 0 x0800080000000000, 0 x0000080200000020
.quad 0 x0800000000000000, 0 x0801000200100020
.quad 0 x0801080200100020, 0 x0001080000100000
.L_s3:
.quad 0 x0000002000000208, 0 x0000202008020200
.quad 0 x0000000000000000, 0 x0000200008020008
.quad 0 x0000002008000200, 0 x0000000000000000
.quad 0 x0000202000020208, 0 x0000002008000200
.quad 0 x0000200000020008, 0 x0000000008000008
.quad 0 x0000000008000008, 0 x0000200000020000
.quad 0 x0000202008020208, 0 x0000200000020008
.quad 0 x0000200008020000, 0 x0000002000000208
.quad 0 x0000000008000000, 0 x0000000000000008
.quad 0 x0000202008020200, 0 x0000002000000200
.quad 0 x0000202000020200, 0 x0000200008020000
.quad 0 x0000200008020008, 0 x0000202000020208
.quad 0 x0000002008000208, 0 x0000202000020200
.quad 0 x0000200000020000, 0 x0000002008000208
.quad 0 x0000000000000008, 0 x0000202008020208
.quad 0 x0000002000000200, 0 x0000000008000000
.quad 0 x0000202008020200, 0 x0000000008000000
.quad 0 x0000200000020008, 0 x0000002000000208
.quad 0 x0000200000020000, 0 x0000202008020200
.quad 0 x0000002008000200, 0 x0000000000000000
.quad 0 x0000002000000200, 0 x0000200000020008
.quad 0 x0000202008020208, 0 x0000002008000200
.quad 0 x0000000008000008, 0 x0000002000000200
.quad 0 x0000000000000000, 0 x0000200008020008
.quad 0 x0000002008000208, 0 x0000200000020000
.quad 0 x0000000008000000, 0 x0000202008020208
.quad 0 x0000000000000008, 0 x0000202000020208
.quad 0 x0000202000020200, 0 x0000000008000008
.quad 0 x0000200008020000, 0 x0000002008000208
.quad 0 x0000002000000208, 0 x0000200008020000
.quad 0 x0000202000020208, 0 x0000000000000008
.quad 0 x0000200008020008, 0 x0000202000020200
.L_s4:
.quad 0 x1008020000002001, 0 x1000020800002001
.quad 0 x1000020800002001, 0 x0000000800000000
.quad 0 x0008020800002000, 0 x1008000800000001
.quad 0 x1008000000000001, 0 x1000020000002001
.quad 0 x0000000000000000, 0 x0008020000002000
.quad 0 x0008020000002000, 0 x1008020800002001
.quad 0 x1000000800000001, 0 x0000000000000000
.quad 0 x0008000800000000, 0 x1008000000000001
.quad 0 x1000000000000001, 0 x0000020000002000
.quad 0 x0008000000000000, 0 x1008020000002001
.quad 0 x0000000800000000, 0 x0008000000000000
.quad 0 x1000020000002001, 0 x0000020800002000
.quad 0 x1008000800000001, 0 x1000000000000001
.quad 0 x0000020800002000, 0 x0008000800000000
.quad 0 x0000020000002000, 0 x0008020800002000
.quad 0 x1008020800002001, 0 x1000000800000001
.quad 0 x0008000800000000, 0 x1008000000000001
.quad 0 x0008020000002000, 0 x1008020800002001
.quad 0 x1000000800000001, 0 x0000000000000000
.quad 0 x0000000000000000, 0 x0008020000002000
.quad 0 x0000020800002000, 0 x0008000800000000
.quad 0 x1008000800000001, 0 x1000000000000001
.quad 0 x1008020000002001, 0 x1000020800002001
.quad 0 x1000020800002001, 0 x0000000800000000
.quad 0 x1008020800002001, 0 x1000000800000001
.quad 0 x1000000000000001, 0 x0000020000002000
.quad 0 x1008000000000001, 0 x1000020000002001
.quad 0 x0008020800002000, 0 x1008000800000001
.quad 0 x1000020000002001, 0 x0000020800002000
.quad 0 x0008000000000000, 0 x1008020000002001
.quad 0 x0000000800000000, 0 x0008000000000000
.quad 0 x0000020000002000, 0 x0008020800002000
.L_s5:
.quad 0 x0000001000000100, 0 x0020001002080100
.quad 0 x0020000002080000, 0 x0420001002000100
.quad 0 x0000000000080000, 0 x0000001000000100
.quad 0 x0400000000000000, 0 x0020000002080000
.quad 0 x0400001000080100, 0 x0000000000080000
.quad 0 x0020001002000100, 0 x0400001000080100
.quad 0 x0420001002000100, 0 x0420000002080000
.quad 0 x0000001000080100, 0 x0400000000000000
.quad 0 x0020000002000000, 0 x0400000000080000
.quad 0 x0400000000080000, 0 x0000000000000000
.quad 0 x0400001000000100, 0 x0420001002080100
.quad 0 x0420001002080100, 0 x0020001002000100
.quad 0 x0420000002080000, 0 x0400001000000100
.quad 0 x0000000000000000, 0 x0420000002000000
.quad 0 x0020001002080100, 0 x0020000002000000
.quad 0 x0420000002000000, 0 x0000001000080100
.quad 0 x0000000000080000, 0 x0420001002000100
.quad 0 x0000001000000100, 0 x0020000002000000
.quad 0 x0400000000000000, 0 x0020000002080000
.quad 0 x0420001002000100, 0 x0400001000080100
.quad 0 x0020001002000100, 0 x0400000000000000
.quad 0 x0420000002080000, 0 x0020001002080100
.quad 0 x0400001000080100, 0 x0000001000000100
.quad 0 x0020000002000000, 0 x0420000002080000
.quad 0 x0420001002080100, 0 x0000001000080100
.quad 0 x0420000002000000, 0 x0420001002080100
.quad 0 x0020000002080000, 0 x0000000000000000
.quad 0 x0400000000080000, 0 x0420000002000000
.quad 0 x0000001000080100, 0 x0020001002000100
.quad 0 x0400001000000100, 0 x0000000000080000
.quad 0 x0000000000000000, 0 x0400000000080000
.quad 0 x0020001002080100, 0 x0400001000000100
.L_s6:
.quad 0 x0200000120000010, 0 x0204000020000000
.quad 0 x0000040000000000, 0 x0204040120000010
.quad 0 x0204000020000000, 0 x0000000100000010
.quad 0 x0204040120000010, 0 x0004000000000000
.quad 0 x0200040020000000, 0 x0004040100000010
.quad 0 x0004000000000000, 0 x0200000120000010
.quad 0 x0004000100000010, 0 x0200040020000000
.quad 0 x0200000020000000, 0 x0000040100000010
.quad 0 x0000000000000000, 0 x0004000100000010
.quad 0 x0200040120000010, 0 x0000040000000000
.quad 0 x0004040000000000, 0 x0200040120000010
.quad 0 x0000000100000010, 0 x0204000120000010
.quad 0 x0204000120000010, 0 x0000000000000000
.quad 0 x0004040100000010, 0 x0204040020000000
.quad 0 x0000040100000010, 0 x0004040000000000
.quad 0 x0204040020000000, 0 x0200000020000000
.quad 0 x0200040020000000, 0 x0000000100000010
.quad 0 x0204000120000010, 0 x0004040000000000
.quad 0 x0204040120000010, 0 x0004000000000000
.quad 0 x0000040100000010, 0 x0200000120000010
.quad 0 x0004000000000000, 0 x0200040020000000
.quad 0 x0200000020000000, 0 x0000040100000010
.quad 0 x0200000120000010, 0 x0204040120000010
.quad 0 x0004040000000000, 0 x0204000020000000
.quad 0 x0004040100000010, 0 x0204040020000000
.quad 0 x0000000000000000, 0 x0204000120000010
.quad 0 x0000000100000010, 0 x0000040000000000
.quad 0 x0204000020000000, 0 x0004040100000010
.quad 0 x0000040000000000, 0 x0004000100000010
.quad 0 x0200040120000010, 0 x0000000000000000
.quad 0 x0204040020000000, 0 x0200000020000000
.quad 0 x0004000100000010, 0 x0200040120000010
.L_s7:
.quad 0 x0002000000200000, 0 x2002000004200002
.quad 0 x2000000004000802, 0 x0000000000000000
.quad 0 x0000000000000800, 0 x2000000004000802
.quad 0 x2002000000200802, 0 x0002000004200800
.quad 0 x2002000004200802, 0 x0002000000200000
.quad 0 x0000000000000000, 0 x2000000004000002
.quad 0 x2000000000000002, 0 x0000000004000000
.quad 0 x2002000004200002, 0 x2000000000000802
.quad 0 x0000000004000800, 0 x2002000000200802
.quad 0 x2002000000200002, 0 x0000000004000800
.quad 0 x2000000004000002, 0 x0002000004200000
.quad 0 x0002000004200800, 0 x2002000000200002
.quad 0 x0002000004200000, 0 x0000000000000800
.quad 0 x2000000000000802, 0 x2002000004200802
.quad 0 x0002000000200800, 0 x2000000000000002
.quad 0 x0000000004000000, 0 x0002000000200800
.quad 0 x0000000004000000, 0 x0002000000200800
.quad 0 x0002000000200000, 0 x2000000004000802
.quad 0 x2000000004000802, 0 x2002000004200002
.quad 0 x2002000004200002, 0 x2000000000000002
.quad 0 x2002000000200002, 0 x0000000004000000
.quad 0 x0000000004000800, 0 x0002000000200000
.quad 0 x0002000004200800, 0 x2000000000000802
.quad 0 x2002000000200802, 0 x0002000004200800
.quad 0 x2000000000000802, 0 x2000000004000002
.quad 0 x2002000004200802, 0 x0002000004200000
.quad 0 x0002000000200800, 0 x0000000000000000
.quad 0 x2000000000000002, 0 x2002000004200802
.quad 0 x0000000000000000, 0 x2002000000200802
.quad 0 x0002000004200000, 0 x0000000000000800
.quad 0 x2000000004000002, 0 x0000000004000800
.quad 0 x0000000000000800, 0 x2002000000200002
.L_s8:
.quad 0 x0100010410001000, 0 x0000010000001000
.quad 0 x0000000000040000, 0 x0100010410041000
.quad 0 x0100000010000000, 0 x0100010410001000
.quad 0 x0000000400000000, 0 x0100000010000000
.quad 0 x0000000400040000, 0 x0100000010040000
.quad 0 x0100010410041000, 0 x0000010000041000
.quad 0 x0100010010041000, 0 x0000010400041000
.quad 0 x0000010000001000, 0 x0000000400000000
.quad 0 x0100000010040000, 0 x0100000410000000
.quad 0 x0100010010001000, 0 x0000010400001000
.quad 0 x0000010000041000, 0 x0000000400040000
.quad 0 x0100000410040000, 0 x0100010010041000
.quad 0 x0000010400001000, 0 x0000000000000000
.quad 0 x0000000000000000, 0 x0100000410040000
.quad 0 x0100000410000000, 0 x0100010010001000
.quad 0 x0000010400041000, 0 x0000000000040000
.quad 0 x0000010400041000, 0 x0000000000040000
.quad 0 x0100010010041000, 0 x0000010000001000
.quad 0 x0000000400000000, 0 x0100000410040000
.quad 0 x0000010000001000, 0 x0000010400041000
.quad 0 x0100010010001000, 0 x0000000400000000
.quad 0 x0100000410000000, 0 x0100000010040000
.quad 0 x0100000410040000, 0 x0100000010000000
.quad 0 x0000000000040000, 0 x0100010410001000
.quad 0 x0000000000000000, 0 x0100010410041000
.quad 0 x0000000400040000, 0 x0100000410000000
.quad 0 x0100000010040000, 0 x0100010010001000
.quad 0 x0100010410001000, 0 x0000000000000000
.quad 0 x0100010410041000, 0 x0000010000041000
.quad 0 x0000010000041000, 0 x0000010400001000
.quad 0 x0000010400001000, 0 x0000000400040000
.quad 0 x0100000010000000, 0 x0100010010041000
Messung V0.5 in Prozent C=95 H=93 G=93
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet am 2026-06-05)
¤
*© Formatika GbR, Deutschland