Code:
bar:
/* prologue: frame size=0 */
push r2
push r3
push r4
push r5
push r6
push r7
push r8
push r9
push r10
push r11
push r12
push r13
push r14
push r15
push r16
push r17
/* prologue end (size=16) */
mov r2,r18 ; a, a
mov r3,r19 ; a, a
mov r4,r20 ; a, a
mov r5,r21 ; a, a
mov r6,r22 ; a, a
mov r7,r23 ; a, a
mov r8,r24 ; a, a
mov r9,r25 ; a, a
mov r18,r10 ; b, b
mov r19,r11 ; b, b
mov r20,r12 ; b, b
mov r21,r13 ; b, b
mov r22,r14 ; b, b
mov r23,r15 ; b, b
mov r24,r16 ; b, b
mov r25,r17 ; b, b
mov r10,r2 ; ,
add r10,r18 ; , b
ldi r30,lo8(1) ; tmp46,
cp r10,r2 ; tmp45, a
brlo .L3 ; ,
ldi r30,lo8(0) ; tmp46,
.L3:
mov r11,r3 ; ,
add r11,r19 ; , b
ldi r26,lo8(1) ; tmp47,
cp r11,r3 ; , a
brlo .L4 ; ,
ldi r26,lo8(0) ; tmp47,
.L4:
add r30,r11 ; tmp48,
ldi r31,lo8(1) ; tmp49,
cp r30,r11 ; tmp48,
brlo .L5 ; ,
ldi r31,lo8(0) ; tmp49,
.L5:
or r26,r31 ; tmp47, tmp49
mov r11,r30 ; , tmp48
mov r12,r4 ; ,
add r12,r20 ; , b
ldi r27,lo8(1) ; tmp50,
cp r12,r4 ; , a
brlo .L6 ; ,
ldi r27,lo8(0) ; tmp50,
.L6:
mov r30,r26 ; tmp51, tmp47
add r30,r12 ; tmp51,
ldi r31,lo8(1) ; tmp52,
cp r30,r12 ; tmp51,
brlo .L7 ; ,
ldi r31,lo8(0) ; tmp52,
.L7:
or r27,r31 ; tmp50, tmp52
mov r12,r30 ; , tmp51
mov r13,r5 ; ,
add r13,r21 ; , b
ldi r26,lo8(1) ; tmp53,
cp r13,r5 ; , a
brlo .L8 ; ,
ldi r26,lo8(0) ; tmp53,
.L8:
mov r30,r27 ; tmp54, tmp50
add r30,r13 ; tmp54,
ldi r31,lo8(1) ; tmp55,
cp r30,r13 ; tmp54,
brlo .L9 ; ,
ldi r31,lo8(0) ; tmp55,
.L9:
or r26,r31 ; tmp53, tmp55
mov r13,r30 ; , tmp54
mov r14,r6 ; ,
add r14,r22 ; , b
ldi r27,lo8(1) ; tmp56,
cp r14,r6 ; , a
brlo .L10 ; ,
ldi r27,lo8(0) ; tmp56,
.L10:
mov r30,r26 ; tmp57, tmp53
add r30,r14 ; tmp57,
ldi r31,lo8(1) ; tmp58,
cp r30,r14 ; tmp57,
brlo .L11 ; ,
ldi r31,lo8(0) ; tmp58,
.L11:
or r27,r31 ; tmp56, tmp58
mov r14,r30 ; , tmp57
mov r15,r7 ; ,
add r15,r23 ; , b
ldi r26,lo8(1) ; tmp59,
cp r15,r7 ; , a
brlo .L12 ; ,
ldi r26,lo8(0) ; tmp59,
.L12:
mov r30,r27 ; tmp60, tmp56
add r30,r15 ; tmp60,
ldi r31,lo8(1) ; tmp61,
cp r30,r15 ; tmp60,
brlo .L13 ; ,
ldi r31,lo8(0) ; tmp61,
.L13:
or r26,r31 ; tmp59, tmp61
mov r15,r30 ; , tmp60
mov r16,r8 ; ,
add r16,r24 ; , b
ldi r27,lo8(1) ; tmp62,
cp r16,r8 ; , a
brlo .L14 ; ,
ldi r27,lo8(0) ; tmp62,
.L14:
mov r31,r26 ; tmp63, tmp59
add r31,r16 ; tmp63,
ldi r30,lo8(1) ; tmp64,
cp r31,r16 ; tmp63,
brlo .L15 ; ,
ldi r30,lo8(0) ; tmp64,
.L15:
or r30,r27 ; tmp65, tmp62
mov r17,r9 ; ,
add r17,r25 ; , b
add r30,r17 ; tmp65,
mov r18,r10 ; <result>, <result>
mov r19,r11 ; , <result>
mov r20,r12 ; , <result>
mov r21,r13 ; , <result>
mov r22,r14 ; , <result>
mov r23,r15 ; , <result>
mov r24,r31 ; , <result>
mov r25,r30 ; , tmp65
/* epilogue: frame size=0 */
pop r17
pop r16
pop r15
pop r14
pop r13
pop r12
pop r11
pop r10
pop r9
pop r8
pop r7
pop r6
pop r5
pop r4
pop r3
pop r2
ret
Anm: Der Code ist trotz -Os nicht optimal, weil wenig AUfwand in 64-Bit-Typen gesteckt wurde und
Lesezeichen