Jeremy FLEURY 45e980b4e3 push
2019-07-17 11:51:13 +02:00

237 lines
5.0 KiB
ArmAsm

# **************************************************************************** #
# #
# ::: :::::::: #
# Kappa.s :+: :+: :+: #
# +:+ +:+ +:+ #
# By: gudepard <gudepard@student.42.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2014/02/13 21:37:45 by gudepard #+# #+# #
# Updated: 2014/02/15 01:27:59 by gudepard ### ########.fr #
# #
# **************************************************************************** #
.name "Kappa"
.comment "AKA Kappa Sandwich."
# st r2, 15
# st r3, -1
# live %1 | r1 |
# 0370 0200 0f03 7003 ffff 01xx xxxx xx
# 57672192 251883523 4294902016 xx
# p1 -> r2 : 57672192
# -> r3 : 19 st r3 -> 1303 7003 -> 318992387
# p2 -> r2 : 251883523
# -> r3 : 23 st r3 -> 1703 7003 -> 386101251
# p3 -> r2 : 4294902016
# -> r3 : 26 st r3 -> 1A03 7003 -> 436432899
# p4 -> r2 : r1
# -> r3 : 15 st r3 -> 0f03 7003 -> 251883523
#### REVERSE
# st r2, -18
# st r3, -1
# live %1 -7 -3
# zjmp %-15 | r1 |
# 0370 02ff ee03 7003 ffff 01xx xxxx xx 09ffdf[03]
# 57672447 3993202691 4294902016 xx 167763715
# p1 -> r2 : 57672447
# -> r3 : -14 st r3 -> f203 7003 -> 4060311555
# p2 -> r2 : 3993202691
# -> r3 : -10 st r3 -> f603 7003 -> 4127420419
# p3 -> r2 : 4294902016
# -> r3 : -7 st r3 -> f903 7003 -> 4177752067
# p4 -> r2 : r1
# -> r3 : -3 st r3 -> fd03 7003 -> 4244860931
# p5 -> r2 : 167763715
# -> r3 : -18 st r3 -> ee03 7003 -> 3993202691
# 0000 0370 02ff ee03 7003 ffff 0100 0000 0109 ffdf
# 880 50327043 1879310335 16777216 17432543
sti r1, %:alive, %1
ld %75, r13
aff r13
fork %:init_forward
live %1337
init_backward:
ld %880, r5 # 7
ld %50327043, r6 # 7
ld %1879310335, r7 # 7
ld %16777216, r8 # 7
ld %17432543, r9 # 7
st r5, -80 # 5
st r6, -81 # 5
st r7, -82 # 5
st r8, -83 # 5
st r9, -84 # 5
fork %:r_p5 # 3
live %42 # 5
fork %:r_p4 # 3
live %42 # 5
fork %:r_p3 # 3
live %42 # 5
fork %:r_p2 # 3
live %42 # 5
fork %:r_p1 # 3
ld %0, r2 # 7 carry = 1
zjmp %:init_forward # 3
r_p1:
ld %57672447, r2 # 7
ld %4060311555, r3 # 7
ld %0, r4 # 7
r_p1_2:
live %42 # 5
fork %:r_p1_2 # 3
zjmp %-177 # 3
r_p2:
live %42 # 5
ld %3993202691, r2 # 7
ld %4127420419, r3 # 7
or r12, r12, r12 # 5
ld %0, r4 # 7
fork %:alive # 3
r_p2_2:
live %42 # 5
fork %:r_p2_2 # 3
zjmp %-222 # 3
r_p3:
live %42 # 5
ld %4294902016, r2 # 7
ld %4177752067, r3 # 7
or r12, r12, r12 # 5
or r12, r12, r12 # 5
ld %0, r4 # 7
fork %:alive # 3
live %42 # 5
fork %:alive # 3
r_p3_2:
live %42 # 5
fork %:r_p3_2 # 3
zjmp %-280 # 3
r_p4:
live %42 # 5
st r1, r2 # 7
ld %4244860931, r3 # 7
or r12, r12, r12 # 5
or r12, r12, r12 # 5
or r12, r12, r12 # 5
ld %0, r4 # 7
fork %:alive # 3
live %42 # 5
fork %:alive # 3
live %42 # 5
fork %:alive # 3
r_p4_2:
live %42 # 5
fork %:r_p4_2 # 3
zjmp %-348 # 3
r_p5:
live %42 # 5
ld %167763715, r2 # 7
ld %3993202691, r3 # 7
or r12, r12, r12 # 5
or r12, r12, r12 # 5
or r12, r12, r12 # 5
or r12, r12, r12 # 5
ld %0, r4 # 7
fork %:alive # 3
live %42 # 5
fork %:alive # 3
live %42 # 5
fork %:alive # 3
live %42 # 5
fork %:alive # 3
r_p5_2:
live %42 # 5
fork %:r_p5_2 # 3
zjmp %-432 # 3
init_forward:
live %42
fork %:p4
live %42
fork %:p3
live %42
fork %:p2
live %42
fork %:p1
ld %0, r2 # carry = 1
alive:
live %42
zjmp %:alive
p1:
ld %57672192, r2
ld %318992387, r3
ld %0, r4 # carry = 1
p1_2:
live %42
fork %:p1_2
zjmp %:move_forward
p2:
live %42
ld %251883523, r2
ld %386101251, r3
or r12, r12, r12
ld %0, r4 # carry = 1
fork %:alive
p2_2:
live %42
fork %:p2_2
zjmp %:move_forward
p3:
live %42
ld %4294902016, r2
ld %436432899, r3
or r12, r12, r12
or r12, r12, r12
ld %0, r4 # carry = 1
fork %:alive
live %42
fork %:alive
p3_2:
live %42
fork %:p3_2
zjmp %:move_forward
p4:
live %42
st r1, r2
ld %251883523, r3
or r12, r12, r12
or r12, r12, r12
or r12, r12, r12
ld %0, r4 # carry = 1
fork %:alive
live %42
fork %:alive
live %42
fork %:alive
p4_2:
live %42
fork %:p4_2
zjmp %:move_forward
move_forward:
st r2, 15
st r3, -1
live %1337