1267 lines
20 KiB
Text
1267 lines
20 KiB
Text
NAME=AVR: aeso on call
|
|
FILE=malloc://1024
|
|
CMDS=<<EOF
|
|
e asm.arch=avr
|
|
e asm.bits=8
|
|
wx 0xf8 0x94 0x08 0xe0 0x0e 0xbf 0x0f 0xe5 0x0d 0xbf 0x0e 0x94 0x08 0x00 0x88 0x95 0x08 0x95
|
|
aei
|
|
aeim 0x00000100 0xffff avr_ram
|
|
6aeso
|
|
ar pc
|
|
ar pc = 0
|
|
7aes
|
|
ar pc
|
|
EOF
|
|
EXPECT=<<EOF
|
|
pc = 0x0000000e
|
|
pc = 0x0000000e
|
|
EOF
|
|
RUN
|
|
|
|
# des tests are checked against Microchip's AVR Simulator emulating ATxmega128A1
|
|
NAME=AVR: des encrypt
|
|
FILE=malloc://1024
|
|
CMDS=<<EOF
|
|
(regs ;ar 8~:0..16) # show regs r0-r15
|
|
e asm.arch=avr
|
|
wx 0b941b942b943b944b945b946b947b948b949b94ab94bb94cb94db94eb94fb94
|
|
ar r0 = 0x41
|
|
ar r1 = 0x20
|
|
ar r2 = 0x52
|
|
ar r3 = 0x69
|
|
ar r4 = 0x76
|
|
ar r5 = 0x61
|
|
ar r6 = 0x6c
|
|
ar r7 = 0x20
|
|
ar r8 = 0x41
|
|
ar r9 = 0x70
|
|
ar r10 = 0x70
|
|
ar r11 = 0x65
|
|
ar r12 = 0x61
|
|
ar r13 = 0x72
|
|
ar r14 = 0x73
|
|
ar r15 = 0x21
|
|
.(regs)
|
|
aei
|
|
?e -- round 0; aes; .(regs)
|
|
?e -- round 1; aes; .(regs)
|
|
?e -- round 2; aes; .(regs)
|
|
?e -- round 3; aes; .(regs)
|
|
?e -- round 4; aes; .(regs)
|
|
?e -- round 5; aes; .(regs)
|
|
?e -- round 6; aes; .(regs)
|
|
?e -- round 7; aes; .(regs)
|
|
?e -- round 8; aes; .(regs)
|
|
?e -- round 9; aes; .(regs)
|
|
?e -- round 10; aes; .(regs)
|
|
?e -- round 11; aes; .(regs)
|
|
?e -- round 12; aes; .(regs)
|
|
?e -- round 13; aes; .(regs)
|
|
?e -- round 14; aes; .(regs)
|
|
?e -- round 15; aes; .(regs)
|
|
ar pcl
|
|
EOF
|
|
EXPECT=<<EOF
|
|
r0 = 0x00000041
|
|
r1 = 0x00000020
|
|
r2 = 0x00000052
|
|
r3 = 0x00000069
|
|
r4 = 0x00000076
|
|
r5 = 0x00000061
|
|
r6 = 0x0000006c
|
|
r7 = 0x00000020
|
|
r8 = 0x00000041
|
|
r9 = 0x00000070
|
|
r10 = 0x00000070
|
|
r11 = 0x00000065
|
|
r12 = 0x00000061
|
|
r13 = 0x00000072
|
|
r14 = 0x00000073
|
|
r15 = 0x00000021
|
|
-- round 0
|
|
r0 = 0x00000000
|
|
r1 = 0x00000018
|
|
r2 = 0x000000a9
|
|
r3 = 0x000000bc
|
|
r4 = 0x0000001b
|
|
r5 = 0x00000010
|
|
r6 = 0x00000036
|
|
r7 = 0x0000001a
|
|
r8 = 0x00000071
|
|
r9 = 0x00000070
|
|
r10 = 0x00000064
|
|
r11 = 0x00000061
|
|
r12 = 0x00000073
|
|
r13 = 0x00000072
|
|
r14 = 0x00000021
|
|
r15 = 0x00000081
|
|
-- round 1
|
|
r0 = 0x00000022
|
|
r1 = 0x00000004
|
|
r2 = 0x0000007e
|
|
r3 = 0x0000007c
|
|
r4 = 0x0000008d
|
|
r5 = 0x00000080
|
|
r6 = 0x00000091
|
|
r7 = 0x00000025
|
|
r8 = 0x00000071
|
|
r9 = 0x00000064
|
|
r10 = 0x00000060
|
|
r11 = 0x00000063
|
|
r12 = 0x00000073
|
|
r13 = 0x00000020
|
|
r14 = 0x00000081
|
|
r15 = 0x000000e9
|
|
-- round 2
|
|
r0 = 0x00000091
|
|
r1 = 0x00000000
|
|
r2 = 0x0000003d
|
|
r3 = 0x000000b4
|
|
r4 = 0x000000e6
|
|
r5 = 0x00000060
|
|
r6 = 0x000000c8
|
|
r7 = 0x00000098
|
|
r8 = 0x00000061
|
|
r9 = 0x00000062
|
|
r10 = 0x00000062
|
|
r11 = 0x00000021
|
|
r12 = 0x00000081
|
|
r13 = 0x000000e8
|
|
r14 = 0x000000e9
|
|
r15 = 0x000000c3
|
|
-- round 3
|
|
r0 = 0x00000062
|
|
r1 = 0x00000022
|
|
r2 = 0x0000001c
|
|
r3 = 0x0000005a
|
|
r4 = 0x000000f1
|
|
r5 = 0x0000003a
|
|
r6 = 0x00000046
|
|
r7 = 0x0000004e
|
|
r8 = 0x00000063
|
|
r9 = 0x00000020
|
|
r10 = 0x00000080
|
|
r11 = 0x000000e9
|
|
r12 = 0x000000e9
|
|
r13 = 0x000000c2
|
|
r14 = 0x000000c1
|
|
r15 = 0x000000d1
|
|
-- round 4
|
|
r0 = 0x0000003b
|
|
r1 = 0x00000091
|
|
r2 = 0x00000026
|
|
r3 = 0x00000085
|
|
r4 = 0x000000f0
|
|
r5 = 0x00000035
|
|
r6 = 0x00000003
|
|
r7 = 0x0000008d
|
|
r8 = 0x00000081
|
|
r9 = 0x000000e8
|
|
r10 = 0x000000e8
|
|
r11 = 0x000000c3
|
|
r12 = 0x000000c1
|
|
r13 = 0x000000d0
|
|
r14 = 0x000000d1
|
|
r15 = 0x00000041
|
|
-- round 5
|
|
r0 = 0x0000009d
|
|
r1 = 0x0000006a
|
|
r2 = 0x00000019
|
|
r3 = 0x000000ea
|
|
r4 = 0x00000072
|
|
r5 = 0x000000ba
|
|
r6 = 0x00000089
|
|
r7 = 0x0000006e
|
|
r8 = 0x000000e9
|
|
r9 = 0x000000c2
|
|
r10 = 0x000000d0
|
|
r11 = 0x000000d1
|
|
r12 = 0x000000d1
|
|
r13 = 0x00000040
|
|
r14 = 0x00000001
|
|
r15 = 0x000000cd
|
|
-- round 6
|
|
r0 = 0x00000064
|
|
r1 = 0x000000b5
|
|
r2 = 0x0000002e
|
|
r3 = 0x000000ff
|
|
r4 = 0x0000009b
|
|
r5 = 0x0000005f
|
|
r6 = 0x000000c4
|
|
r7 = 0x00000015
|
|
r8 = 0x000000d1
|
|
r9 = 0x000000d0
|
|
r10 = 0x000000d0
|
|
r11 = 0x00000051
|
|
r12 = 0x00000001
|
|
r13 = 0x000000cc
|
|
r14 = 0x000000cd
|
|
r15 = 0x00000091
|
|
-- round 7
|
|
r0 = 0x000000ba
|
|
r1 = 0x0000005a
|
|
r2 = 0x00000097
|
|
r3 = 0x0000005f
|
|
r4 = 0x000000ef
|
|
r5 = 0x0000008f
|
|
r6 = 0x000000e2
|
|
r7 = 0x00000008
|
|
r8 = 0x000000d1
|
|
r9 = 0x00000050
|
|
r10 = 0x00000010
|
|
r11 = 0x000000dd
|
|
r12 = 0x000000cd
|
|
r13 = 0x00000090
|
|
r14 = 0x000000a1
|
|
r15 = 0x000000a1
|
|
-- round 8
|
|
r0 = 0x0000007f
|
|
r1 = 0x0000002d
|
|
r2 = 0x000000e9
|
|
r3 = 0x0000002f
|
|
r4 = 0x000000df
|
|
r5 = 0x000000cd
|
|
r6 = 0x000000f3
|
|
r7 = 0x00000026
|
|
r8 = 0x00000051
|
|
r9 = 0x00000010
|
|
r10 = 0x000000dc
|
|
r11 = 0x000000dd
|
|
r12 = 0x00000091
|
|
r13 = 0x000000a0
|
|
r14 = 0x000000a1
|
|
r15 = 0x000000a1
|
|
-- round 9
|
|
r0 = 0x0000003f
|
|
r1 = 0x00000096
|
|
r2 = 0x000000dc
|
|
r3 = 0x0000001f
|
|
r4 = 0x0000006f
|
|
r5 = 0x00000066
|
|
r6 = 0x00000051
|
|
r7 = 0x00000039
|
|
r8 = 0x000000dd
|
|
r9 = 0x000000dc
|
|
r10 = 0x00000080
|
|
r11 = 0x000000a1
|
|
r12 = 0x000000a1
|
|
r13 = 0x000000a0
|
|
r14 = 0x000000a9
|
|
r15 = 0x00000021
|
|
-- round 10
|
|
r0 = 0x000000bf
|
|
r1 = 0x000000c9
|
|
r2 = 0x0000004e
|
|
r3 = 0x000000ad
|
|
r4 = 0x00000095
|
|
r5 = 0x00000099
|
|
r6 = 0x0000002a
|
|
r7 = 0x00000094
|
|
r8 = 0x00000081
|
|
r9 = 0x000000a0
|
|
r10 = 0x000000b0
|
|
r11 = 0x000000b1
|
|
r12 = 0x000000a9
|
|
r13 = 0x00000020
|
|
r14 = 0x000000a7
|
|
r15 = 0x000000a7
|
|
-- round 11
|
|
r0 = 0x0000007f
|
|
r1 = 0x000000c6
|
|
r2 = 0x000000af
|
|
r3 = 0x000000fe
|
|
r4 = 0x0000004a
|
|
r5 = 0x000000ee
|
|
r6 = 0x000000bd
|
|
r7 = 0x00000040
|
|
r8 = 0x000000b1
|
|
r9 = 0x000000b0
|
|
r10 = 0x000000b8
|
|
r11 = 0x00000031
|
|
r12 = 0x000000a7
|
|
r13 = 0x000000a6
|
|
r14 = 0x00000001
|
|
r15 = 0x00000041
|
|
-- round 12
|
|
r0 = 0x0000003d
|
|
r1 = 0x000000c3
|
|
r2 = 0x00000057
|
|
r3 = 0x00000055
|
|
r4 = 0x0000008d
|
|
r5 = 0x0000007d
|
|
r6 = 0x00000054
|
|
r7 = 0x000000aa
|
|
r8 = 0x000000b9
|
|
r9 = 0x00000030
|
|
r10 = 0x000000b6
|
|
r11 = 0x000000b7
|
|
r12 = 0x00000001
|
|
r13 = 0x00000040
|
|
r14 = 0x00000061
|
|
r15 = 0x00000061
|
|
-- round 13
|
|
r0 = 0x0000001e
|
|
r1 = 0x00000061
|
|
r2 = 0x000000a1
|
|
r3 = 0x00000008
|
|
r4 = 0x000000c4
|
|
r5 = 0x000000b6
|
|
r6 = 0x00000028
|
|
r7 = 0x00000075
|
|
r8 = 0x000000b7
|
|
r9 = 0x000000b6
|
|
r10 = 0x00000010
|
|
r11 = 0x00000041
|
|
r12 = 0x00000061
|
|
r13 = 0x00000060
|
|
r14 = 0x00000065
|
|
r15 = 0x00000061
|
|
-- round 14
|
|
r0 = 0x000000a5
|
|
r1 = 0x000000ba
|
|
r2 = 0x00000072
|
|
r3 = 0x00000006
|
|
r4 = 0x00000060
|
|
r5 = 0x0000007b
|
|
r6 = 0x000000b4
|
|
r7 = 0x000000b8
|
|
r8 = 0x00000011
|
|
r9 = 0x00000040
|
|
r10 = 0x00000070
|
|
r11 = 0x00000071
|
|
r12 = 0x00000065
|
|
r13 = 0x00000060
|
|
r14 = 0x00000073
|
|
r15 = 0x00000073
|
|
-- round 15
|
|
r0 = 0x000000f5
|
|
r1 = 0x000000fe
|
|
r2 = 0x00000027
|
|
r3 = 0x00000016
|
|
r4 = 0x00000061
|
|
r5 = 0x0000003f
|
|
r6 = 0x000000f5
|
|
r7 = 0x000000bc
|
|
r8 = 0x00000041
|
|
r9 = 0x00000070
|
|
r10 = 0x00000070
|
|
r11 = 0x00000065
|
|
r12 = 0x00000061
|
|
r13 = 0x00000072
|
|
r14 = 0x00000073
|
|
r15 = 0x00000021
|
|
pcl = 0x00000020
|
|
EOF
|
|
RUN
|
|
|
|
NAME=AVR: des decrypt
|
|
FILE=malloc://1024
|
|
CMDS=<<EOF
|
|
(regs ;ar 8~:0..16) # show regs r0-r15
|
|
e asm.arch=avr
|
|
wx 58940b941b942b943b944b945b946b947b948b949b94ab94bb94cb94db94eb94fb94
|
|
ar r0 = 0xf5
|
|
ar r1 = 0xfe
|
|
ar r2 = 0x27
|
|
ar r3 = 0x16
|
|
ar r4 = 0x61
|
|
ar r5 = 0x3f
|
|
ar r6 = 0xf5
|
|
ar r7 = 0xbc
|
|
ar r8 = 0x41
|
|
ar r9 = 0x70
|
|
ar r10 = 0x70
|
|
ar r11 = 0x65
|
|
ar r12 = 0x61
|
|
ar r13 = 0x72
|
|
ar r14 = 0x73
|
|
ar r15 = 0x21
|
|
.(regs)
|
|
aei
|
|
aes
|
|
?e decrypt?; ar hf
|
|
?e -- round 0; aes; .(regs)
|
|
?e -- round 1; aes; .(regs)
|
|
?e -- round 2; aes; .(regs)
|
|
?e -- round 3; aes; .(regs)
|
|
?e -- round 4; aes; .(regs)
|
|
?e -- round 5; aes; .(regs)
|
|
?e -- round 6; aes; .(regs)
|
|
?e -- round 7; aes; .(regs)
|
|
?e -- round 8; aes; .(regs)
|
|
?e -- round 9; aes; .(regs)
|
|
?e -- round 10; aes; .(regs)
|
|
?e -- round 11; aes; .(regs)
|
|
?e -- round 12; aes; .(regs)
|
|
?e -- round 13; aes; .(regs)
|
|
?e -- round 14; aes; .(regs)
|
|
?e -- round 15; aes; .(regs)
|
|
ar pcl
|
|
arb~[5-]~:0
|
|
EOF
|
|
EXPECT=<<EOF
|
|
r0 = 0x000000f5
|
|
r1 = 0x000000fe
|
|
r2 = 0x00000027
|
|
r3 = 0x00000016
|
|
r4 = 0x00000061
|
|
r5 = 0x0000003f
|
|
r6 = 0x000000f5
|
|
r7 = 0x000000bc
|
|
r8 = 0x00000041
|
|
r9 = 0x00000070
|
|
r10 = 0x00000070
|
|
r11 = 0x00000065
|
|
r12 = 0x00000061
|
|
r13 = 0x00000072
|
|
r14 = 0x00000073
|
|
r15 = 0x00000021
|
|
decrypt?
|
|
hf = 0x00000001
|
|
-- round 0
|
|
r0 = 0x0000005a
|
|
r1 = 0x00000075
|
|
r2 = 0x000000b1
|
|
r3 = 0x00000009
|
|
r4 = 0x00000090
|
|
r5 = 0x000000b7
|
|
r6 = 0x00000078
|
|
r7 = 0x00000074
|
|
r8 = 0x00000011
|
|
r9 = 0x00000040
|
|
r10 = 0x00000070
|
|
r11 = 0x00000071
|
|
r12 = 0x00000065
|
|
r13 = 0x00000060
|
|
r14 = 0x00000073
|
|
r15 = 0x00000073
|
|
-- round 1
|
|
r0 = 0x0000002d
|
|
r1 = 0x00000092
|
|
r2 = 0x00000052
|
|
r3 = 0x00000004
|
|
r4 = 0x000000c8
|
|
r5 = 0x00000079
|
|
r6 = 0x00000014
|
|
r7 = 0x000000ba
|
|
r8 = 0x000000b7
|
|
r9 = 0x000000b6
|
|
r10 = 0x00000010
|
|
r11 = 0x00000041
|
|
r12 = 0x00000061
|
|
r13 = 0x00000060
|
|
r14 = 0x00000065
|
|
r15 = 0x00000061
|
|
-- round 2
|
|
r0 = 0x0000003e
|
|
r1 = 0x000000c3
|
|
r2 = 0x000000ab
|
|
r3 = 0x000000aa
|
|
r4 = 0x0000004e
|
|
r5 = 0x000000be
|
|
r6 = 0x000000a8
|
|
r7 = 0x00000055
|
|
r8 = 0x000000b9
|
|
r9 = 0x00000030
|
|
r10 = 0x000000b6
|
|
r11 = 0x000000b7
|
|
r12 = 0x00000001
|
|
r13 = 0x00000040
|
|
r14 = 0x00000061
|
|
r15 = 0x00000061
|
|
-- round 3
|
|
r0 = 0x000000bf
|
|
r1 = 0x000000c9
|
|
r2 = 0x0000005f
|
|
r3 = 0x000000fd
|
|
r4 = 0x00000085
|
|
r5 = 0x000000dd
|
|
r6 = 0x0000007e
|
|
r7 = 0x00000080
|
|
r8 = 0x000000b1
|
|
r9 = 0x000000b0
|
|
r10 = 0x000000b8
|
|
r11 = 0x00000031
|
|
r12 = 0x000000a7
|
|
r13 = 0x000000a6
|
|
r14 = 0x00000001
|
|
r15 = 0x00000041
|
|
-- round 4
|
|
r0 = 0x0000007f
|
|
r1 = 0x000000c6
|
|
r2 = 0x0000008d
|
|
r3 = 0x0000005e
|
|
r4 = 0x0000006a
|
|
r5 = 0x00000066
|
|
r6 = 0x00000015
|
|
r7 = 0x00000068
|
|
r8 = 0x00000081
|
|
r9 = 0x000000a0
|
|
r10 = 0x000000b0
|
|
r11 = 0x000000b1
|
|
r12 = 0x000000a9
|
|
r13 = 0x00000020
|
|
r14 = 0x000000a7
|
|
r15 = 0x000000a7
|
|
-- round 5
|
|
r0 = 0x0000003f
|
|
r1 = 0x00000069
|
|
r2 = 0x000000ec
|
|
r3 = 0x0000002f
|
|
r4 = 0x0000009f
|
|
r5 = 0x00000099
|
|
r6 = 0x000000a2
|
|
r7 = 0x00000036
|
|
r8 = 0x000000dd
|
|
r9 = 0x000000dc
|
|
r10 = 0x00000080
|
|
r11 = 0x000000a1
|
|
r12 = 0x000000a1
|
|
r13 = 0x000000a0
|
|
r14 = 0x000000a9
|
|
r15 = 0x00000021
|
|
-- round 6
|
|
r0 = 0x000000bf
|
|
r1 = 0x0000001e
|
|
r2 = 0x000000d6
|
|
r3 = 0x0000001f
|
|
r4 = 0x000000ef
|
|
r5 = 0x000000ce
|
|
r6 = 0x000000f3
|
|
r7 = 0x00000019
|
|
r8 = 0x00000051
|
|
r9 = 0x00000010
|
|
r10 = 0x000000dc
|
|
r11 = 0x000000dd
|
|
r12 = 0x00000091
|
|
r13 = 0x000000a0
|
|
r14 = 0x000000a1
|
|
r15 = 0x000000a1
|
|
-- round 7
|
|
r0 = 0x00000075
|
|
r1 = 0x000000a5
|
|
r2 = 0x0000006b
|
|
r3 = 0x000000af
|
|
r4 = 0x000000df
|
|
r5 = 0x0000004f
|
|
r6 = 0x000000d1
|
|
r7 = 0x00000004
|
|
r8 = 0x000000d1
|
|
r9 = 0x00000050
|
|
r10 = 0x00000010
|
|
r11 = 0x000000dd
|
|
r12 = 0x000000cd
|
|
r13 = 0x00000090
|
|
r14 = 0x000000a1
|
|
r15 = 0x000000a1
|
|
-- round 8
|
|
r0 = 0x00000098
|
|
r1 = 0x0000007a
|
|
r2 = 0x0000001d
|
|
r3 = 0x000000ff
|
|
r4 = 0x00000067
|
|
r5 = 0x000000af
|
|
r6 = 0x000000c8
|
|
r7 = 0x0000002a
|
|
r8 = 0x000000d1
|
|
r9 = 0x000000d0
|
|
r10 = 0x000000d0
|
|
r11 = 0x00000051
|
|
r12 = 0x00000001
|
|
r13 = 0x000000cc
|
|
r14 = 0x000000cd
|
|
r15 = 0x00000091
|
|
-- round 9
|
|
r0 = 0x0000006e
|
|
r1 = 0x00000095
|
|
r2 = 0x00000026
|
|
r3 = 0x000000d5
|
|
r4 = 0x000000b1
|
|
r5 = 0x00000075
|
|
r6 = 0x00000046
|
|
r7 = 0x0000009d
|
|
r8 = 0x000000e9
|
|
r9 = 0x000000c2
|
|
r10 = 0x000000d0
|
|
r11 = 0x000000d1
|
|
r12 = 0x000000d1
|
|
r13 = 0x00000040
|
|
r14 = 0x00000001
|
|
r15 = 0x000000cd
|
|
-- round 10
|
|
r0 = 0x00000037
|
|
r1 = 0x00000062
|
|
r2 = 0x00000019
|
|
r3 = 0x0000004a
|
|
r4 = 0x000000f0
|
|
r5 = 0x0000003a
|
|
r6 = 0x00000003
|
|
r7 = 0x0000004e
|
|
r8 = 0x00000081
|
|
r9 = 0x000000e8
|
|
r10 = 0x000000e8
|
|
r11 = 0x000000c3
|
|
r12 = 0x000000c1
|
|
r13 = 0x000000d0
|
|
r14 = 0x000000d1
|
|
r15 = 0x00000041
|
|
-- round 11
|
|
r0 = 0x00000091
|
|
r1 = 0x00000011
|
|
r2 = 0x0000002c
|
|
r3 = 0x000000a5
|
|
r4 = 0x000000f2
|
|
r5 = 0x00000035
|
|
r6 = 0x00000089
|
|
r7 = 0x0000008d
|
|
r8 = 0x00000063
|
|
r9 = 0x00000020
|
|
r10 = 0x00000080
|
|
r11 = 0x000000e9
|
|
r12 = 0x000000e9
|
|
r13 = 0x000000c2
|
|
r14 = 0x000000c1
|
|
r15 = 0x000000d1
|
|
-- round 12
|
|
r0 = 0x00000062
|
|
r1 = 0x00000000
|
|
r2 = 0x0000003e
|
|
r3 = 0x00000078
|
|
r4 = 0x000000d9
|
|
r5 = 0x00000090
|
|
r6 = 0x000000c4
|
|
r7 = 0x00000064
|
|
r8 = 0x00000061
|
|
r9 = 0x00000062
|
|
r10 = 0x00000062
|
|
r11 = 0x00000021
|
|
r12 = 0x00000081
|
|
r13 = 0x000000e8
|
|
r14 = 0x000000e9
|
|
r15 = 0x000000c3
|
|
-- round 13
|
|
r0 = 0x00000011
|
|
r1 = 0x00000008
|
|
r2 = 0x000000bd
|
|
r3 = 0x000000bc
|
|
r4 = 0x0000004e
|
|
r5 = 0x00000040
|
|
r6 = 0x00000062
|
|
r7 = 0x0000001a
|
|
r8 = 0x00000071
|
|
r9 = 0x00000064
|
|
r10 = 0x00000060
|
|
r11 = 0x00000063
|
|
r12 = 0x00000073
|
|
r13 = 0x00000020
|
|
r14 = 0x00000081
|
|
r15 = 0x000000e9
|
|
-- round 14
|
|
r0 = 0x00000000
|
|
r1 = 0x00000024
|
|
r2 = 0x00000056
|
|
r3 = 0x0000007c
|
|
r4 = 0x00000027
|
|
r5 = 0x00000020
|
|
r6 = 0x00000039
|
|
r7 = 0x00000025
|
|
r8 = 0x00000071
|
|
r9 = 0x00000070
|
|
r10 = 0x00000064
|
|
r11 = 0x00000061
|
|
r12 = 0x00000073
|
|
r13 = 0x00000072
|
|
r14 = 0x00000021
|
|
r15 = 0x00000081
|
|
-- round 15
|
|
r0 = 0x00000041
|
|
r1 = 0x00000020
|
|
r2 = 0x00000052
|
|
r3 = 0x00000069
|
|
r4 = 0x00000076
|
|
r5 = 0x00000061
|
|
r6 = 0x0000006c
|
|
r7 = 0x00000020
|
|
r8 = 0x00000041
|
|
r9 = 0x00000070
|
|
r10 = 0x00000070
|
|
r11 = 0x00000065
|
|
r12 = 0x00000061
|
|
r13 = 0x00000072
|
|
r14 = 0x00000073
|
|
r15 = 0x00000021
|
|
pcl = 0x00000022
|
|
|
|
EOF
|
|
RUN
|
|
|
|
NAME=AVR: mul
|
|
FILE=malloc://1024
|
|
CMDS=<<EOF
|
|
e asm.arch=avr
|
|
wx 019f
|
|
aei
|
|
(mul x y; ?e ======== ${x} * ${y} ========; ar r16 = ${x}; ar r17 = ${y}; ar pc = 0; aes; ?e r0; ar r0; ?e r1; ar r1; ?e r16; ar r16; ?e r17; ar r17; ?e sreg; ar sreg)
|
|
.(mul 42 13)
|
|
.(mul 0xff 0xff)
|
|
.(mul 0 42)
|
|
.(mul 0x10 0x80)
|
|
EOF
|
|
EXPECT=<<EOF
|
|
======== 42 * 13 ========
|
|
r0
|
|
r0 = 0x00000022
|
|
r1
|
|
r1 = 0x00000002
|
|
r16
|
|
r16 = 0x0000002a
|
|
r17
|
|
r17 = 0x0000000d
|
|
sreg
|
|
sreg = 0x00000000
|
|
======== 0xff * 0xff ========
|
|
r0
|
|
r0 = 0x00000001
|
|
r1
|
|
r1 = 0x000000fe
|
|
r16
|
|
r16 = 0x000000ff
|
|
r17
|
|
r17 = 0x000000ff
|
|
sreg
|
|
sreg = 0x00000001
|
|
======== 0 * 42 ========
|
|
r0
|
|
r0 = 0x00000000
|
|
r1
|
|
r1 = 0x00000000
|
|
r16
|
|
r16 = 0x00000000
|
|
r17
|
|
r17 = 0x0000002a
|
|
sreg
|
|
sreg = 0x00000002
|
|
======== 0x10 * 0x80 ========
|
|
r0
|
|
r0 = 0x00000000
|
|
r1
|
|
r1 = 0x00000008
|
|
r16
|
|
r16 = 0x00000010
|
|
r17
|
|
r17 = 0x00000080
|
|
sreg
|
|
sreg = 0x00000000
|
|
EOF
|
|
RUN
|
|
|
|
NAME=AVR: muls
|
|
FILE=malloc://1024
|
|
CMDS=<<EOF
|
|
e asm.arch=avr
|
|
wx 0102
|
|
aei
|
|
(muls x y; ?e ======== ${x} * ${y} ========; ar r16 = ${x}; ar r17 = ${y}; ar pc = 0; aes; ?e r0; ar r0; ?e r1; ar r1; ?e r16; ar r16; ?e r17; ar r17; ?e sreg; ar sreg)
|
|
.(muls 42 13)
|
|
.(muls 0xff 0xff)
|
|
.(muls 0 42)
|
|
.(muls 0x10 0x80)
|
|
EOF
|
|
EXPECT=<<EOF
|
|
======== 42 * 13 ========
|
|
r0
|
|
r0 = 0x00000022
|
|
r1
|
|
r1 = 0x00000002
|
|
r16
|
|
r16 = 0x0000002a
|
|
r17
|
|
r17 = 0x0000000d
|
|
sreg
|
|
sreg = 0x00000000
|
|
======== 0xff * 0xff ========
|
|
r0
|
|
r0 = 0x00000001
|
|
r1
|
|
r1 = 0x00000000
|
|
r16
|
|
r16 = 0x000000ff
|
|
r17
|
|
r17 = 0x000000ff
|
|
sreg
|
|
sreg = 0x00000000
|
|
======== 0 * 42 ========
|
|
r0
|
|
r0 = 0x00000000
|
|
r1
|
|
r1 = 0x00000000
|
|
r16
|
|
r16 = 0x00000000
|
|
r17
|
|
r17 = 0x0000002a
|
|
sreg
|
|
sreg = 0x00000002
|
|
======== 0x10 * 0x80 ========
|
|
r0
|
|
r0 = 0x00000000
|
|
r1
|
|
r1 = 0x000000f8
|
|
r16
|
|
r16 = 0x00000010
|
|
r17
|
|
r17 = 0x00000080
|
|
sreg
|
|
sreg = 0x00000001
|
|
EOF
|
|
RUN
|
|
|
|
NAME=AVR: mulsu
|
|
FILE=malloc://1024
|
|
CMDS=<<EOF
|
|
e asm.arch=avr
|
|
wx 0103
|
|
aei
|
|
(mulsu x y; ?e ======== ${x} * ${y} ========; ar r16 = ${x}; ar r17 = ${y}; ar pc = 0; aes; ?e r0; ar r0; ?e r1; ar r1; ?e r16; ar r16; ?e r17; ar r17; ?e sreg; ar sreg)
|
|
.(mulsu 42 13)
|
|
.(mulsu 0xff 0xff)
|
|
.(mulsu 0 42)
|
|
.(mulsu 0x10 0x80)
|
|
.(mulsu 13 42)
|
|
.(mulsu 42 0)
|
|
.(mulsu 0x80 0x10)
|
|
EOF
|
|
EXPECT=<<EOF
|
|
======== 42 * 13 ========
|
|
r0
|
|
r0 = 0x00000022
|
|
r1
|
|
r1 = 0x00000002
|
|
r16
|
|
r16 = 0x0000002a
|
|
r17
|
|
r17 = 0x0000000d
|
|
sreg
|
|
sreg = 0x00000000
|
|
======== 0xff * 0xff ========
|
|
r0
|
|
r0 = 0x00000001
|
|
r1
|
|
r1 = 0x000000ff
|
|
r16
|
|
r16 = 0x000000ff
|
|
r17
|
|
r17 = 0x000000ff
|
|
sreg
|
|
sreg = 0x00000001
|
|
======== 0 * 42 ========
|
|
r0
|
|
r0 = 0x00000000
|
|
r1
|
|
r1 = 0x00000000
|
|
r16
|
|
r16 = 0x00000000
|
|
r17
|
|
r17 = 0x0000002a
|
|
sreg
|
|
sreg = 0x00000002
|
|
======== 0x10 * 0x80 ========
|
|
r0
|
|
r0 = 0x00000000
|
|
r1
|
|
r1 = 0x00000008
|
|
r16
|
|
r16 = 0x00000010
|
|
r17
|
|
r17 = 0x00000080
|
|
sreg
|
|
sreg = 0x00000000
|
|
======== 13 * 42 ========
|
|
r0
|
|
r0 = 0x00000022
|
|
r1
|
|
r1 = 0x00000002
|
|
r16
|
|
r16 = 0x0000000d
|
|
r17
|
|
r17 = 0x0000002a
|
|
sreg
|
|
sreg = 0x00000000
|
|
======== 42 * 0 ========
|
|
r0
|
|
r0 = 0x00000000
|
|
r1
|
|
r1 = 0x00000000
|
|
r16
|
|
r16 = 0x0000002a
|
|
r17
|
|
r17 = 0x00000000
|
|
sreg
|
|
sreg = 0x00000002
|
|
======== 0x80 * 0x10 ========
|
|
r0
|
|
r0 = 0x00000000
|
|
r1
|
|
r1 = 0x000000f8
|
|
r16
|
|
r16 = 0x00000080
|
|
r17
|
|
r17 = 0x00000010
|
|
sreg
|
|
sreg = 0x00000001
|
|
EOF
|
|
RUN
|
|
|
|
NAME=AVR: fmul
|
|
FILE=malloc://1024
|
|
CMDS=<<EOF
|
|
e asm.arch=avr
|
|
wx 0903
|
|
aei
|
|
(fmul x y; ?e ======== ${x} * ${y} ========; ar r16 = ${x}; ar r17 = ${y}; ar pc = 0; aes; ?e r0; ar r0; ?e r1; ar r1; ?e r16; ar r16; ?e r17; ar r17; ?e sreg; ar sreg)
|
|
.(fmul 42 13)
|
|
.(fmul 0xff 0xff)
|
|
.(fmul 0 42)
|
|
.(fmul 0x10 0x80)
|
|
EOF
|
|
EXPECT=<<EOF
|
|
======== 42 * 13 ========
|
|
r0
|
|
r0 = 0x00000044
|
|
r1
|
|
r1 = 0x00000004
|
|
r16
|
|
r16 = 0x0000002a
|
|
r17
|
|
r17 = 0x0000000d
|
|
sreg
|
|
sreg = 0x00000000
|
|
======== 0xff * 0xff ========
|
|
r0
|
|
r0 = 0x00000002
|
|
r1
|
|
r1 = 0x000000fc
|
|
r16
|
|
r16 = 0x000000ff
|
|
r17
|
|
r17 = 0x000000ff
|
|
sreg
|
|
sreg = 0x00000001
|
|
======== 0 * 42 ========
|
|
r0
|
|
r0 = 0x00000000
|
|
r1
|
|
r1 = 0x00000000
|
|
r16
|
|
r16 = 0x00000000
|
|
r17
|
|
r17 = 0x0000002a
|
|
sreg
|
|
sreg = 0x00000002
|
|
======== 0x10 * 0x80 ========
|
|
r0
|
|
r0 = 0x00000000
|
|
r1
|
|
r1 = 0x00000010
|
|
r16
|
|
r16 = 0x00000010
|
|
r17
|
|
r17 = 0x00000080
|
|
sreg
|
|
sreg = 0x00000000
|
|
EOF
|
|
RUN
|
|
|
|
NAME=AVR: fmuls
|
|
FILE=malloc://1024
|
|
CMDS=<<EOF
|
|
e asm.arch=avr
|
|
wx 8103
|
|
aei
|
|
(fmuls x y; ?e ======== ${x} * ${y} ========; ar r16 = ${x}; ar r17 = ${y}; ar pc = 0; aes; ?e r0; ar r0; ?e r1; ar r1; ?e r16; ar r16; ?e r17; ar r17; ?e sreg; ar sreg)
|
|
.(fmuls 42 13)
|
|
.(fmuls 0xff 0xff)
|
|
.(fmuls 0 42)
|
|
.(fmuls 0x10 0x80)
|
|
EOF
|
|
EXPECT=<<EOF
|
|
======== 42 * 13 ========
|
|
r0
|
|
r0 = 0x00000044
|
|
r1
|
|
r1 = 0x00000004
|
|
r16
|
|
r16 = 0x0000002a
|
|
r17
|
|
r17 = 0x0000000d
|
|
sreg
|
|
sreg = 0x00000000
|
|
======== 0xff * 0xff ========
|
|
r0
|
|
r0 = 0x00000002
|
|
r1
|
|
r1 = 0x00000000
|
|
r16
|
|
r16 = 0x000000ff
|
|
r17
|
|
r17 = 0x000000ff
|
|
sreg
|
|
sreg = 0x00000000
|
|
======== 0 * 42 ========
|
|
r0
|
|
r0 = 0x00000000
|
|
r1
|
|
r1 = 0x00000000
|
|
r16
|
|
r16 = 0x00000000
|
|
r17
|
|
r17 = 0x0000002a
|
|
sreg
|
|
sreg = 0x00000002
|
|
======== 0x10 * 0x80 ========
|
|
r0
|
|
r0 = 0x00000000
|
|
r1
|
|
r1 = 0x000000f0
|
|
r16
|
|
r16 = 0x00000010
|
|
r17
|
|
r17 = 0x00000080
|
|
sreg
|
|
sreg = 0x00000001
|
|
EOF
|
|
RUN
|
|
|
|
NAME=AVR: fmulsu
|
|
FILE=malloc://1024
|
|
CMDS=<<EOF
|
|
e asm.arch=avr
|
|
wx 8903
|
|
aei
|
|
(fmulsu x y; ?e ======== ${x} * ${y} ========; ar r16 = ${x}; ar r17 = ${y}; ar pc = 0; aes; ?e r0; ar r0; ?e r1; ar r1; ?e r16; ar r16; ?e r17; ar r17; ?e sreg; ar sreg)
|
|
.(fmulsu 42 13)
|
|
.(fmulsu 0xff 0xff)
|
|
.(fmulsu 0 42)
|
|
.(fmulsu 0x10 0x80)
|
|
.(fmulsu 13 42)
|
|
.(fmulsu 42 0)
|
|
.(fmulsu 0x80 0x10)
|
|
EOF
|
|
EXPECT=<<EOF
|
|
======== 42 * 13 ========
|
|
r0
|
|
r0 = 0x00000044
|
|
r1
|
|
r1 = 0x00000004
|
|
r16
|
|
r16 = 0x0000002a
|
|
r17
|
|
r17 = 0x0000000d
|
|
sreg
|
|
sreg = 0x00000000
|
|
======== 0xff * 0xff ========
|
|
r0
|
|
r0 = 0x00000002
|
|
r1
|
|
r1 = 0x000000fe
|
|
r16
|
|
r16 = 0x000000ff
|
|
r17
|
|
r17 = 0x000000ff
|
|
sreg
|
|
sreg = 0x00000001
|
|
======== 0 * 42 ========
|
|
r0
|
|
r0 = 0x00000000
|
|
r1
|
|
r1 = 0x00000000
|
|
r16
|
|
r16 = 0x00000000
|
|
r17
|
|
r17 = 0x0000002a
|
|
sreg
|
|
sreg = 0x00000002
|
|
======== 0x10 * 0x80 ========
|
|
r0
|
|
r0 = 0x00000000
|
|
r1
|
|
r1 = 0x00000010
|
|
r16
|
|
r16 = 0x00000010
|
|
r17
|
|
r17 = 0x00000080
|
|
sreg
|
|
sreg = 0x00000000
|
|
======== 13 * 42 ========
|
|
r0
|
|
r0 = 0x00000044
|
|
r1
|
|
r1 = 0x00000004
|
|
r16
|
|
r16 = 0x0000000d
|
|
r17
|
|
r17 = 0x0000002a
|
|
sreg
|
|
sreg = 0x00000000
|
|
======== 42 * 0 ========
|
|
r0
|
|
r0 = 0x00000000
|
|
r1
|
|
r1 = 0x00000000
|
|
r16
|
|
r16 = 0x0000002a
|
|
r17
|
|
r17 = 0x00000000
|
|
sreg
|
|
sreg = 0x00000002
|
|
======== 0x80 * 0x10 ========
|
|
r0
|
|
r0 = 0x00000000
|
|
r1
|
|
r1 = 0x000000f0
|
|
r16
|
|
r16 = 0x00000080
|
|
r17
|
|
r17 = 0x00000010
|
|
sreg
|
|
sreg = 0x00000001
|
|
EOF
|
|
RUN
|
|
|
|
NAME=AVR: adiw
|
|
FILE=malloc://1024
|
|
CMDS=<<EOF
|
|
e asm.arch=avr
|
|
aei
|
|
(adiw h l x; ?e ======== ${h}:${l} + ${x} ========; wa "adiw r27:r26, ${x}"; pi 1; ar r27 = ${h}; ar r26 = ${l}; ar pc = 0; aes; ?e r26; ar r26; ?e r27; ar r27; ?e sreg; ar sreg)
|
|
.(adiw 0xca 0xfe 0x3f)
|
|
.(adiw 0x0a 0xfe 0x3f)
|
|
.(adiw 0xff 0xff 0x01)
|
|
.(adiw 0x77 0x7e 0x03)
|
|
.(adiw 0x7f 0xfe 0x03)
|
|
.(adiw 0x80 0x00 0x01)
|
|
.(adiw 0x00 0x00 0x00)
|
|
EOF
|
|
EXPECT=<<EOF
|
|
======== 0xca:0xfe + 0x3f ========
|
|
adiw r27:r26, 0x3f
|
|
r26
|
|
r26 = 0x0000003d
|
|
r27
|
|
r27 = 0x000000cb
|
|
sreg
|
|
sreg = 0x00000014
|
|
======== 0x0a:0xfe + 0x3f ========
|
|
adiw r27:r26, 0x3f
|
|
r26
|
|
r26 = 0x0000003d
|
|
r27
|
|
r27 = 0x0000000b
|
|
sreg
|
|
sreg = 0x00000000
|
|
======== 0xff:0xff + 0x01 ========
|
|
adiw r27:r26, 0x01
|
|
r26
|
|
r26 = 0x00000000
|
|
r27
|
|
r27 = 0x00000000
|
|
sreg
|
|
sreg = 0x00000003
|
|
======== 0x77:0x7e + 0x03 ========
|
|
adiw r27:r26, 0x03
|
|
r26
|
|
r26 = 0x00000081
|
|
r27
|
|
r27 = 0x00000077
|
|
sreg
|
|
sreg = 0x00000000
|
|
======== 0x7f:0xfe + 0x03 ========
|
|
adiw r27:r26, 0x03
|
|
r26
|
|
r26 = 0x00000001
|
|
r27
|
|
r27 = 0x00000080
|
|
sreg
|
|
sreg = 0x0000000c
|
|
======== 0x80:0x00 + 0x01 ========
|
|
adiw r27:r26, 0x01
|
|
r26
|
|
r26 = 0x00000001
|
|
r27
|
|
r27 = 0x00000080
|
|
sreg
|
|
sreg = 0x00000014
|
|
======== 0x00:0x00 + 0x00 ========
|
|
adiw r27:r26, 0x00
|
|
r26
|
|
r26 = 0x00000000
|
|
r27
|
|
r27 = 0x00000000
|
|
sreg
|
|
sreg = 0x00000002
|
|
EOF
|
|
RUN
|
|
|
|
NAME=AVR: sbiw
|
|
FILE=malloc://1024
|
|
CMDS=<<EOF
|
|
e asm.arch=avr
|
|
aei
|
|
(sbiw h l x; ?e ======== ${h}:${l} - ${x} ========; wa "sbiw r27:r26, ${x}"; pi 1; ar r27 = ${h}; ar r26 = ${l}; ar pc = 0; aes; ?e r26; ar r26; ?e r27; ar r27; ?e sreg; ar sreg)
|
|
.(sbiw 0xca 0x21 0x3f)
|
|
.(sbiw 0x00 0x10 0x3f)
|
|
.(sbiw 0x80 0x00 0x01)
|
|
.(sbiw 0x80 0x05 0x01)
|
|
.(sbiw 0x00 0x02 0x03)
|
|
.(sbiw 0x00 0x12 0x12)
|
|
EOF
|
|
EXPECT=<<EOF
|
|
======== 0xca:0x21 - 0x3f ========
|
|
sbiw r27:r26, 0x3f
|
|
r26
|
|
r26 = 0x000000e2
|
|
r27
|
|
r27 = 0x000000c9
|
|
sreg
|
|
sreg = 0x00000014
|
|
======== 0x00:0x10 - 0x3f ========
|
|
sbiw r27:r26, 0x3f
|
|
r26
|
|
r26 = 0x000000d1
|
|
r27
|
|
r27 = 0x000000ff
|
|
sreg
|
|
sreg = 0x00000015
|
|
======== 0x80:0x00 - 0x01 ========
|
|
sbiw r27:r26, 0x01
|
|
r26
|
|
r26 = 0x000000ff
|
|
r27
|
|
r27 = 0x0000007f
|
|
sreg
|
|
sreg = 0x00000018
|
|
======== 0x80:0x05 - 0x01 ========
|
|
sbiw r27:r26, 0x01
|
|
r26
|
|
r26 = 0x00000004
|
|
r27
|
|
r27 = 0x00000080
|
|
sreg
|
|
sreg = 0x00000014
|
|
======== 0x00:0x02 - 0x03 ========
|
|
sbiw r27:r26, 0x03
|
|
r26
|
|
r26 = 0x000000ff
|
|
r27
|
|
r27 = 0x000000ff
|
|
sreg
|
|
sreg = 0x00000015
|
|
======== 0x00:0x12 - 0x12 ========
|
|
sbiw r27:r26, 0x12
|
|
r26
|
|
r26 = 0x00000000
|
|
r27
|
|
r27 = 0x00000000
|
|
sreg
|
|
sreg = 0x00000002
|
|
EOF
|
|
RUN
|