dbry / WavPack

WavPack encode/decode library, command-line programs, and several plugins
BSD 3-Clause "New" or "Revised" License
346 stars 65 forks source link

wavpack 5.3.0 fails to compile on Apple Silicon #93

Open fxcoudert opened 3 years ago

fxcoudert commented 3 years ago

wavpack 5.3.0 fails to compile on Apple Silicon (aarch64-apple-darwin20) because the ARM assembly is not recognised by the system compiler (Apple's clang 12):

2020-12-31T14:30:36.1444980Z unpack_armv7.S:1:1: error: unexpected token at start of statement
2020-12-31T14:30:36.1445710Z @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
2020-12-31T14:30:36.1446140Z ^
2020-12-31T14:30:36.1446800Z unpack_armv7.S:2:1: error: unexpected token at start of statement
2020-12-31T14:30:36.1447500Z @@ **** WAVPACK **** @@
2020-12-31T14:30:36.1447910Z ^
2020-12-31T14:30:36.1448550Z unpack_armv7.S:3:1: error: unexpected token at start of statement
2020-12-31T14:30:36.1449470Z @@ Hybrid Lossless Wavefile Compressor @@
2020-12-31T14:30:36.1450030Z ^
2020-12-31T14:30:36.1450680Z unpack_armv7.S:4:1: error: unexpected token at start of statement
2020-12-31T14:30:36.1451730Z @@ Copyright (c) 1998 - 2019 David Bryant. @@
2020-12-31T14:30:36.1452230Z ^
2020-12-31T14:30:36.1452870Z unpack_armv7.S:5:1: error: unexpected token at start of statement
2020-12-31T14:30:36.1453630Z @@ All Rights Reserved. @@
2020-12-31T14:30:36.1454180Z ^
2020-12-31T14:30:36.1454820Z unpack_armv7.S:6:1: error: unexpected token at start of statement
2020-12-31T14:30:36.1455840Z @@ Distributed under the BSD Software License (see license.txt) @@
2020-12-31T14:30:36.1456540Z ^
2020-12-31T14:30:36.1457210Z unpack_armv7.S:7:1: error: unexpected token at start of statement
2020-12-31T14:30:36.1457990Z @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
2020-12-31T14:30:36.1458450Z ^
2020-12-31T14:30:36.1459160Z unpack_armv7.S:10:15: warning: p2align directive with no operand(s) is ignored
2020-12-31T14:30:36.1459890Z         .align
2020-12-31T14:30:36.1460280Z               ^
2020-12-31T14:30:36.1460870Z unpack_armv7.S:47:9: error: unknown directive
2020-12-31T14:30:36.1461450Z         .arm
2020-12-31T14:30:36.1461860Z         ^
2020-12-31T14:30:36.1462440Z unpack_armv7.S:48:9: error: unknown directive
2020-12-31T14:30:36.1463220Z         .type unpack_decorr_stereo_pass_cont_armv7, STT_FUNC
2020-12-31T14:30:36.1474320Z         ^
2020-12-31T14:30:36.1475010Z unpack_armv7.S:52:21: error: vector register expected
2020-12-31T14:30:36.1476060Z         stmfd sp!, {r4 - r8, r10, r11, lr}
2020-12-31T14:30:36.1476510Z                     ^
2020-12-31T14:30:36.1477330Z unpack_armv7.S:54:22: error: invalid variant 'r5'
2020-12-31T14:30:36.1477920Z         mov r5, r0 @ r5 = dpp
2020-12-31T14:30:36.1478350Z                      ^
2020-12-31T14:30:36.1479150Z unpack_armv7.S:55:25: error: invalid variant 'r11'
2020-12-31T14:30:36.1479800Z         mov r11, #512 @ r11 = 512 for rounding
2020-12-31T14:30:36.1480270Z                         ^
2020-12-31T14:30:36.1480930Z unpack_armv7.S:56:26: error: unexpected token in argument list
2020-12-31T14:30:36.1481890Z         ldr r6, [r0, #4] @ r6 = dpp->delta
2020-12-31T14:30:36.1482360Z                          ^
2020-12-31T14:30:36.1483010Z unpack_armv7.S:57:26: error: unexpected token in argument list
2020-12-31T14:30:36.1483980Z         ldr r4, [r0, #8] @ r4 = dpp->weight_A
2020-12-31T14:30:36.1484460Z                          ^
2020-12-31T14:30:36.1485110Z unpack_armv7.S:58:27: error: unexpected token in argument list
2020-12-31T14:30:36.1486080Z         ldr r0, [r0, #12] @ r0 = dpp->weight_B
2020-12-31T14:30:36.1486560Z                           ^
2020-12-31T14:30:36.1487380Z unpack_armv7.S:59:22: error: invalid variant 'exit'
2020-12-31T14:30:36.1488110Z         cmp r2, #0 @ exit if no samples to process
2020-12-31T14:30:36.1488630Z                      ^
2020-12-31T14:30:36.1489280Z unpack_armv7.S:62:29: error: unexpected token in argument list
2020-12-31T14:30:36.1490080Z         add r7, r1, r2, asl #3 @ r7 = buffer ending position
2020-12-31T14:30:36.1490630Z                             ^
2020-12-31T14:30:36.1491280Z unpack_armv7.S:63:26: error: unexpected token in argument list
2020-12-31T14:30:36.1492230Z         ldr r2, [r5, #0] @ r2 = dpp->term
2020-12-31T14:30:36.1492690Z                          ^
2020-12-31T14:30:36.1493330Z unpack_armv7.S:64:13: error: invalid operand for instruction
2020-12-31T14:30:36.1493970Z         cmp r2, #0
2020-12-31T14:30:36.1494360Z             ^
2020-12-31T14:30:36.1494990Z unpack_armv7.S:67:28: error: unexpected token in argument list
2020-12-31T14:30:36.1496060Z         ldr lr, [r1, #-16] @ load 2 sample history from buffer
2020-12-31T14:30:36.1496620Z                            ^
2020-12-31T14:30:36.1497270Z unpack_armv7.S:68:29: error: unexpected token in argument list
2020-12-31T14:30:36.1498250Z         ldr r10, [r1, #-12] @ for terms 2, 17, and 18
2020-12-31T14:30:36.1498880Z                             ^
2020-12-31T14:30:36.1499520Z unpack_armv7.S:69:13: error: invalid operand for instruction
2020-12-31T14:30:36.1500400Z         ldr r8, [r1, #-8]
2020-12-31T14:30:36.1500800Z             ^
2020-12-31T14:30:36.1501420Z unpack_armv7.S:70:13: error: invalid operand for instruction
2020-12-31T14:30:36.1502280Z         ldr r3, [r1, #-4]
2020-12-31T14:30:36.1502690Z             ^
2020-12-31T14:30:36.1503310Z unpack_armv7.S:71:13: error: invalid operand for instruction
2020-12-31T14:30:36.1503960Z         cmp r2, #17
2020-12-31T14:30:36.1504340Z             ^
2020-12-31T14:30:36.1504960Z unpack_armv7.S:73:13: error: invalid operand for instruction
2020-12-31T14:30:36.1505600Z         cmp r2, #18
2020-12-31T14:30:36.1505990Z             ^
2020-12-31T14:30:36.1506610Z unpack_armv7.S:75:13: error: invalid operand for instruction
2020-12-31T14:30:36.1507330Z         cmp r2, #2
2020-12-31T14:30:36.1507720Z             ^
2020-12-31T14:30:36.1508550Z unpack_armv7.S:77:31: error: invalid variant 'else'
2020-12-31T14:30:36.1509610Z         b term_default_loop @ else handle default (1-8, except 2)
2020-12-31T14:30:36.1510230Z                               ^
2020-12-31T14:30:36.1511040Z unpack_armv7.S:80:26: error: invalid variant 'r10'
2020-12-31T14:30:36.1511980Z         mov r10, #1024 @ r10 = -1024 for weight clipping
2020-12-31T14:30:36.1512490Z                          ^
2020-12-31T14:30:36.1513440Z unpack_armv7.S:81:28: error: unexpected symbol modifier following '@'
2020-12-31T14:30:36.1514280Z         rsb r10, r10, #0 @ (only used for negative terms)
2020-12-31T14:30:36.1514820Z                            ^
2020-12-31T14:30:36.1515450Z unpack_armv7.S:82:13: error: invalid operand for instruction
2020-12-31T14:30:36.1516090Z         cmn r2, #1
2020-12-31T14:30:36.1516470Z             ^
2020-12-31T14:30:36.1517100Z unpack_armv7.S:84:13: error: invalid operand for instruction
2020-12-31T14:30:36.1517730Z         cmn r2, #2
2020-12-31T14:30:36.1518120Z             ^
2020-12-31T14:30:36.1518740Z unpack_armv7.S:86:13: error: invalid operand for instruction
2020-12-31T14:30:36.1519370Z         cmn r2, #3
2020-12-31T14:30:36.1519750Z             ^
2020-12-31T14:30:36.1520400Z unpack_armv7.S:106:29: error: unexpected token in argument list
2020-12-31T14:30:36.1521500Z         rsb ip, lr, r8, asl #1 @ decorr value = (2 * prev) - 2nd prev
2020-12-31T14:30:36.1522080Z                             ^
2020-12-31T14:30:36.1522940Z unpack_armv7.S:107:22: error: invalid variant 'previous'
2020-12-31T14:30:36.1523720Z         mov lr, r8 @ previous becomes 2nd previous
2020-12-31T14:30:36.1524270Z                      ^
2020-12-31T14:30:36.1525070Z unpack_armv7.S:108:28: error: invalid variant 'get'
2020-12-31T14:30:36.1525790Z         ldr r2, [r1], #4 @ get sample & update pointer
2020-12-31T14:30:36.1526340Z                            ^
2020-12-31T14:30:36.1527160Z unpack_armv7.S:109:31: error: invalid variant 'check'
2020-12-31T14:30:36.1528000Z         mov r8, ip, lsl #11 @ check magnitude by shifting left then right
2020-12-31T14:30:36.1528630Z                               ^
2020-12-31T14:30:36.1529450Z unpack_armv7.S:110:31: error: invalid variant 'and'
2020-12-31T14:30:36.1530540Z         cmp ip, r8, asr #11 @ and comparing, branch to 64-bit math if different
2020-12-31T14:30:36.1531190Z                               ^
2020-12-31T14:30:36.1531830Z unpack_armv7.S:112:13: error: invalid operand for instruction
2020-12-31T14:30:36.1532480Z         cmp ip, #0
2020-12-31T14:30:36.1532870Z             ^
2020-12-31T14:30:36.1533680Z unpack_armv7.S:113:31: error: invalid variant 'mult'
2020-12-31T14:30:36.1534440Z         mla r8, ip, r4, r11 @ mult decorr value by weight, round,
2020-12-31T14:30:36.1535030Z                               ^
2020-12-31T14:30:36.1535850Z unpack_armv7.S:114:35: error: invalid variant 'shift'
2020-12-31T14:30:36.1536590Z         add r8, r2, r8, asr #10 @ shift, and add to new sample
2020-12-31T14:30:36.1537140Z                                   ^
2020-12-31T14:30:36.1538050Z unpack_armv7.S:117:20: error: invalid variant 'use'
2020-12-31T14:30:36.1539040Z S117: mov r8, #0 @ use 64-bit multiply to avoid overflow
2020-12-31T14:30:36.1539610Z                    ^
2020-12-31T14:30:36.1540240Z unpack_armv7.S:118:15: error: invalid operand for instruction
2020-12-31T14:30:36.1540920Z         smlal r11, r8, r4, ip
2020-12-31T14:30:36.1541340Z               ^
2020-12-31T14:30:36.1541960Z unpack_armv7.S:119:13: error: invalid operand for instruction
2020-12-31T14:30:36.1542630Z         add r8, r2, r8, lsl #22
2020-12-31T14:30:36.1543050Z             ^
2020-12-31T14:30:36.1543680Z unpack_armv7.S:120:13: error: invalid operand for instruction
2020-12-31T14:30:36.1544350Z         add r8, r8, r11, lsr #10
2020-12-31T14:30:36.1544760Z             ^
2020-12-31T14:30:36.1545380Z unpack_armv7.S:121:13: error: invalid operand for instruction
2020-12-31T14:30:36.1546110Z         mov r11, #512
2020-12-31T14:30:36.1546520Z             ^
2020-12-31T14:30:36.1547160Z unpack_armv7.S:123:27: error: unexpected token in argument list
2020-12-31T14:30:36.1548310Z S118: strne r8, [r1, #-4] @ if change possible, store sample back
2020-12-31T14:30:36.1548920Z                           ^
2020-12-31T14:30:36.1549560Z unpack_armv7.S:124:15: error: invalid operand for instruction
2020-12-31T14:30:36.1550210Z         cmpne r2, #0
2020-12-31T14:30:36.1550620Z               ^
2020-12-31T14:30:36.1551450Z unpack_armv7.S:126:22: error: invalid variant 'update'
2020-12-31T14:30:36.1552190Z         teq ip, r2 @ update weight based on signs
2020-12-31T14:30:36.1552720Z                      ^
2020-12-31T14:30:36.1553480Z unpack_armv7.S:127:9: error: unrecognized instruction mnemonic, did you mean: sub?
2020-12-31T14:30:36.1554250Z         submi r4, r4, r6
2020-12-31T14:30:36.1554660Z         ^
2020-12-31T14:30:36.1555280Z unpack_armv7.S:128:15: error: invalid operand for instruction
2020-12-31T14:30:36.1555950Z         addpl r4, r4, r6
2020-12-31T14:30:36.1556360Z               ^
2020-12-31T14:30:36.1557010Z unpack_armv7.S:130:28: error: unexpected token in argument list
2020-12-31T14:30:36.1557830Z S325: rsb ip, r10, r3, asl #1 @ do same thing for right channel
2020-12-31T14:30:36.1558400Z                            ^
2020-12-31T14:30:36.1559040Z unpack_armv7.S:131:13: error: invalid operand for instruction
2020-12-31T14:30:36.1559680Z         mov r10, r3
2020-12-31T14:30:36.1560070Z             ^
2020-12-31T14:30:36.1560700Z unpack_armv7.S:132:13: error: invalid operand for instruction
2020-12-31T14:30:36.1561340Z         ldr r2, [r1], #4
2020-12-31T14:30:36.1561740Z             ^
2020-12-31T14:30:36.1562560Z unpack_armv7.S:133:31: error: invalid variant 'check'
2020-12-31T14:30:36.1563380Z         mov r3, ip, lsl #11 @ check magnitude by shifting left then right
2020-12-31T14:30:36.1564010Z                               ^
2020-12-31T14:30:36.1564820Z unpack_armv7.S:134:31: error: invalid variant 'and'
2020-12-31T14:30:36.1565920Z         cmp ip, r3, asr #11 @ and comparing, branch to 64-bit math if different
2020-12-31T14:30:36.1566580Z                               ^
2020-12-31T14:30:36.1567220Z unpack_armv7.S:136:13: error: invalid operand for instruction
2020-12-31T14:30:36.1567860Z         cmp ip, #0
2020-12-31T14:30:36.1568250Z             ^
2020-12-31T14:30:36.1568880Z unpack_armv7.S:137:13: error: invalid operand for instruction
2020-12-31T14:30:36.1569550Z         mla r3, ip, r0, r11
2020-12-31T14:30:36.1569960Z             ^
2020-12-31T14:30:36.1570590Z unpack_armv7.S:138:13: error: invalid operand for instruction
2020-12-31T14:30:36.1571250Z         add r3, r2, r3, asr #10
2020-12-31T14:30:36.1571680Z             ^
2020-12-31T14:30:36.1572300Z unpack_armv7.S:141:11: error: invalid operand for instruction
2020-12-31T14:30:36.1572950Z S119: mov r3, #0
2020-12-31T14:30:36.1573340Z           ^
2020-12-31T14:30:36.1573960Z unpack_armv7.S:142:15: error: invalid operand for instruction
2020-12-31T14:30:36.1574660Z         smlal r11, r3, r0, ip
2020-12-31T14:30:36.1575090Z               ^
2020-12-31T14:30:36.1575810Z unpack_armv7.S:143:13: error: invalid operand for instruction
2020-12-31T14:30:36.1576510Z         add r3, r2, r3, lsl #22
2020-12-31T14:30:36.1576940Z             ^
2020-12-31T14:30:36.1577600Z unpack_armv7.S:144:13: error: invalid operand for instruction
2020-12-31T14:30:36.1578280Z         add r3, r3, r11, lsr #10
2020-12-31T14:30:36.1578710Z             ^
2020-12-31T14:30:36.1579340Z unpack_armv7.S:145:13: error: invalid operand for instruction
2020-12-31T14:30:36.1580010Z         mov r11, #512
2020-12-31T14:30:36.1580400Z             ^
2020-12-31T14:30:36.1581160Z unpack_armv7.S:147:7: error: unrecognized instruction mnemonic, did you mean: str?
2020-12-31T14:30:36.1582200Z S120: strne r3, [r1, #-4]
2020-12-31T14:30:36.1582630Z       ^
2020-12-31T14:30:36.1583240Z unpack_armv7.S:148:15: error: invalid operand for instruction
2020-12-31T14:30:36.1583900Z         cmpne r2, #0
2020-12-31T14:30:36.1584380Z               ^
2020-12-31T14:30:36.1585100Z unpack_armv7.S:150:9: error: unrecognized instruction mnemonic
2020-12-31T14:30:36.1585810Z         teq ip, r2
2020-12-31T14:30:36.1586220Z         ^
2020-12-31T14:30:36.1586960Z unpack_armv7.S:151:9: error: unrecognized instruction mnemonic, did you mean: sub?
2020-12-31T14:30:36.1587740Z         submi r0, r0, r6
2020-12-31T14:30:36.1588150Z         ^
2020-12-31T14:30:36.1588770Z unpack_armv7.S:152:15: error: invalid operand for instruction
2020-12-31T14:30:36.1589430Z         addpl r0, r0, r6
2020-12-31T14:30:36.1589850Z               ^
2020-12-31T14:30:36.1590720Z unpack_armv7.S:154:20: error: invalid variant 'loop'
2020-12-31T14:30:36.1591480Z S329: cmp r7, r1 @ loop back if more samples to do
2020-12-31T14:30:36.1596290Z         libtool: compile:  clang -DPACKAGE_NAME=\"wavpack\" -DPACKAGE_TARNAME=\"wavpack\" -DPACKAGE_VERSION=\"5.3.0\" "-DPACKAGE_STRING=\"wavpack 5.3.0\"" -DPACKAGE_BUGREPORT=\"bryant@wavpack.com\" -DPACKAGE_URL=\"\" -DPACKAGE=\"wavpack\" -DVERSION=\"5.3.0\" -DLIBWAVPACK_MAJOR=5 -DLIBWAVPACK_MINOR=3 -DLIBWAVPACK_MICRO=0 -DLIBWAVPACK_VERSION_STRING=\"5.3.0\" -DVERSION_OS=\"Darwin\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -DHAVE_FSEEKO=1 -DENABLE_DSD=1 -DOPT_ASM_ARM=1 -DHAVE___BUILTIN_CLZ=1 -DHAVE___BUILTIN_CTZ=1 -I. -I../include -g -O2 -c pack_dsd.c -o libwavpack_la-pack_dsd.o >/dev/null 2>&1
2020-12-31T14:30:36.1599870Z            ^
2020-12-31T14:30:36.1600750Z unpack_armv7.S:156:24: error: invalid variant 'common'
2020-12-31T14:30:36.1601510Z         b store_1718 @ common exit for terms 17 & 18
2020-12-31T14:30:36.1602020Z                        ^
2020-12-31T14:30:36.1602670Z unpack_armv7.S:174:24: error: unexpected token in argument list
2020-12-31T14:30:36.1603400Z         sub ip, r8, lr @ decorr value =
2020-12-31T14:30:36.1603900Z                        ^
2020-12-31T14:30:36.1604860Z unpack_armv7.S:175:22: error: unexpected symbol modifier following '@'
2020-12-31T14:30:36.1605890Z         mov lr, r8 @ ((3 * prev) - 2nd prev) >> 1
2020-12-31T14:30:36.1606380Z                      ^
2020-12-31T14:30:36.1607010Z unpack_armv7.S:176:13: error: invalid operand for instruction
2020-12-31T14:30:36.1607690Z         add ip, r8, ip, asr #1
2020-12-31T14:30:36.1608120Z             ^
2020-12-31T14:30:36.1608930Z unpack_armv7.S:177:28: error: invalid variant 'get'
2020-12-31T14:30:36.1609640Z         ldr r2, [r1], #4 @ get sample & update pointer
2020-12-31T14:30:36.1610180Z                            ^
2020-12-31T14:30:36.1611020Z unpack_armv7.S:178:31: error: invalid variant 'check'
2020-12-31T14:30:36.1611840Z         mov r8, ip, lsl #11 @ check magnitude by shifting left then right
2020-12-31T14:30:36.1612470Z                               ^
2020-12-31T14:30:36.1613290Z unpack_armv7.S:179:31: error: invalid variant 'and'
2020-12-31T14:30:36.1614390Z         cmp ip, r8, asr #11 @ and comparing, branch to 64-bit math if different
2020-12-31T14:30:36.1615140Z                               ^
2020-12-31T14:30:36.1615780Z unpack_armv7.S:181:13: error: invalid operand for instruction
2020-12-31T14:30:36.1616430Z         cmp ip, #0
2020-12-31T14:30:36.1616820Z             ^
2020-12-31T14:30:36.1617640Z unpack_armv7.S:182:31: error: invalid variant 'mult'
2020-12-31T14:30:36.1618400Z         mla r8, ip, r4, r11 @ mult decorr value by weight, round,
2020-12-31T14:30:36.1618980Z                               ^
2020-12-31T14:30:36.1619800Z unpack_armv7.S:183:35: error: invalid variant 'shift'
2020-12-31T14:30:36.1620540Z         add r8, r2, r8, asr #10 @ shift, and add to new sample
2020-12-31T14:30:36.1621080Z                                   ^
2020-12-31T14:30:36.1621910Z unpack_armv7.S:186:20: error: invalid variant 'use'
2020-12-31T14:30:36.1622890Z S121: mov r8, #0 @ use 64-bit multiply to avoid overflow
2020-12-31T14:30:36.1623450Z                    ^
2020-12-31T14:30:36.1624160Z unpack_armv7.S:187:15: error: invalid operand for instruction
2020-12-31T14:30:36.1624850Z         smlal r11, r8, r4, ip
2020-12-31T14:30:36.1625280Z               ^
2020-12-31T14:30:36.1625900Z unpack_armv7.S:188:13: error: invalid operand for instruction
2020-12-31T14:30:36.1626560Z         add r8, r2, r8, lsl #22
2020-12-31T14:30:36.1626990Z             ^
2020-12-31T14:30:36.1627610Z unpack_armv7.S:189:13: error: invalid operand for instruction
2020-12-31T14:30:36.1628280Z         add r8, r8, r11, lsr #10
2020-12-31T14:30:36.1628700Z             ^
2020-12-31T14:30:36.1629330Z unpack_armv7.S:190:13: error: invalid operand for instruction
2020-12-31T14:30:36.1629960Z         mov r11, #512
2020-12-31T14:30:36.1630350Z             ^
2020-12-31T14:30:36.1630980Z unpack_armv7.S:192:27: error: unexpected token in argument list
2020-12-31T14:30:36.1632120Z S122: strne r8, [r1, #-4] @ if change possible, store sample back
2020-12-31T14:30:36.1632720Z                           ^
2020-12-31T14:30:36.1633370Z unpack_armv7.S:193:15: error: invalid operand for instruction
2020-12-31T14:30:36.1634020Z         cmpne r2, #0
2020-12-31T14:30:36.1634430Z               ^
2020-12-31T14:30:36.1635250Z unpack_armv7.S:195:22: error: invalid variant 'update'
2020-12-31T14:30:36.1636000Z         teq ip, r2 @ update weight based on signs
2020-12-31T14:30:36.1636530Z                      ^
2020-12-31T14:30:36.1637280Z unpack_armv7.S:196:9: error: unrecognized instruction mnemonic, did you mean: sub?
2020-12-31T14:30:36.1638050Z         submi r4, r4, r6
2020-12-31T14:30:36.1638460Z         ^
2020-12-31T14:30:36.1639080Z unpack_armv7.S:197:15: error: invalid operand for instruction
2020-12-31T14:30:36.1639740Z         addpl r4, r4, r6
2020-12-31T14:30:36.1640150Z               ^
2020-12-31T14:30:36.1640950Z unpack_armv7.S:199:25: error: invalid variant 'do'
2020-12-31T14:30:36.1641680Z S337: sub ip, r3, r10 @ do same thing for right channel
2020-12-31T14:30:36.1642230Z                         ^
2020-12-31T14:30:36.1642860Z unpack_armv7.S:200:13: error: invalid operand for instruction
2020-12-31T14:30:36.1643510Z         mov r10, r3
2020-12-31T14:30:36.1643900Z             ^
2020-12-31T14:30:36.1644520Z unpack_armv7.S:201:13: error: invalid operand for instruction
2020-12-31T14:30:36.1645200Z         add ip, r3, ip, asr #1
2020-12-31T14:30:36.1645630Z             ^
2020-12-31T14:30:36.1646250Z unpack_armv7.S:202:13: error: invalid operand for instruction
2020-12-31T14:30:36.1646890Z         ldr r2, [r1], #4
2020-12-31T14:30:36.1647310Z             ^
2020-12-31T14:30:36.1648130Z unpack_armv7.S:203:31: error: invalid variant 'check'
2020-12-31T14:30:36.1648950Z         mov r3, ip, lsl #11 @ check magnitude by shifting left then right
2020-12-31T14:30:36.1649580Z                               ^
2020-12-31T14:30:36.1650390Z unpack_armv7.S:204:31: error: invalid variant 'and'
2020-12-31T14:30:36.1651490Z         cmp ip, r3, asr #11 @ and comparing, branch to 64-bit math if different
2020-12-31T14:30:36.1652140Z                               ^
2020-12-31T14:30:36.1652780Z unpack_armv7.S:206:13: error: invalid operand for instruction
2020-12-31T14:30:36.1653520Z         cmp ip, #0
2020-12-31T14:30:36.1653920Z             ^
2020-12-31T14:30:36.1654530Z unpack_armv7.S:207:13: error: invalid operand for instruction
2020-12-31T14:30:36.1655200Z         mla r3, ip, r0, r11
2020-12-31T14:30:36.1655610Z             ^
2020-12-31T14:30:36.1656240Z unpack_armv7.S:208:13: error: invalid operand for instruction
2020-12-31T14:30:36.1656900Z         add r3, r2, r3, asr #10
2020-12-31T14:30:36.1657320Z             ^
2020-12-31T14:30:36.1657940Z unpack_armv7.S:211:11: error: invalid operand for instruction
2020-12-31T14:30:36.1658580Z S123: mov r3, #0
2020-12-31T14:30:36.1658960Z           ^
2020-12-31T14:30:36.1659580Z unpack_armv7.S:212:15: error: invalid operand for instruction
2020-12-31T14:30:36.1660250Z         smlal r11, r3, r0, ip
2020-12-31T14:30:36.1660670Z               ^
2020-12-31T14:30:36.1661360Z unpack_armv7.S:213:13: error: invalid operand for instruction
2020-12-31T14:30:36.1662030Z         add r3, r2, r3, lsl #22
2020-12-31T14:30:36.1662460Z             ^
2020-12-31T14:30:36.1663080Z unpack_armv7.S:214:13: error: invalid operand for instruction
2020-12-31T14:30:36.1663750Z         add r3, r3, r11, lsr #10
2020-12-31T14:30:36.1664170Z             ^
2020-12-31T14:30:36.1664790Z unpack_armv7.S:215:13: error: invalid operand for instruction
2020-12-31T14:30:36.1665430Z         mov r11, #512
2020-12-31T14:30:36.1665810Z             ^
2020-12-31T14:30:36.1666550Z unpack_armv7.S:217:7: error: unrecognized instruction mnemonic, did you mean: str?
2020-12-31T14:30:36.1667570Z S124: strne r3, [r1, #-4]
2020-12-31T14:30:36.1668000Z       ^
2020-12-31T14:30:36.1668620Z unpack_armv7.S:218:15: error: invalid operand for instruction
2020-12-31T14:30:36.1669270Z         cmpne r2, #0
2020-12-31T14:30:36.1669670Z               ^
2020-12-31T14:30:36.1670340Z unpack_armv7.S:220:9: error: unrecognized instruction mnemonic
2020-12-31T14:30:36.1671030Z         teq ip, r2
2020-12-31T14:30:36.1671430Z         ^
2020-12-31T14:30:36.1672160Z unpack_armv7.S:221:9: error: unrecognized instruction mnemonic, did you mean: sub?
2020-12-31T14:30:36.1672930Z         submi r0, r0, r6
2020-12-31T14:30:36.1673350Z         ^
2020-12-31T14:30:36.1673960Z unpack_armv7.S:222:15: error: invalid operand for instruction
2020-12-31T14:30:36.1674650Z         addpl r0, r0, r6
2020-12-31T14:30:36.1675060Z               ^
2020-12-31T14:30:36.1675890Z unpack_armv7.S:224:20: error: invalid variant 'loop'
2020-12-31T14:30:36.1676610Z S341: cmp r7, r1 @ loop back if more samples to do
2020-12-31T14:30:36.1677140Z                    ^
2020-12-31T14:30:36.1677780Z unpack_armv7.S:230:27: error: unexpected token in argument list
2020-12-31T14:30:36.1678590Z         str r3, [r5, #48] @ store sample history into struct
2020-12-31T14:30:36.1679140Z                           ^
2020-12-31T14:30:36.1679780Z unpack_armv7.S:231:13: error: invalid operand for instruction
2020-12-31T14:30:36.1680420Z         str r8, [r5, #16]
2020-12-31T14:30:36.1680830Z             ^
2020-12-31T14:30:36.1681450Z unpack_armv7.S:232:13: error: invalid operand for instruction
2020-12-31T14:30:36.1682160Z         str r10, [r5, #52]
2020-12-31T14:30:36.1682570Z             ^
2020-12-31T14:30:36.1683240Z unpack_armv7.S:233:18: error: invalid operand for instruction
2020-12-31T14:30:36.1683910Z         str lr, [r5, #20]
2020-12-31T14:30:36.1684340Z                  ^
2020-12-31T14:30:36.1685150Z unpack_armv7.S:234:25: error: invalid variant 'and'
2020-12-31T14:30:36.1685840Z         b common_exit @ and return
2020-12-31T14:30:36.1686340Z                         ^
2020-12-31T14:30:36.1687030Z unpack_armv7.S:254:20: error: unexpected token in argument list
2020-12-31T14:30:36.1687830Z         mov ip, lr @ get decorrelation value
2020-12-31T14:30:36.1688420Z                    ^
2020-12-31T14:30:36.1689310Z unpack_armv7.S:255:22: error: invalid variant 'previous'
2020-12-31T14:30:36.1690110Z         mov lr, r8 @ previous becomes 2nd previous
2020-12-31T14:30:36.1690670Z                      ^
2020-12-31T14:30:36.1691510Z unpack_armv7.S:256:28: error: invalid variant 'get'
2020-12-31T14:30:36.1692360Z         ldr r2, [r1], #4 @ get sample & update pointer
2020-12-31T14:30:36.1692940Z                            ^
2020-12-31T14:30:36.1693810Z unpack_armv7.S:257:31: error: invalid variant 'check'
2020-12-31T14:30:36.1694710Z         mov r8, ip, lsl #11 @ check magnitude by shifting left then right
2020-12-31T14:30:36.1695370Z                               ^
2020-12-31T14:30:36.1696270Z unpack_armv7.S:258:31: error: invalid variant 'and'
2020-12-31T14:30:36.1697380Z         cmp ip, r8, asr #11 @ and comparing, branch to 64-bit math if different
2020-12-31T14:30:36.1698060Z                               ^
2020-12-31T14:30:36.1698750Z unpack_armv7.S:260:13: error: invalid operand for instruction
2020-12-31T14:30:36.1699440Z         cmp ip, #0
2020-12-31T14:30:36.1699840Z             ^
2020-12-31T14:30:36.1700770Z unpack_armv7.S:261:31: error: invalid variant 'mult'
2020-12-31T14:30:36.1701580Z         mla r8, ip, r4, r11 @ mult decorr value by weight, round,
2020-12-31T14:30:36.1702200Z                               ^
2020-12-31T14:30:36.1703080Z unpack_armv7.S:262:35: error: invalid variant 'shift'
2020-12-31T14:30:36.1703870Z         add r8, r2, r8, asr #10 @ shift, and add to new sample
2020-12-31T14:30:36.1704440Z                                   ^
2020-12-31T14:30:36.1705320Z unpack_armv7.S:265:20: error: invalid variant 'use'
2020-12-31T14:30:36.1706320Z S125: mov r8, #0 @ use 64-bit multiply to avoid overflow
2020-12-31T14:30:36.1706910Z                    ^
2020-12-31T14:30:36.1707570Z unpack_armv7.S:266:15: error: invalid operand for instruction
2020-12-31T14:30:36.1708270Z         smlal r11, r8, r4, ip
2020-12-31T14:30:36.1708700Z               ^
2020-12-31T14:30:36.1709350Z unpack_armv7.S:267:13: error: invalid operand for instruction
2020-12-31T14:30:36.1710040Z         add r8, r2, r8, lsl #22
2020-12-31T14:30:36.1710500Z             ^
2020-12-31T14:30:36.1711130Z unpack_armv7.S:268:13: error: invalid operand for instruction
2020-12-31T14:30:36.1711840Z         add r8, r8, r11, lsr #10
2020-12-31T14:30:36.1712290Z             ^
2020-12-31T14:30:36.1712960Z unpack_armv7.S:269:13: error: invalid operand for instruction
2020-12-31T14:30:36.1713610Z         mov r11, #512
2020-12-31T14:30:36.1714040Z             ^
2020-12-31T14:30:36.1714710Z unpack_armv7.S:271:27: error: unexpected token in argument list
2020-12-31T14:30:36.1715980Z S126: strne r8, [r1, #-4] @ if change possible, store sample back
2020-12-31T14:30:36.1716600Z                           ^
2020-12-31T14:30:36.1717280Z unpack_armv7.S:272:15: error: invalid operand for instruction
2020-12-31T14:30:36.1717950Z         cmpne r2, #0
2020-12-31T14:30:36.1718390Z               ^
2020-12-31T14:30:36.1719240Z unpack_armv7.S:274:22: error: invalid variant 'update'
2020-12-31T14:30:36.1720010Z         teq ip, r2 @ update weight based on signs
2020-12-31T14:30:36.1720570Z                      ^
2020-12-31T14:30:36.1721360Z unpack_armv7.S:275:9: error: unrecognized instruction mnemonic, did you mean: sub?
2020-12-31T14:30:36.1722180Z         submi r4, r4, r6
2020-12-31T14:30:36.1722640Z         ^
2020-12-31T14:30:36.1723290Z unpack_armv7.S:276:15: error: invalid operand for instruction
2020-12-31T14:30:36.1723980Z         addpl r4, r4, r6
2020-12-31T14:30:36.1724390Z               ^
2020-12-31T14:30:36.1725280Z unpack_armv7.S:278:21: error: invalid variant 'do'
2020-12-31T14:30:36.1726020Z S225: mov ip, r10 @ do same thing for right channel
2020-12-31T14:30:36.1726600Z                     ^
2020-12-31T14:30:36.1727230Z unpack_armv7.S:279:13: error: invalid operand for instruction
2020-12-31T14:30:36.1727930Z         mov r10, r3
2020-12-31T14:30:36.1728340Z             ^
2020-12-31T14:30:36.1728990Z unpack_armv7.S:280:13: error: invalid operand for instruction
2020-12-31T14:30:36.1729640Z         ldr r2, [r1], #4
2020-12-31T14:30:36.1730070Z             ^
2020-12-31T14:30:36.1730940Z unpack_armv7.S:281:31: error: invalid variant 'check'
2020-12-31T14:30:36.1731800Z         mov r3, ip, lsl #11 @ check magnitude by shifting left then right
2020-12-31T14:30:36.1732560Z                               ^
2020-12-31T14:30:36.1733420Z unpack_armv7.S:282:31: error: invalid variant 'and'
2020-12-31T14:30:36.1734580Z         cmp ip, r3, asr #11 @ and comparing, branch to 64-bit math if different
2020-12-31T14:30:36.1735260Z                               ^
2020-12-31T14:30:36.1735900Z unpack_armv7.S:284:13: error: invalid operand for instruction
2020-12-31T14:30:36.1736570Z         cmp ip, #0
2020-12-31T14:30:36.1736980Z             ^
2020-12-31T14:30:36.1737640Z unpack_armv7.S:285:13: error: invalid operand for instruction
2020-12-31T14:30:36.1738300Z         mla r3, ip, r0, r11
2020-12-31T14:30:36.1738740Z             ^
2020-12-31T14:30:36.1739390Z unpack_armv7.S:286:13: error: invalid operand for instruction
2020-12-31T14:30:36.1740080Z         add r3, r2, r3, asr #10
2020-12-31T14:30:36.1740500Z             ^
2020-12-31T14:30:36.1741250Z unpack_armv7.S:289:11: error: invalid operand for instruction
2020-12-31T14:30:36.1741920Z S127: mov r3, #0
2020-12-31T14:30:36.1742340Z           ^
2020-12-31T14:30:36.1742970Z unpack_armv7.S:290:15: error: invalid operand for instruction
2020-12-31T14:30:36.1743670Z         smlal r11, r3, r0, ip
2020-12-31T14:30:36.1744090Z               ^
2020-12-31T14:30:36.1745090Z unpack_armv7.S:291:13: error: invalid operand for instruction
2020-12-31T14:30:36.1745780Z         add r3, r2, r3, lsl #22
2020-12-31T14:30:36.1746220Z             ^
2020-12-31T14:30:36.1746840Z unpack_armv7.S:292:13: error: invalid operand for instruction
2020-12-31T14:30:36.1747540Z         add r3, r3, r11, lsr #10
2020-12-31T14:30:36.1747980Z             ^
2020-12-31T14:30:36.1748630Z unpack_armv7.S:293:13: error: invalid operand for instruction
2020-12-31T14:30:36.1749270Z         mov r11, #512
2020-12-31T14:30:36.1749690Z             ^
2020-12-31T14:30:36.1750460Z unpack_armv7.S:295:7: error: unrecognized instruction mnemonic, did you mean: str?
2020-12-31T14:30:36.1751540Z S128: strne r3, [r1, #-4]
2020-12-31T14:30:36.1751960Z       ^
2020-12-31T14:30:36.1752610Z unpack_armv7.S:296:15: error: invalid operand for instruction
2020-12-31T14:30:36.1753280Z         cmpne r2, #0
2020-12-31T14:30:36.1753710Z               ^
2020-12-31T14:30:36.1754380Z unpack_armv7.S:298:9: error: unrecognized instruction mnemonic
2020-12-31T14:30:36.1755100Z         teq ip, r2
2020-12-31T14:30:36.1755520Z         ^
2020-12-31T14:30:36.1756300Z unpack_armv7.S:299:9: error: unrecognized instruction mnemonic, did you mean: sub?
2020-12-31T14:30:36.1757070Z         submi r0, r0, r6
2020-12-31T14:30:36.1757510Z         ^
2020-12-31T14:30:36.1758210Z unpack_armv7.S:300:15: error: invalid operand for instruction
2020-12-31T14:30:36.1758900Z         addpl r0, r0, r6
2020-12-31T14:30:36.1759310Z               ^
2020-12-31T14:30:36.1760170Z unpack_armv7.S:302:20: error: invalid variant 'loop'
2020-12-31T14:30:36.1760930Z S229: cmp r7, r1 @ loop back if more samples to do
2020-12-31T14:30:36.1761490Z                    ^
2020-12-31T14:30:36.1762310Z unpack_armv7.S:304:31: error: invalid variant 'this'
2020-12-31T14:30:36.1763400Z         b default_term_exit @ this exit updates all dpp->samples
2020-12-31T14:30:36.1764090Z                               ^
2020-12-31T14:30:36.1764800Z unpack_armv7.S:322:22: error: unexpected token in argument list
2020-12-31T14:30:36.1765560Z         ldr ip, [r1] @ get original sample
2020-12-31T14:30:36.1766100Z                      ^
2020-12-31T14:30:36.1766800Z unpack_armv7.S:323:31: error: unexpected token in argument list
2020-12-31T14:30:36.1768040Z         ldr r3, [r1, -r2, asl #3] @ get decorrelation value based on term
2020-12-31T14:30:36.1768670Z                               ^
2020-12-31T14:30:36.1769570Z unpack_armv7.S:324:31: error: invalid variant 'check'
2020-12-31T14:30:36.1770420Z         mov r8, r3, lsl #11 @ check magnitude by shifting left then right
2020-12-31T14:30:36.1771110Z                               ^
2020-12-31T14:30:36.1771940Z unpack_armv7.S:325:31: error: invalid variant 'and'
2020-12-31T14:30:36.1773230Z         cmp r3, r8, asr #11 @ and comparing, branch to 64-bit math if different
2020-12-31T14:30:36.1773910Z                               ^
2020-12-31T14:30:36.1774840Z unpack_armv7.S:327:13: error: invalid operand for instruction
2020-12-31T14:30:36.1775500Z         cmp r3, #0
2020-12-31T14:30:36.1775920Z             ^
2020-12-31T14:30:36.1776780Z unpack_armv7.S:328:31: error: invalid variant 'mult'
2020-12-31T14:30:36.1777590Z         mla r8, r3, r4, r11 @ mult decorr value by weight, round,
2020-12-31T14:30:36.1778170Z                               ^
2020-12-31T14:30:36.1779050Z unpack_armv7.S:329:35: error: invalid variant 'shift'
2020-12-31T14:30:36.1779810Z         add r8, ip, r8, asr #10 @ shift and add to new sample
2020-12-31T14:30:36.1780390Z                                   ^
2020-12-31T14:30:36.1781210Z unpack_armv7.S:332:20: error: invalid variant 'use'
2020-12-31T14:30:36.1782370Z S135: mov r8, #0 @ use 64-bit multiply to avoid overflow
2020-12-31T14:30:36.1782990Z                    ^
2020-12-31T14:30:36.1783670Z unpack_armv7.S:333:15: error: invalid operand for instruction
2020-12-31T14:30:36.1784330Z         smlal r11, r8, r4, r3
2020-12-31T14:30:36.1784790Z               ^
2020-12-31T14:30:36.1785440Z unpack_armv7.S:334:13: error: invalid operand for instruction
2020-12-31T14:30:36.1786190Z         add r8, ip, r8, lsl #22
2020-12-31T14:30:36.1786620Z             ^
2020-12-31T14:30:36.1787270Z unpack_armv7.S:335:13: error: invalid operand for instruction
2020-12-31T14:30:36.1787960Z         add r8, r8, r11, lsr #10
2020-12-31T14:30:36.1788410Z             ^
2020-12-31T14:30:36.1789030Z unpack_armv7.S:336:13: error: invalid operand for instruction
2020-12-31T14:30:36.1789800Z         mov r11, #512
2020-12-31T14:30:36.1790220Z             ^
2020-12-31T14:30:36.1791100Z unpack_armv7.S:338:26: error: invalid variant 'store'
2020-12-31T14:30:36.1791810Z S136: str r8, [r1], #4 @ store update sample
2020-12-31T14:30:36.1792340Z                          ^
2020-12-31T14:30:36.1793010Z unpack_armv7.S:339:15: error: invalid operand for instruction
2020-12-31T14:30:36.1793690Z         cmpne ip, #0
2020-12-31T14:30:36.1794100Z               ^
2020-12-31T14:30:36.1795000Z unpack_armv7.S:341:22: error: invalid variant 'update'
2020-12-31T14:30:36.1795760Z         teq ip, r3 @ update weight based on signs
2020-12-31T14:30:36.1796320Z                      ^
2020-12-31T14:30:36.1797060Z unpack_armv7.S:342:9: error: unrecognized instruction mnemonic, did you mean: sub?
2020-12-31T14:30:36.1797860Z         submi r4, r4, r6
2020-12-31T14:30:36.1798290Z         ^
2020-12-31T14:30:36.1798940Z unpack_armv7.S:343:15: error: invalid operand for instruction
2020-12-31T14:30:36.1799600Z         addpl r4, r4, r6
2020-12-31T14:30:36.1800040Z               ^
2020-12-31T14:30:36.1800700Z unpack_armv7.S:345:20: error: unexpected token in argument list
2020-12-31T14:30:36.1801540Z S350: ldr ip, [r1] @ do the same thing for right channel
2020-12-31T14:30:36.1802090Z                    ^
2020-12-31T14:30:36.1802770Z unpack_armv7.S:346:31: error: unexpected token in argument list
2020-12-31T14:30:36.1803780Z         ldr r3, [r1, -r2, asl #3]
2020-12-31T14:30:36.1804250Z                               ^
2020-12-31T14:30:36.1805090Z unpack_armv7.S:347:31: error: invalid variant 'check'
2020-12-31T14:30:36.1805940Z         mov r8, r3, lsl #11 @ check magnitude by shifting left then right
2020-12-31T14:30:36.1806580Z                               ^
2020-12-31T14:30:36.1807440Z unpack_armv7.S:348:31: error: invalid variant 'and'
2020-12-31T14:30:36.1808530Z         cmp r3, r8, asr #11 @ and comparing, branch to 64-bit math if different
2020-12-31T14:30:36.1809200Z                               ^
2020-12-31T14:30:36.1809860Z unpack_armv7.S:350:13: error: invalid operand for instruction
2020-12-31T14:30:36.1810530Z         cmp r3, #0
2020-12-31T14:30:36.1810910Z             ^
2020-12-31T14:30:36.1811570Z unpack_armv7.S:351:13: error: invalid operand for instruction
2020-12-31T14:30:36.1812250Z         mla r8, r3, r0, r11
2020-12-31T14:30:36.1812840Z             ^
2020-12-31T14:30:36.1813470Z unpack_armv7.S:352:13: error: invalid operand for instruction
2020-12-31T14:30:36.1814160Z         add r8, ip, r8, asr #10
2020-12-31T14:30:36.1814610Z             ^
2020-12-31T14:30:36.1815250Z unpack_armv7.S:355:11: error: invalid operand for instruction
2020-12-31T14:30:36.1815930Z S137: mov r8, #0
2020-12-31T14:30:36.1816370Z           ^
2020-12-31T14:30:36.1817020Z unpack_armv7.S:356:15: error: invalid operand for instruction
2020-12-31T14:30:36.1817800Z         smlal r11, r8, r0, r3
2020-12-31T14:30:36.1818240Z               ^
2020-12-31T14:30:36.1818900Z unpack_armv7.S:357:13: error: invalid operand for instruction
2020-12-31T14:30:36.1819610Z         add r8, ip, r8, lsl #22
2020-12-31T14:30:36.1820050Z             ^
2020-12-31T14:30:36.1852680Z unpack_armv7.S:358:13: error: invalid operand for instruction
2020-12-31T14:30:36.1853960Z         add r8, r8, r11, lsr #10
2020-12-31T14:30:36.1854420Z             ^
2020-12-31T14:30:36.1855060Z unpack_armv7.S:359:13: error: invalid operand for instruction
2020-12-31T14:30:36.1855710Z         mov r11, #512
2020-12-31T14:30:36.1856090Z             ^
2020-12-31T14:30:36.1856720Z unpack_armv7.S:361:11: error: invalid operand for instruction
2020-12-31T14:30:36.1857370Z S138: str r8, [r1], #4
2020-12-31T14:30:36.1857770Z           ^
2020-12-31T14:30:36.1858390Z unpack_armv7.S:362:15: error: invalid operand for instruction
2020-12-31T14:30:36.1859440Z         cmpne ip, #0
2020-12-31T14:30:36.1859880Z               ^
2020-12-31T14:30:36.1860560Z unpack_armv7.S:364:9: error: unrecognized instruction mnemonic
2020-12-31T14:30:36.1861260Z         teq ip, r3
2020-12-31T14:30:36.1861650Z         ^
2020-12-31T14:30:36.1862380Z unpack_armv7.S:365:9: error: unrecognized instruction mnemonic, did you mean: sub?
2020-12-31T14:30:36.1863160Z         submi r0, r0, r6
2020-12-31T14:30:36.1863560Z         ^
2020-12-31T14:30:36.1865060Z unpack_armv7.S:366:15: error: invalid operand for instruction
2020-12-31T14:30:36.1865740Z         addpl r0, r0, r6
2020-12-31T14:30:36.1866150Z               ^
2020-12-31T14:30:36.1867460Z unpack_armv7.S:368:20: error: invalid variant 'loop'
2020-12-31T14:30:36.1868180Z S354: cmp r7, r1 @ loop back if more samples to do
2020-12-31T14:30:36.1868750Z                    ^
2020-12-31T14:30:36.1869390Z unpack_armv7.S:377:26: error: unexpected token in argument list
2020-12-31T14:30:36.1870400Z         ldr r2, [r5, #0] @ r2 = dpp->term
2020-12-31T14:30:36.1870870Z                          ^
2020-12-31T14:30:36.1871510Z unpack_armv7.S:379:11: error: invalid operand for instruction
2020-12-31T14:30:36.1872160Z S358: sub r2, r2, #1
2020-12-31T14:30:36.1872570Z           ^
2020-12-31T14:30:36.1873180Z unpack_armv7.S:380:13: error: invalid operand for instruction
2020-12-31T14:30:36.1873820Z         sub r1, r1, #8
2020-12-31T14:30:36.1874250Z             ^
2020-12-31T14:30:36.1874900Z unpack_armv7.S:381:26: error: unexpected token in argument list
2020-12-31T14:30:36.1876080Z         ldr r3, [r1, #4] @ get right sample and store in dpp->samples_B [r2]
2020-12-31T14:30:36.1876720Z                          ^
2020-12-31T14:30:36.1877360Z unpack_armv7.S:382:13: error: invalid operand for instruction
2020-12-31T14:30:36.1878010Z         add r6, r5, #48
2020-12-31T14:30:36.1878400Z             ^
2020-12-31T14:30:36.1879030Z unpack_armv7.S:383:30: error: unexpected token in argument list
2020-12-31T14:30:36.1879710Z         str r3, [r6, r2, asl #2]
2020-12-31T14:30:36.1880150Z                              ^
2020-12-31T14:30:36.1880800Z unpack_armv7.S:384:26: error: unexpected token in argument list
2020-12-31T14:30:36.1881960Z         ldr r3, [r1, #0] @ get left sample and store in dpp->samples_A [r2]
2020-12-31T14:30:36.1882570Z                          ^
2020-12-31T14:30:36.1883210Z unpack_armv7.S:385:13: error: invalid operand for instruction
2020-12-31T14:30:36.1883850Z         add r6, r5, #16
2020-12-31T14:30:36.1884260Z             ^
2020-12-31T14:30:36.1884890Z unpack_armv7.S:386:30: error: unexpected token in argument list
2020-12-31T14:30:36.1885830Z         str r3, [r6, r2, asl #2]
2020-12-31T14:30:36.1886260Z                              ^
2020-12-31T14:30:36.1886900Z unpack_armv7.S:387:13: error: invalid operand for instruction
2020-12-31T14:30:36.1887540Z         cmp r2, #0
2020-12-31T14:30:36.1887930Z             ^
2020-12-31T14:30:36.1888540Z unpack_armv7.S:407:13: error: invalid operand for instruction
2020-12-31T14:30:36.1889440Z         ldr r3, [r1, #-4]
2020-12-31T14:30:36.1889850Z             ^
2020-12-31T14:30:36.1890490Z unpack_armv7.S:410:22: error: unexpected token in argument list
2020-12-31T14:30:36.1891360Z         ldr ip, [r1] @ for left channel the decorrelation value
2020-12-31T14:30:36.1891980Z                      ^
2020-12-31T14:30:36.1892650Z unpack_armv7.S:411:41: error: unexpected token at start of statement
2020-12-31T14:30:36.1893560Z                                         @ is the previous right sample (in r3)
2020-12-31T14:30:36.1894140Z                                         ^
2020-12-31T14:30:36.1895000Z unpack_armv7.S:412:31: error: invalid variant 'check'
2020-12-31T14:30:36.1895820Z         mov lr, r3, lsl #11 @ check magnitude by shifting left then right
2020-12-31T14:30:36.1896460Z                               ^
2020-12-31T14:30:36.1897290Z unpack_armv7.S:413:31: error: invalid variant 'and'
2020-12-31T14:30:36.1898390Z         cmp r3, lr, asr #11 @ and comparing, branch to 64-bit math if different
2020-12-31T14:30:36.1899040Z                               ^
2020-12-31T14:30:36.1899690Z unpack_armv7.S:415:13: error: invalid operand for instruction
2020-12-31T14:30:36.1900330Z         cmp r3, #0
2020-12-31T14:30:36.1900720Z             ^
2020-12-31T14:30:36.1901340Z unpack_armv7.S:416:13: error: invalid operand for instruction
2020-12-31T14:30:36.1902000Z         mla r2, r3, r4, r11
2020-12-31T14:30:36.1902400Z             ^
2020-12-31T14:30:36.1903040Z unpack_armv7.S:417:17: error: invalid operand for instruction
2020-12-31T14:30:36.1903710Z         add lr, ip, r2, asr #10
2020-12-31T14:30:36.1904150Z                 ^
2020-12-31T14:30:36.1904980Z unpack_armv7.S:420:20: error: invalid variant 'use'
2020-12-31T14:30:36.1905990Z S142: mov lr, #0 @ use 64-bit multiply to avoid overflow
2020-12-31T14:30:36.1906550Z                    ^
2020-12-31T14:30:36.1907190Z unpack_armv7.S:421:15: error: invalid operand for instruction
2020-12-31T14:30:36.1907850Z         smlal r11, lr, r4, r3
2020-12-31T14:30:36.1908280Z               ^
2020-12-31T14:30:36.1908900Z unpack_armv7.S:422:17: error: invalid operand for instruction
2020-12-31T14:30:36.1909580Z         add lr, ip, lr, lsl #22
2020-12-31T14:30:36.1910000Z                 ^
2020-12-31T14:30:36.1910790Z unpack_armv7.S:423:21: error: expected compatible register, symbol or integer in range [0, 4095]
2020-12-31T14:30:36.1911610Z         add lr, lr, r11, lsr #10
2020-12-31T14:30:36.1912050Z                     ^
2020-12-31T14:30:36.1912680Z unpack_armv7.S:424:13: error: invalid operand for instruction
2020-12-31T14:30:36.1913330Z         mov r11, #512
2020-12-31T14:30:36.1913720Z             ^
2020-12-31T14:30:36.1914340Z unpack_armv7.S:426:16: error: invalid operand for instruction
2020-12-31T14:30:36.1914990Z S143: str lr, [r1], #8
2020-12-31T14:30:36.1916980Z                ^
2020-12-31T14:30:36.1917910Z unpack_armv7.S:427:15: error: invalid operand for instruction
2020-12-31T14:30:36.1918590Z         cmpne ip, #0
2020-12-31T14:30:36.1919000Z               ^
2020-12-31T14:30:36.1920140Z unpack_armv7.S:429:22: error: invalid variant 'update'
2020-12-31T14:30:36.1920880Z         teq ip, r3 @ update weight based on signs
2020-12-31T14:30:36.1921420Z                      ^
2020-12-31T14:30:36.1922170Z unpack_armv7.S:430:9: error: unrecognized instruction mnemonic, did you mean: sub?
2020-12-31T14:30:36.1922960Z         submi r4, r4, r6
2020-12-31T14:30:36.1924210Z         ^
2020-12-31T14:30:36.1926940Z unpack_armv7.S:431:15: error: invalid operand for instruction
2020-12-31T14:30:36.1928220Z         addpl r4, r4, r6
2020-12-31T14:30:36.1929260Z               ^
2020-12-31T14:30:36.1935780Z unpack_armv7.S:432:13: error: invalid operand for instruction
2020-12-31T14:30:36.1941970Z         cmp r4, #1024
2020-12-31T14:30:36.1942950Z             ^
2020-12-31T14:30:36.1943730Z unpack_armv7.S:433:9: error: unrecognized instruction mnemonic, did you mean: mov?
2020-12-31T14:30:36.1944530Z         movgt r4, #1024
2020-12-31T14:30:36.1944950Z         ^
2020-12-31T14:30:36.1945580Z unpack_armv7.S:434:13: error: invalid operand for instruction
2020-12-31T14:30:36.1946240Z         cmp r4, r10
2020-12-31T14:30:36.1946640Z             ^
2020-12-31T14:30:36.1947380Z unpack_armv7.S:435:9: error: unrecognized instruction mnemonic, did you mean: mov?
2020-12-31T14:30:36.1948160Z         movlt r4, r10
2020-12-31T14:30:36.1948570Z         ^
2020-12-31T14:30:36.1949210Z unpack_armv7.S:437:25: error: unexpected token in argument list
2020-12-31T14:30:36.1950850Z S361: ldr r2, [r1, #-4] @ for right channel the decorrelation value
2020-12-31T14:30:36.1951510Z                         ^
2020-12-31T14:30:36.1952220Z unpack_armv7.S:438:41: error: unexpected token at start of statement
2020-12-31T14:30:36.1953070Z                                         @ is the just updated right sample (in lr)
2020-12-31T14:30:36.1953660Z                                         ^
2020-12-31T14:30:36.1954570Z unpack_armv7.S:439:31: error: invalid variant 'check'
2020-12-31T14:30:36.1955410Z         mov r3, lr, lsl #11 @ check magnitude by shifting left then right
2020-12-31T14:30:36.1956030Z                               ^
2020-12-31T14:30:36.1956900Z unpack_armv7.S:440:31: error: invalid variant 'and'
2020-12-31T14:30:36.1958030Z         cmp lr, r3, asr #11 @ and comparing, branch to 64-bit math if different
2020-12-31T14:30:36.1958680Z                               ^
2020-12-31T14:30:36.1959320Z unpack_armv7.S:443:13: error: invalid operand for instruction
2020-12-31T14:30:36.1959990Z         mla r3, lr, r0, r11
2020-12-31T14:30:36.1960400Z             ^
2020-12-31T14:30:36.1961040Z unpack_armv7.S:444:13: error: invalid operand for instruction
2020-12-31T14:30:36.1961710Z         add r3, r2, r3, asr #10
2020-12-31T14:30:36.1962130Z             ^
2020-12-31T14:30:36.1962750Z unpack_armv7.S:447:11: error: invalid operand for instruction
2020-12-31T14:30:36.1963400Z S144: mov r3, #0
2020-12-31T14:30:36.1963780Z           ^
2020-12-31T14:30:36.1964420Z unpack_armv7.S:448:15: error: invalid operand for instruction
2020-12-31T14:30:36.1965090Z         smlal r11, r3, r0, lr
2020-12-31T14:30:36.1965510Z               ^
2020-12-31T14:30:36.1966140Z unpack_armv7.S:449:13: error: invalid operand for instruction
2020-12-31T14:30:36.1966810Z         add r3, r2, r3, lsl #22
2020-12-31T14:30:36.1967230Z             ^
2020-12-31T14:30:36.1967860Z unpack_armv7.S:450:13: error: invalid operand for instruction
2020-12-31T14:30:36.1968520Z         add r3, r3, r11, lsr #10
2020-12-31T14:30:36.1968940Z             ^
2020-12-31T14:30:36.1969570Z unpack_armv7.S:451:13: error: invalid operand for instruction
2020-12-31T14:30:36.1970220Z         mov r11, #512
2020-12-31T14:30:36.1970600Z             ^
2020-12-31T14:30:36.1971350Z unpack_armv7.S:453:7: error: unrecognized instruction mnemonic, did you mean: str?
2020-12-31T14:30:36.1972380Z S145: strne r3, [r1, #-4]
2020-12-31T14:30:36.1972800Z       ^
2020-12-31T14:30:36.1973420Z unpack_armv7.S:454:15: error: invalid operand for instruction
2020-12-31T14:30:36.1974080Z         cmpne r2, #0
2020-12-31T14:30:36.1974480Z               ^
2020-12-31T14:30:36.1975150Z unpack_armv7.S:456:9: error: unrecognized instruction mnemonic
2020-12-31T14:30:36.1975840Z         teq r2, lr
2020-12-31T14:30:36.1976230Z         ^
2020-12-31T14:30:36.1976970Z unpack_armv7.S:457:9: error: unrecognized instruction mnemonic, did you mean: sub?
2020-12-31T14:30:36.1977750Z         submi r0, r0, r6
2020-12-31T14:30:36.1978150Z         ^
2020-12-31T14:30:36.1978770Z unpack_armv7.S:458:15: error: invalid operand for instruction
2020-12-31T14:30:36.1979430Z         addpl r0, r0, r6
2020-12-31T14:30:36.1979960Z               ^
2020-12-31T14:30:36.1980790Z unpack_armv7.S:459:25: error: invalid variant 'then'
2020-12-31T14:30:36.1981770Z         cmp r0, #1024 @ then clip weight to +/-1024
2020-12-31T14:30:36.1982270Z                         ^
2020-12-31T14:30:36.1983030Z unpack_armv7.S:460:9: error: unrecognized instruction mnemonic, did you mean: mov?
2020-12-31T14:30:36.1983830Z         movgt r0, #1024
2020-12-31T14:30:36.1984230Z         ^
2020-12-31T14:30:36.1984850Z unpack_armv7.S:461:13: error: invalid operand for instruction
2020-12-31T14:30:36.1985500Z         cmp r0, r10
2020-12-31T14:30:36.1985900Z             ^
2020-12-31T14:30:36.1986630Z unpack_armv7.S:462:9: error: unrecognized instruction mnemonic, did you mean: mov?
2020-12-31T14:30:36.1987410Z         movlt r0, r10
2020-12-31T14:30:36.1987810Z         ^
2020-12-31T14:30:36.1988650Z unpack_armv7.S:464:20: error: invalid variant 'loop'
2020-12-31T14:30:36.1989510Z S369: cmp r7, r1 @ loop back if more samples to do
2020-12-31T14:30:36.1990070Z                    ^
2020-12-31T14:30:36.1990720Z unpack_armv7.S:467:27: error: unexpected token in argument list
2020-12-31T14:30:36.1991550Z         str r3, [r5, #16] @ else store right sample and exit
2020-12-31T14:30:36.1992100Z                           ^
2020-12-31T14:30:36.1992750Z unpack_armv7.S:487:13: error: invalid operand for instruction
2020-12-31T14:30:36.1993640Z         ldr r3, [r1, #-8]
2020-12-31T14:30:36.1994060Z             ^
2020-12-31T14:30:36.1994700Z unpack_armv7.S:490:26: error: unexpected token in argument list
2020-12-31T14:30:36.1995590Z         ldr ip, [r1, #4] @ for right channel the decorrelation value
2020-12-31T14:30:36.1996220Z                          ^
2020-12-31T14:30:36.1996890Z unpack_armv7.S:491:41: error: unexpected token at start of statement
2020-12-31T14:30:36.1997720Z                                         @ is the previous left sample (in r3)
2020-12-31T14:30:36.1998290Z                                         ^
2020-12-31T14:30:36.1999150Z unpack_armv7.S:492:31: error: invalid variant 'check'
2020-12-31T14:30:36.1999970Z         mov lr, r3, lsl #11 @ check magnitude by shifting left then right
2020-12-31T14:30:36.2000610Z                               ^
2020-12-31T14:30:36.2001430Z unpack_armv7.S:493:31: error: invalid variant 'and'
2020-12-31T14:30:36.2002620Z         cmp r3, lr, asr #11 @ and comparing, branch to 64-bit math if different
2020-12-31T14:30:36.2003270Z                               ^
2020-12-31T14:30:36.2003910Z unpack_armv7.S:495:13: error: invalid operand for instruction
2020-12-31T14:30:36.2004540Z         cmp r3, #0
2020-12-31T14:30:36.2004930Z             ^
2020-12-31T14:30:36.2005550Z unpack_armv7.S:496:13: error: invalid operand for instruction
2020-12-31T14:30:36.2006200Z         mla r2, r3, r0, r11
2020-12-31T14:30:36.2006610Z             ^
2020-12-31T14:30:36.2007230Z unpack_armv7.S:497:17: error: invalid operand for instruction
2020-12-31T14:30:36.2007910Z         add lr, ip, r2, asr #10
2020-12-31T14:30:36.2008340Z                 ^
2020-12-31T14:30:36.2009150Z unpack_armv7.S:500:20: error: invalid variant 'use'
2020-12-31T14:30:36.2010160Z S146: mov lr, #0 @ use 64-bit multiply to avoid overflow
2020-12-31T14:30:36.2010720Z                    ^
2020-12-31T14:30:36.2011350Z unpack_armv7.S:501:15: error: invalid operand for instruction
2020-12-31T14:30:36.2012010Z         smlal r11, lr, r0, r3
2020-12-31T14:30:36.2012430Z               ^
2020-12-31T14:30:36.2013050Z unpack_armv7.S:502:17: error: invalid operand for instruction
2020-12-31T14:30:36.2013720Z         add lr, ip, lr, lsl #22
2020-12-31T14:30:36.2014150Z                 ^
2020-12-31T14:30:36.2014920Z unpack_armv7.S:503:21: error: expected compatible register, symbol or integer in range [0, 4095]
2020-12-31T14:30:36.2015750Z         add lr, lr, r11, lsr #10
2020-12-31T14:30:36.2016170Z                     ^
2020-12-31T14:30:36.2016810Z unpack_armv7.S:504:13: error: invalid operand for instruction
2020-12-31T14:30:36.2017440Z         mov r11, #512
2020-12-31T14:30:36.2017830Z             ^
2020-12-31T14:30:36.2018940Z unpack_armv7.S:506:7: error: unrecognized instruction mnemonic, did you mean: str?
2020-12-31T14:30:36.2019720Z S147: strne lr, [r1, #4]
2020-12-31T14:30:36.2020130Z       ^
2020-12-31T14:30:36.2020750Z unpack_armv7.S:507:15: error: invalid operand for instruction
2020-12-31T14:30:36.2021400Z         cmpne ip, #0
2020-12-31T14:30:36.2021810Z               ^
2020-12-31T14:30:36.2022660Z unpack_armv7.S:509:22: error: invalid variant 'update'
2020-12-31T14:30:36.2023400Z         teq ip, r3 @ update weight based on signs
2020-12-31T14:30:36.2023930Z                      ^
2020-12-31T14:30:36.2024690Z unpack_armv7.S:510:9: error: unrecognized instruction mnemonic, did you mean: sub?
2020-12-31T14:30:36.2025490Z         submi r0, r0, r6
2020-12-31T14:30:36.2025910Z         ^
2020-12-31T14:30:36.2026520Z unpack_armv7.S:511:15: error: invalid operand for instruction
2020-12-31T14:30:36.2027280Z         addpl r0, r0, r6
2020-12-31T14:30:36.2027700Z               ^
2020-12-31T14:30:36.2028570Z unpack_armv7.S:512:25: error: invalid variant 'then'
2020-12-31T14:30:36.2029560Z         cmp r0, #1024 @ then clip weight to +/-1024
2020-12-31T14:30:36.2030080Z                         ^
2020-12-31T14:30:36.2030830Z unpack_armv7.S:513:9: error: unrecognized instruction mnemonic, did you mean: mov?
2020-12-31T14:30:36.2031600Z         movgt r0, #1024
2020-12-31T14:30:36.2032000Z         ^
2020-12-31T14:30:36.2032620Z unpack_armv7.S:514:13: error: invalid operand for instruction
2020-12-31T14:30:36.2033260Z         cmp r0, r10
2020-12-31T14:30:36.2033650Z             ^
2020-12-31T14:30:36.2034380Z unpack_armv7.S:515:9: error: unrecognized instruction mnemonic, did you mean: mov?
2020-12-31T14:30:36.2035150Z         movlt r0, r10
2020-12-31T14:30:36.2035540Z         ^
2020-12-31T14:30:36.2036170Z unpack_armv7.S:517:24: error: unexpected token in argument list
2020-12-31T14:30:36.2037050Z S380: ldr r2, [r1, #0] @ for left channel the decorrelation value
2020-12-31T14:30:36.2037680Z                        ^
2020-12-31T14:30:36.2038350Z unpack_armv7.S:518:41: error: unexpected token at start of statement
2020-12-31T14:30:36.2039190Z                                         @ is the just updated left sample (in lr)
2020-12-31T14:30:36.2039760Z                                         ^
2020-12-31T14:30:36.2040660Z unpack_armv7.S:519:31: error: invalid variant 'check'
2020-12-31T14:30:36.2041480Z         mov r3, lr, lsl #11 @ check magnitude by shifting left then right
2020-12-31T14:30:36.2042470Z                               ^
2020-12-31T14:30:36.2043400Z unpack_armv7.S:520:31: error: invalid variant 'and'
2020-12-31T14:30:36.2044520Z         cmp lr, r3, asr #11 @ and comparing, branch to 64-bit math if different
2020-12-31T14:30:36.2045180Z                               ^
2020-12-31T14:30:36.2045830Z unpack_armv7.S:523:13: error: invalid operand for instruction
2020-12-31T14:30:36.2046490Z         mla r3, lr, r4, r11
2020-12-31T14:30:36.2046910Z             ^
2020-12-31T14:30:36.2047540Z unpack_armv7.S:524:13: error: invalid operand for instruction
2020-12-31T14:30:36.2048220Z         add r3, r2, r3, asr #10
2020-12-31T14:30:36.2048630Z             ^
2020-12-31T14:30:36.2049260Z unpack_armv7.S:527:11: error: invalid operand for instruction
2020-12-31T14:30:36.2049890Z S148: mov r3, #0
2020-12-31T14:30:36.2050280Z           ^
2020-12-31T14:30:36.2050920Z unpack_armv7.S:528:15: error: invalid operand for instruction
2020-12-31T14:30:36.2053400Z         smlal r11, r3, r4, lr
2020-12-31T14:30:36.2053830Z               ^
2020-12-31T14:30:36.2054460Z unpack_armv7.S:529:13: error: invalid operand for instruction
2020-12-31T14:30:36.2055140Z         add r3, r2, r3, lsl #22
2020-12-31T14:30:36.2055560Z             ^
2020-12-31T14:30:36.2056180Z unpack_armv7.S:530:13: error: invalid operand for instruction
2020-12-31T14:30:36.2056840Z         add r3, r3, r11, lsr #10
2020-12-31T14:30:36.2057260Z             ^
2020-12-31T14:30:36.2057900Z unpack_armv7.S:531:13: error: invalid operand for instruction
2020-12-31T14:30:36.2058760Z         mov r11, #512
2020-12-31T14:30:36.2059150Z             ^
2020-12-31T14:30:36.2059770Z unpack_armv7.S:533:11: error: invalid operand for instruction
2020-12-31T14:30:36.2060440Z S149: str r3, [r1], #8
2020-12-31T14:30:36.2060850Z           ^
2020-12-31T14:30:36.2061480Z unpack_armv7.S:534:15: error: invalid operand for instruction
2020-12-31T14:30:36.2062130Z         cmpne r2, #0
2020-12-31T14:30:36.2062530Z               ^
2020-12-31T14:30:36.2063200Z unpack_armv7.S:536:9: error: unrecognized instruction mnemonic
2020-12-31T14:30:36.2063890Z         teq r2, lr
2020-12-31T14:30:36.2064270Z         ^
2020-12-31T14:30:36.2065010Z unpack_armv7.S:537:9: error: unrecognized instruction mnemonic, did you mean: sub?
2020-12-31T14:30:36.2065780Z         submi r4, r4, r6
2020-12-31T14:30:36.2066200Z         ^
2020-12-31T14:30:36.2066840Z unpack_armv7.S:538:15: error: invalid operand for instruction
2020-12-31T14:30:36.2067580Z         addpl r4, r4, r6
2020-12-31T14:30:36.2068000Z               ^
2020-12-31T14:30:36.2068640Z unpack_armv7.S:539:13: error: invalid operand for instruction
2020-12-31T14:30:36.2069290Z         cmp r4, #1024
2020-12-31T14:30:36.2069680Z             ^
2020-12-31T14:30:36.2070410Z unpack_armv7.S:540:9: error: unrecognized instruction mnemonic, did you mean: mov?
2020-12-31T14:30:36.2071200Z         movgt r4, #1024
2020-12-31T14:30:36.2071610Z         ^
2020-12-31T14:30:36.2072230Z unpack_armv7.S:541:13: error: invalid operand for instruction
2020-12-31T14:30:36.2072880Z         cmp r4, r10
2020-12-31T14:30:36.2073270Z             ^
2020-12-31T14:30:36.2074010Z unpack_armv7.S:542:9: error: unrecognized instruction mnemonic, did you mean: mov?
2020-12-31T14:30:36.2074770Z         movlt r4, r10
2020-12-31T14:30:36.2075170Z         ^
2020-12-31T14:30:36.2076200Z unpack_armv7.S:544:20: error: invalid variant 'loop'
2020-12-31T14:30:36.2076950Z S388: cmp r7, r1 @ loop back if more samples to do
2020-12-31T14:30:36.2077480Z                    ^
2020-12-31T14:30:36.2078130Z unpack_armv7.S:547:27: error: unexpected token in argument list
2020-12-31T14:30:36.2078950Z         str r3, [r5, #48] @ else store left channel and exit
2020-12-31T14:30:36.2079540Z                           ^
2020-12-31T14:30:36.2080190Z unpack_armv7.S:566:27: error: unexpected token in argument list
2020-12-31T14:30:36.2081270Z         ldr r3, [r1, #-4] @ load previous samples
2020-12-31T14:30:36.2081810Z                           ^
2020-12-31T14:30:36.2082460Z unpack_armv7.S:567:13: error: invalid operand for instruction
2020-12-31T14:30:36.2083360Z         ldr r8, [r1, #-8]
2020-12-31T14:30:36.2083760Z             ^
2020-12-31T14:30:36.2084380Z unpack_armv7.S:570:13: error: invalid operand for instruction
2020-12-31T14:30:36.2091460Z         ldr ip, [r1]
2020-12-31T14:30:36.2091880Z             ^
2020-12-31T14:30:36.2092790Z unpack_armv7.S:571:31: error: invalid variant 'check'
2020-12-31T14:30:36.2093630Z         mov r2, r3, lsl #11 @ check magnitude by shifting left then right
2020-12-31T14:30:36.2094260Z                               ^
2020-12-31T14:30:36.2095100Z unpack_armv7.S:572:31: error: invalid variant 'and'
2020-12-31T14:30:36.2096270Z         cmp r3, r2, asr #11 @ and comparing, branch to 64-bit math if different
2020-12-31T14:30:36.2096910Z                               ^
2020-12-31T14:30:36.2097560Z unpack_armv7.S:574:13: error: invalid operand for instruction
2020-12-31T14:30:36.2098200Z         cmp r3, #0
2020-12-31T14:30:36.2098590Z             ^
2020-12-31T14:30:36.2099210Z unpack_armv7.S:575:13: error: invalid operand for instruction
2020-12-31T14:30:36.2099870Z         mla r2, r3, r4, r11
2020-12-31T14:30:36.2100280Z             ^
2020-12-31T14:30:36.2100920Z unpack_armv7.S:576:13: error: invalid operand for instruction
2020-12-31T14:30:36.2101610Z         add r2, ip, r2, asr #10
2020-12-31T14:30:36.2102040Z             ^
2020-12-31T14:30:36.2102890Z unpack_armv7.S:579:20: error: invalid variant 'use'
2020-12-31T14:30:36.2103940Z S160: mov r2, #0 @ use 64-bit multiply to avoid overflow
2020-12-31T14:30:36.2104710Z                    ^
2020-12-31T14:30:36.2105340Z unpack_armv7.S:580:15: error: invalid operand for instruction
2020-12-31T14:30:36.2106010Z         smlal r11, r2, r4, r3
2020-12-31T14:30:36.2106440Z               ^
2020-12-31T14:30:36.2107070Z unpack_armv7.S:581:13: error: invalid operand for instruction
2020-12-31T14:30:36.2107780Z         add r2, ip, r2, lsl #22
2020-12-31T14:30:36.2108200Z             ^
2020-12-31T14:30:36.2108840Z unpack_armv7.S:582:13: error: invalid operand for instruction
2020-12-31T14:30:36.2109530Z         add r2, r2, r11, lsr #10
2020-12-31T14:30:36.2109960Z             ^
2020-12-31T14:30:36.2110590Z unpack_armv7.S:583:13: error: invalid operand for instruction
2020-12-31T14:30:36.2111240Z         mov r11, #512
2020-12-31T14:30:36.2111650Z             ^
2020-12-31T14:30:36.2112290Z unpack_armv7.S:585:11: error: invalid operand for instruction
2020-12-31T14:30:36.2113200Z S161: str r2, [r1], #4
2020-12-31T14:30:36.2113620Z           ^
2020-12-31T14:30:36.2114250Z unpack_armv7.S:586:15: error: invalid operand for instruction
2020-12-31T14:30:36.2114920Z         cmpne ip, #0
2020-12-31T14:30:36.2115320Z               ^
2020-12-31T14:30:36.2116220Z unpack_armv7.S:588:22: error: invalid variant 'update'
2020-12-31T14:30:36.2117000Z         teq ip, r3 @ update weight based on signs
2020-12-31T14:30:36.2117540Z                      ^
2020-12-31T14:30:36.2118290Z unpack_armv7.S:589:9: error: unrecognized instruction mnemonic, did you mean: sub?
2020-12-31T14:30:36.2119110Z         submi r4, r4, r6
2020-12-31T14:30:36.2119510Z         ^
2020-12-31T14:30:36.2120140Z unpack_armv7.S:590:15: error: invalid operand for instruction
2020-12-31T14:30:36.2120800Z         addpl r4, r4, r6
2020-12-31T14:30:36.2121220Z               ^
2020-12-31T14:30:36.2122070Z unpack_armv7.S:591:25: error: invalid variant 'then'
2020-12-31T14:30:36.2123080Z         cmp r4, #1024 @ then clip weight to +/-1024
2020-12-31T14:30:36.2123590Z                         ^
2020-12-31T14:30:36.2124370Z unpack_armv7.S:592:9: error: unrecognized instruction mnemonic, did you mean: mov?
2020-12-31T14:30:36.2125150Z         movgt r4, #1024
2020-12-31T14:30:36.2125550Z         ^
2020-12-31T14:30:36.2126170Z unpack_armv7.S:593:13: error: invalid operand for instruction
2020-12-31T14:30:36.2126850Z         cmp r4, r10
2020-12-31T14:30:36.2127250Z             ^
2020-12-31T14:30:36.2128000Z unpack_armv7.S:594:9: error: unrecognized instruction mnemonic, did you mean: mov?
2020-12-31T14:30:36.2128770Z         movlt r4, r10
2020-12-31T14:30:36.2129170Z         ^
2020-12-31T14:30:36.2129990Z unpack_armv7.S:596:20: error: invalid variant 'ip'
2020-12-31T14:30:36.2130700Z S399: mov ip, r8 @ ip = previous left we use now
2020-12-31T14:30:36.2131240Z                    ^
2020-12-31T14:30:36.2132130Z unpack_armv7.S:597:22: error: invalid variant 'r8'
2020-12-31T14:30:36.2132860Z         mov r8, r2 @ r8 = current left we use next time
2020-12-31T14:30:36.2133400Z                      ^
2020-12-31T14:30:36.2134020Z unpack_armv7.S:598:13: error: invalid operand for instruction
2020-12-31T14:30:36.2134670Z         ldr r2, [r1], #4
2020-12-31T14:30:36.2135120Z             ^
2020-12-31T14:30:36.2135990Z unpack_armv7.S:599:31: error: invalid variant 'check'
2020-12-31T14:30:36.2136810Z         mov r3, ip, lsl #11 @ check magnitude by shifting left then right
2020-12-31T14:30:36.2137450Z                               ^
2020-12-31T14:30:36.2138300Z unpack_armv7.S:600:31: error: invalid variant 'and'
2020-12-31T14:30:36.2139400Z         cmp ip, r3, asr #11 @ and comparing, branch to 64-bit math if different
2020-12-31T14:30:36.2140040Z                               ^
2020-12-31T14:30:36.2140680Z unpack_armv7.S:602:13: error: invalid operand for instruction
2020-12-31T14:30:36.2141320Z         cmp ip, #0
2020-12-31T14:30:36.2141720Z             ^
2020-12-31T14:30:36.2142670Z unpack_armv7.S:603:13: error: invalid operand for instruction
2020-12-31T14:30:36.2143390Z         mla r3, ip, r0, r11
2020-12-31T14:30:36.2143810Z             ^
2020-12-31T14:30:36.2144660Z unpack_armv7.S:604:13: error: invalid operand for instruction
2020-12-31T14:30:36.2145330Z         add r3, r2, r3, asr #10
2020-12-31T14:30:36.2145760Z             ^
2020-12-31T14:30:36.2146420Z unpack_armv7.S:607:11: error: invalid operand for instruction
2020-12-31T14:30:36.2147080Z S162: mov r3, #0
2020-12-31T14:30:36.2147470Z           ^
2020-12-31T14:30:36.2148110Z unpack_armv7.S:608:15: error: invalid operand for instruction
2020-12-31T14:30:36.2148800Z         smlal r11, r3, r0, ip
2020-12-31T14:30:36.2149240Z               ^
2020-12-31T14:30:36.2149870Z unpack_armv7.S:609:13: error: invalid operand for instruction
2020-12-31T14:30:36.2150540Z         add r3, r2, r3, lsl #22
2020-12-31T14:30:36.2150970Z             ^
2020-12-31T14:30:36.2151600Z unpack_armv7.S:610:13: error: invalid operand for instruction
2020-12-31T14:30:36.2152270Z         add r3, r3, r11, lsr #10
2020-12-31T14:30:36.2152690Z             ^
2020-12-31T14:30:36.2153450Z unpack_armv7.S:611:13: error: invalid operand for instruction
2020-12-31T14:30:36.2154120Z         mov r11, #512
2020-12-31T14:30:36.2154550Z             ^
2020-12-31T14:30:36.2155300Z unpack_armv7.S:613:7: error: unrecognized instruction mnemonic, did you mean: str?
2020-12-31T14:30:36.2156570Z S163: strne r3, [r1, #-4]
2020-12-31T14:30:36.2157000Z       ^
2020-12-31T14:30:36.2157650Z unpack_armv7.S:614:15: error: invalid operand for instruction
2020-12-31T14:30:36.2158310Z         cmpne r2, #0
2020-12-31T14:30:36.2158720Z               ^
2020-12-31T14:30:36.2159390Z unpack_armv7.S:616:9: error: unrecognized instruction mnemonic
2020-12-31T14:30:36.2160090Z         teq ip, r2
2020-12-31T14:30:36.2160490Z         ^
2020-12-31T14:30:36.2161230Z unpack_armv7.S:617:9: error: unrecognized instruction mnemonic, did you mean: sub?
2020-12-31T14:30:36.2162000Z         submi r0, r0, r6
2020-12-31T14:30:36.2162450Z         ^
2020-12-31T14:30:36.2163090Z unpack_armv7.S:618:15: error: invalid operand for instruction
2020-12-31T14:30:36.2163760Z         addpl r0, r0, r6
2020-12-31T14:30:36.2164170Z               ^
2020-12-31T14:30:36.2164800Z unpack_armv7.S:619:13: error: invalid operand for instruction
2020-12-31T14:30:36.2165470Z         cmp r0, #1024
2020-12-31T14:30:36.2165870Z             ^
2020-12-31T14:30:36.2166670Z unpack_armv7.S:620:9: error: unrecognized instruction mnemonic, did you mean: mov?
2020-12-31T14:30:36.2167450Z         movgt r0, #1024
2020-12-31T14:30:36.2167850Z         ^
2020-12-31T14:30:36.2168470Z unpack_armv7.S:621:13: error: invalid operand for instruction
2020-12-31T14:30:36.2169120Z         cmp r0, r10
2020-12-31T14:30:36.2169540Z             ^
2020-12-31T14:30:36.2170290Z unpack_armv7.S:622:9: error: unrecognized instruction mnemonic, did you mean: mov?
2020-12-31T14:30:36.2171070Z         movlt r0, r10
2020-12-31T14:30:36.2171460Z         ^
2020-12-31T14:30:36.2172380Z unpack_armv7.S:624:20: error: invalid variant 'loop'
2020-12-31T14:30:36.2173120Z S407: cmp r7, r1 @ loop back if more samples to do
2020-12-31T14:30:36.2173660Z                    ^
2020-12-31T14:30:36.2174310Z unpack_armv7.S:627:27: error: unexpected token in argument list
2020-12-31T14:30:36.2175160Z         str r3, [r5, #16] @ else store previous samples & exit
2020-12-31T14:30:36.2175740Z                           ^
2020-12-31T14:30:36.2176400Z unpack_armv7.S:628:13: error: invalid operand for instruction
2020-12-31T14:30:36.2177060Z         str r8, [r5, #48]
2020-12-31T14:30:36.2177470Z             ^
2020-12-31T14:30:36.2178090Z unpack_armv7.S:635:13: error: invalid operand for instruction
2020-12-31T14:30:36.2178740Z         str r4, [r5, #8]
2020-12-31T14:30:36.2179140Z             ^
2020-12-31T14:30:36.2179760Z unpack_armv7.S:636:13: error: invalid operand for instruction
2020-12-31T14:30:36.2180400Z         str r0, [r5, #12]
2020-12-31T14:30:36.2180800Z             ^
2020-12-31T14:30:36.2181430Z unpack_armv7.S:637:21: error: vector register expected
2020-12-31T14:30:36.2182490Z         ldmfd sp!, {r4 - r8, r10, r11, pc}
2020-12-31T14:30:36.2182950Z                     ^
2020-12-31T14:30:36.2183700Z unpack_armv7.S:655:9: error: unknown directive
2020-12-31T14:30:36.2184260Z         .arm
2020-12-31T14:30:36.2184660Z         ^
2020-12-31T14:30:36.2185210Z unpack_armv7.S:656:9: error: unknown directive
2020-12-31T14:30:36.2185960Z         .type unpack_decorr_mono_pass_cont_armv7, STT_FUNC
2020-12-31T14:30:36.2186530Z         ^
2020-12-31T14:30:36.2187130Z unpack_armv7.S:660:21: error: vector register expected
2020-12-31T14:30:36.2188110Z         stmfd sp!, {r4 - r8, r11, lr}
2020-12-31T14:30:36.2188560Z                     ^
2020-12-31T14:30:36.2189390Z unpack_armv7.S:662:22: error: invalid variant 'r5'
2020-12-31T14:30:36.2190000Z         mov r5, r0 @ r5 = dpp
2020-12-31T14:30:36.2190420Z                      ^
2020-12-31T14:30:36.2191270Z unpack_armv7.S:663:25: error: invalid variant 'r11'
2020-12-31T14:30:36.2191910Z         mov r11, #512 @ r11 = 512 for rounding
2020-12-31T14:30:36.2192490Z                         ^
2020-12-31T14:30:36.2193150Z unpack_armv7.S:664:26: error: unexpected token in argument list
2020-12-31T14:30:36.2194140Z         ldr r6, [r0, #4] @ r6 = dpp->delta
2020-12-31T14:30:36.2194640Z                          ^
2020-12-31T14:30:36.2195290Z unpack_armv7.S:665:26: error: unexpected token in argument list
2020-12-31T14:30:36.2196270Z         ldr r4, [r0, #8] @ r4 = dpp->weight_A
2020-12-31T14:30:36.2196760Z                          ^
2020-12-31T14:30:36.2197600Z unpack_armv7.S:666:22: error: invalid variant 'exit'
2020-12-31T14:30:36.2198320Z         cmp r2, #0 @ exit if no samples to process
2020-12-31T14:30:36.2198850Z                      ^
2020-12-31T14:30:36.2199490Z unpack_armv7.S:669:29: error: unexpected token in argument list
2020-12-31T14:30:36.2200300Z         add r7, r1, r2, asl #2 @ r7 = buffer ending position
2020-12-31T14:30:36.2200860Z                             ^
2020-12-31T14:30:36.2201500Z unpack_armv7.S:670:26: error: unexpected token in argument list
2020-12-31T14:30:36.2202470Z         ldr r2, [r5, #0] @ r2 = dpp->term
2020-12-31T14:30:36.2202930Z                          ^
2020-12-31T14:30:36.2203590Z unpack_armv7.S:672:27: error: unexpected token in argument list
2020-12-31T14:30:36.2204680Z         ldr lr, [r1, #-8] @ load 2 sample history from buffer
2020-12-31T14:30:36.2205240Z                           ^
2020-12-31T14:30:36.2205870Z unpack_armv7.S:673:13: error: invalid operand for instruction
2020-12-31T14:30:36.2206760Z         ldr r8, [r1, #-4]
2020-12-31T14:30:36.2207160Z             ^
2020-12-31T14:30:36.2207790Z unpack_armv7.S:674:13: error: invalid operand for instruction
2020-12-31T14:30:36.2208430Z         cmp r2, #17
2020-12-31T14:30:36.2208810Z             ^
2020-12-31T14:30:36.2209440Z unpack_armv7.S:676:13: error: invalid operand for instruction
2020-12-31T14:30:36.2210070Z         cmp r2, #18
2020-12-31T14:30:36.2210460Z             ^
2020-12-31T14:30:36.2211080Z unpack_armv7.S:678:13: error: invalid operand for instruction
2020-12-31T14:30:36.2211720Z         cmp r2, #2
2020-12-31T14:30:36.2212100Z             ^
2020-12-31T14:30:36.2212940Z unpack_armv7.S:680:36: error: invalid variant 'else'
2020-12-31T14:30:36.2214030Z         b mono_term_default_loop @ else handle default (1-8, except 2)
2020-12-31T14:30:36.2214680Z                                    ^
2020-12-31T14:30:36.2215340Z unpack_armv7.S:698:29: error: unexpected token in argument list
2020-12-31T14:30:36.2216520Z         rsb ip, lr, r8, asl #1 @ decorr value = (2 * prev) - 2nd prev
2020-12-31T14:30:36.2217090Z                             ^
2020-12-31T14:30:36.2218020Z unpack_armv7.S:699:22: error: invalid variant 'previous'
2020-12-31T14:30:36.2218810Z         mov lr, r8 @ previous becomes 2nd previous
2020-12-31T14:30:36.2219370Z                      ^
2020-12-31T14:30:36.2220230Z unpack_armv7.S:700:28: error: invalid variant 'get'
2020-12-31T14:30:36.2220970Z         ldr r2, [r1], #4 @ get sample & update pointer
2020-12-31T14:30:36.2221520Z                            ^
2020-12-31T14:30:36.2222370Z unpack_armv7.S:701:31: error: invalid variant 'check'
2020-12-31T14:30:36.2223350Z         mov r8, ip, lsl #11 @ check magnitude by shifting left then right
2020-12-31T14:30:36.2223980Z                               ^
2020-12-31T14:30:36.2224890Z unpack_armv7.S:702:31: error: invalid variant 'and'
2020-12-31T14:30:36.2226030Z         cmp ip, r8, asr #11 @ and comparing, branch to 64-bit math if different
2020-12-31T14:30:36.2226690Z                               ^
2020-12-31T14:30:36.2227320Z unpack_armv7.S:704:13: error: invalid operand for instruction
2020-12-31T14:30:36.2227970Z         cmp ip, #0
2020-12-31T14:30:36.2228360Z             ^
2020-12-31T14:30:36.2229180Z unpack_armv7.S:705:31: error: invalid variant 'mult'
2020-12-31T14:30:36.2229970Z         mla r8, ip, r4, r11 @ mult decorr value by weight, round,
2020-12-31T14:30:36.2230570Z                               ^
2020-12-31T14:30:36.2231410Z unpack_armv7.S:706:35: error: invalid variant 'shift'
2020-12-31T14:30:36.2232220Z         add r8, r2, r8, asr #10 @ shift, and add to new sample
2020-12-31T14:30:36.2232770Z                                   ^
2020-12-31T14:30:36.2233470Z unpack_armv7.S:709:11: error: invalid operand for instruction
2020-12-31T14:30:36.2234110Z S717: mov r8, #0
2020-12-31T14:30:36.2234490Z           ^
2020-12-31T14:30:36.2235110Z unpack_armv7.S:710:15: error: invalid operand for instruction
2020-12-31T14:30:36.2235800Z         smlal r11, r8, r4, ip
2020-12-31T14:30:36.2236230Z               ^
2020-12-31T14:30:36.2236850Z unpack_armv7.S:711:13: error: invalid operand for instruction
2020-12-31T14:30:36.2237510Z         add r8, r2, r8, lsl #22
2020-12-31T14:30:36.2237920Z             ^
2020-12-31T14:30:36.2238540Z unpack_armv7.S:712:13: error: invalid operand for instruction
2020-12-31T14:30:36.2239220Z         add r8, r8, r11, lsr #10
2020-12-31T14:30:36.2239630Z             ^
2020-12-31T14:30:36.2240260Z unpack_armv7.S:713:13: error: invalid operand for instruction
2020-12-31T14:30:36.2240890Z         mov r11, #512
2020-12-31T14:30:36.2241290Z             ^
2020-12-31T14:30:36.2241980Z unpack_armv7.S:715:27: error: unexpected token in argument list
2020-12-31T14:30:36.2243150Z S718: strne r8, [r1, #-4] @ if change possible, store sample back
2020-12-31T14:30:36.2243750Z                           ^
2020-12-31T14:30:36.2244390Z unpack_armv7.S:716:15: error: invalid operand for instruction
2020-12-31T14:30:36.2245040Z         cmpne r2, #0
2020-12-31T14:30:36.2245440Z               ^
2020-12-31T14:30:36.2246270Z unpack_armv7.S:718:22: error: invalid variant 'update'
2020-12-31T14:30:36.2247010Z         teq ip, r2 @ update weight based on signs
2020-12-31T14:30:36.2247540Z                      ^
2020-12-31T14:30:36.2248290Z unpack_armv7.S:719:9: error: unrecognized instruction mnemonic, did you mean: sub?
2020-12-31T14:30:36.2249050Z         submi r4, r4, r6
2020-12-31T14:30:36.2249460Z         ^
2020-12-31T14:30:36.2250070Z unpack_armv7.S:720:15: error: invalid operand for instruction
2020-12-31T14:30:36.2250740Z         addpl r4, r4, r6
2020-12-31T14:30:36.2251150Z               ^
2020-12-31T14:30:36.2252000Z unpack_armv7.S:722:20: error: invalid variant 'loop'
2020-12-31T14:30:36.2252730Z S129: cmp r7, r1 @ loop back if more samples to do
2020-12-31T14:30:36.2253260Z                    ^
2020-12-31T14:30:36.2254090Z unpack_armv7.S:724:29: error: invalid variant 'common'
2020-12-31T14:30:36.2254810Z         b mono_store_1718 @ common exit for terms 17 & 18
2020-12-31T14:30:36.2255340Z                             ^
2020-12-31T14:30:36.2255990Z unpack_armv7.S:742:24: error: unexpected token in argument list
2020-12-31T14:30:36.2256720Z         sub ip, r8, lr @ decorr value =
2020-12-31T14:30:36.2257200Z                        ^
2020-12-31T14:30:36.2258150Z unpack_armv7.S:743:22: error: unexpected symbol modifier following '@'
2020-12-31T14:30:36.2259180Z         mov lr, r8 @ ((3 * prev) - 2nd prev) >> 1
2020-12-31T14:30:36.2259650Z                      ^
2020-12-31T14:30:36.2260280Z unpack_armv7.S:744:13: error: invalid operand for instruction
2020-12-31T14:30:36.2260960Z         add ip, r8, ip, asr #1
2020-12-31T14:30:36.2261500Z             ^
2020-12-31T14:30:36.2262320Z unpack_armv7.S:745:28: error: invalid variant 'get'
2020-12-31T14:30:36.2263040Z         ldr r2, [r1], #4 @ get sample & update pointer
2020-12-31T14:30:36.2263570Z                            ^
2020-12-31T14:30:36.2264410Z unpack_armv7.S:746:31: error: invalid variant 'check'
2020-12-31T14:30:36.2265230Z         mov r8, ip, lsl #11 @ check magnitude by shifting left then right
2020-12-31T14:30:36.2265860Z                               ^
2020-12-31T14:30:36.2266670Z unpack_armv7.S:747:31: error: invalid variant 'and'
2020-12-31T14:30:36.2267770Z         cmp ip, r8, asr #11 @ and comparing, branch to 64-bit math if different
2020-12-31T14:30:36.2268410Z                               ^
2020-12-31T14:30:36.2269050Z unpack_armv7.S:749:13: error: invalid operand for instruction
2020-12-31T14:30:36.2269690Z         cmp ip, #0
2020-12-31T14:30:36.2270080Z             ^
2020-12-31T14:30:36.2270990Z unpack_armv7.S:750:31: error: invalid variant 'mult'
2020-12-31T14:30:36.2271770Z         mla r8, ip, r4, r11 @ mult decorr value by weight, round,
2020-12-31T14:30:36.2272340Z                               ^
2020-12-31T14:30:36.2273180Z unpack_armv7.S:751:35: error: invalid variant 'shift'
2020-12-31T14:30:36.2273910Z         add r8, r2, r8, asr #10 @ shift, and add to new sample
2020-12-31T14:30:36.2274450Z                                   ^
2020-12-31T14:30:36.2275090Z unpack_armv7.S:754:11: error: invalid operand for instruction
2020-12-31T14:30:36.2275740Z S817: mov r8, #0
2020-12-31T14:30:36.2276120Z           ^
2020-12-31T14:30:36.2276740Z unpack_armv7.S:755:15: error: invalid operand for instruction
2020-12-31T14:30:36.2277410Z         smlal r11, r8, r4, ip
2020-12-31T14:30:36.2277830Z               ^
2020-12-31T14:30:36.2278450Z unpack_armv7.S:756:13: error: invalid operand for instruction
2020-12-31T14:30:36.2279120Z         add r8, r2, r8, lsl #22
2020-12-31T14:30:36.2279530Z             ^
2020-12-31T14:30:36.2280160Z unpack_armv7.S:757:13: error: invalid operand for instruction
2020-12-31T14:30:36.2280820Z         add r8, r8, r11, lsr #10
2020-12-31T14:30:36.2281240Z             ^
2020-12-31T14:30:36.2281860Z unpack_armv7.S:758:13: error: invalid operand for instruction
2020-12-31T14:30:36.2282540Z         mov r11, #512
2020-12-31T14:30:36.2282930Z             ^
2020-12-31T14:30:36.2283580Z unpack_armv7.S:760:27: error: unexpected token in argument list
2020-12-31T14:30:36.2284760Z S818: strne r8, [r1, #-4] @ if change possible, store sample back
2020-12-31T14:30:36.2285380Z                           ^
2020-12-31T14:30:36.2286020Z unpack_armv7.S:761:15: error: invalid operand for instruction
2020-12-31T14:30:36.2286680Z         cmpne r2, #0
2020-12-31T14:30:36.2287070Z               ^
2020-12-31T14:30:36.2288000Z unpack_armv7.S:763:22: error: invalid variant 'update'
2020-12-31T14:30:36.2288730Z         teq ip, r2 @ update weight based on signs
2020-12-31T14:30:36.2289270Z                      ^
2020-12-31T14:30:36.2290020Z unpack_armv7.S:764:9: error: unrecognized instruction mnemonic, did you mean: sub?
2020-12-31T14:30:36.2290810Z         submi r4, r4, r6
2020-12-31T14:30:36.2291220Z         ^
2020-12-31T14:30:36.2291870Z unpack_armv7.S:765:15: error: invalid operand for instruction
2020-12-31T14:30:36.2292530Z         addpl r4, r4, r6
2020-12-31T14:30:36.2292940Z               ^
2020-12-31T14:30:36.2293790Z unpack_armv7.S:767:20: error: invalid variant 'loop'
2020-12-31T14:30:36.2294530Z S141: cmp r7, r1 @ loop back if more samples to do
2020-12-31T14:30:36.2295080Z                    ^
2020-12-31T14:30:36.2295740Z unpack_armv7.S:773:27: error: unexpected token in argument list
2020-12-31T14:30:36.2296560Z         str r8, [r5, #16] @ store sample history into struct
2020-12-31T14:30:36.2297130Z                           ^
2020-12-31T14:30:36.2297760Z unpack_armv7.S:774:18: error: invalid operand for instruction
2020-12-31T14:30:36.2298410Z         str lr, [r5, #20]
2020-12-31T14:30:36.2298820Z                  ^
2020-12-31T14:30:36.2299660Z unpack_armv7.S:775:30: error: invalid variant 'and'
2020-12-31T14:30:36.2300430Z         b mono_common_exit @ and return
2020-12-31T14:30:36.2300920Z                              ^
2020-12-31T14:30:36.2301570Z unpack_armv7.S:795:20: error: unexpected token in argument list
2020-12-31T14:30:36.2302370Z         mov ip, lr @ get decorrelation value
2020-12-31T14:30:36.2302920Z                    ^
2020-12-31T14:30:36.2303790Z unpack_armv7.S:796:22: error: invalid variant 'previous'
2020-12-31T14:30:36.2304560Z         mov lr, r8 @ previous becomes 2nd previous
2020-12-31T14:30:36.2305110Z                      ^
2020-12-31T14:30:36.2305950Z unpack_armv7.S:797:28: error: invalid variant 'get'
2020-12-31T14:30:36.2306680Z         ldr r2, [r1], #4 @ get sample & update pointer
2020-12-31T14:30:36.2307220Z                            ^
2020-12-31T14:30:36.2308100Z unpack_armv7.S:798:31: error: invalid variant 'check'
2020-12-31T14:30:36.2309020Z         mov r8, ip, lsl #11 @ check magnitude by shifting left then right
2020-12-31T14:30:36.2309660Z                               ^
2020-12-31T14:30:36.2310510Z unpack_armv7.S:799:31: error: invalid variant 'and'
2020-12-31T14:30:36.2311600Z         cmp ip, r8, asr #11 @ and comparing, branch to 64-bit math if different
2020-12-31T14:30:36.2312250Z                               ^
2020-12-31T14:30:36.2312890Z unpack_armv7.S:801:13: error: invalid operand for instruction
2020-12-31T14:30:36.2313530Z         cmp ip, #0
2020-12-31T14:30:36.2313920Z             ^
2020-12-31T14:30:36.2314960Z unpack_armv7.S:802:31: error: invalid variant 'mult'
2020-12-31T14:30:36.2315740Z         mla r8, ip, r4, r11 @ mult decorr value by weight, round,
2020-12-31T14:30:36.2316320Z                               ^
2020-12-31T14:30:36.2317220Z unpack_armv7.S:803:35: error: invalid variant 'shift'
2020-12-31T14:30:36.2325200Z         add r8, r2, r8, asr #10 @ shift, and add to new sample
2020-12-31T14:30:36.2325800Z                                   ^
2020-12-31T14:30:36.2326480Z unpack_armv7.S:806:11: error: invalid operand for instruction
2020-12-31T14:30:36.2327140Z S917: mov r8, #0
2020-12-31T14:30:36.2327540Z           ^
2020-12-31T14:30:36.2328170Z unpack_armv7.S:807:15: error: invalid operand for instruction
2020-12-31T14:30:36.2328880Z         smlal r11, r8, r4, ip
2020-12-31T14:30:36.2329310Z               ^
2020-12-31T14:30:36.2329960Z unpack_armv7.S:808:13: error: invalid operand for instruction
2020-12-31T14:30:36.2330630Z         add r8, r2, r8, lsl #22
2020-12-31T14:30:36.2331060Z             ^
2020-12-31T14:30:36.2331680Z unpack_armv7.S:809:13: error: invalid operand for instruction
2020-12-31T14:30:36.2332370Z         add r8, r8, r11, lsr #10
2020-12-31T14:30:36.2332780Z             ^
2020-12-31T14:30:36.2333430Z unpack_armv7.S:810:13: error: invalid operand for instruction
2020-12-31T14:30:36.2334090Z         mov r11, #512
2020-12-31T14:30:36.2334480Z             ^
2020-12-31T14:30:36.2335130Z unpack_armv7.S:812:27: error: unexpected token in argument list
2020-12-31T14:30:36.2336550Z S918: strne r8, [r1, #-4] @ if change possible, store sample back
2020-12-31T14:30:36.2337190Z                           ^
2020-12-31T14:30:36.2337830Z unpack_armv7.S:813:15: error: invalid operand for instruction
2020-12-31T14:30:36.2338490Z         cmpne r2, #0
2020-12-31T14:30:36.2339060Z               ^
2020-12-31T14:30:36.2339950Z unpack_armv7.S:815:22: error: invalid variant 'update'
2020-12-31T14:30:36.2340700Z         teq ip, r2 @ update weight based on signs
2020-12-31T14:30:36.2341230Z                      ^
2020-12-31T14:30:36.2341990Z unpack_armv7.S:816:9: error: unrecognized instruction mnemonic, did you mean: sub?
2020-12-31T14:30:36.2342770Z         submi r4, r4, r6
2020-12-31T14:30:36.2343200Z         ^
2020-12-31T14:30:36.2343840Z unpack_armv7.S:817:15: error: invalid operand for instruction
2020-12-31T14:30:36.2344520Z         addpl r4, r4, r6
2020-12-31T14:30:36.2344930Z               ^
2020-12-31T14:30:36.2345800Z unpack_armv7.S:819:20: error: invalid variant 'loop'
2020-12-31T14:30:36.2346530Z S029: cmp r7, r1 @ loop back if more samples to do
2020-12-31T14:30:36.2347350Z                    ^
2020-12-31T14:30:36.2348190Z unpack_armv7.S:821:36: error: invalid variant 'this'
2020-12-31T14:30:36.2349310Z         b mono_default_term_exit @ this exit updates all dpp->samples
2020-12-31T14:30:36.2349960Z                                    ^
2020-12-31T14:30:36.2350630Z unpack_armv7.S:839:22: error: unexpected token in argument list
2020-12-31T14:30:36.2351390Z         ldr ip, [r1] @ get original sample
2020-12-31T14:30:36.2351890Z                      ^
2020-12-31T14:30:36.2352540Z unpack_armv7.S:840:31: error: unexpected token in argument list
2020-12-31T14:30:36.2353730Z         ldr r3, [r1, -r2, asl #2] @ get decorrelation value based on term
2020-12-31T14:30:36.2354370Z                               ^
2020-12-31T14:30:36.2355240Z unpack_armv7.S:841:31: error: invalid variant 'check'
2020-12-31T14:30:36.2356270Z         mov r8, r3, lsl #11 @ check magnitude by shifting left then right
2020-12-31T14:30:36.2356970Z                               ^
2020-12-31T14:30:36.2357940Z unpack_armv7.S:842:31: error: invalid variant 'and'
2020-12-31T14:30:36.2359110Z         cmp r3, r8, asr #11 @ and comparing, branch to 64-bit math if different
2020-12-31T14:30:36.2359780Z                               ^
2020-12-31T14:30:36.2360680Z unpack_armv7.S:844:31: error: invalid variant 'mult'
2020-12-31T14:30:36.2361450Z         mla r8, r3, r4, r11 @ mult decorr value by weight, round,
2020-12-31T14:30:36.2362020Z                               ^
2020-12-31T14:30:36.2362870Z unpack_armv7.S:845:35: error: invalid variant 'shift'
2020-12-31T14:30:36.2363600Z         add r8, ip, r8, asr #10 @ shift and add to new sample
2020-12-31T14:30:36.2364160Z                                   ^
2020-12-31T14:30:36.2364800Z unpack_armv7.S:848:11: error: invalid operand for instruction
2020-12-31T14:30:36.2365450Z S617: mov r8, #0
2020-12-31T14:30:36.2365830Z           ^
2020-12-31T14:30:36.2366470Z unpack_armv7.S:849:15: error: invalid operand for instruction
2020-12-31T14:30:36.2367140Z         smlal r11, r8, r4, r3
2020-12-31T14:30:36.2367560Z               ^
2020-12-31T14:30:36.2368180Z unpack_armv7.S:850:13: error: invalid operand for instruction
2020-12-31T14:30:36.2368860Z         add r8, ip, r8, lsl #22
2020-12-31T14:30:36.2369290Z             ^
2020-12-31T14:30:36.2369940Z unpack_armv7.S:851:13: error: invalid operand for instruction
2020-12-31T14:30:36.2370600Z         add r8, r8, r11, lsr #10
2020-12-31T14:30:36.2371030Z             ^
2020-12-31T14:30:36.2371650Z unpack_armv7.S:852:13: error: invalid operand for instruction
2020-12-31T14:30:36.2372300Z         mov r11, #512
2020-12-31T14:30:36.2372680Z             ^
2020-12-31T14:30:36.2373610Z unpack_armv7.S:854:26: error: invalid variant 'store'
2020-12-31T14:30:36.2374310Z S618: str r8, [r1], #4 @ store update sample
2020-12-31T14:30:36.2374840Z                          ^
2020-12-31T14:30:36.2375500Z unpack_armv7.S:855:13: error: invalid operand for instruction
2020-12-31T14:30:36.2376150Z         cmp r3, #0
2020-12-31T14:30:36.2376550Z             ^
2020-12-31T14:30:36.2377180Z unpack_armv7.S:856:15: error: invalid operand for instruction
2020-12-31T14:30:36.2377830Z         cmpne ip, #0
2020-12-31T14:30:36.2378250Z               ^
2020-12-31T14:30:36.2379120Z unpack_armv7.S:858:22: error: invalid variant 'update'
2020-12-31T14:30:36.2379860Z         teq ip, r3 @ update weight based on signs
2020-12-31T14:30:36.2380390Z                      ^
2020-12-31T14:30:36.2381150Z unpack_armv7.S:859:9: error: unrecognized instruction mnemonic, did you mean: sub?
2020-12-31T14:30:36.2381920Z         submi r4, r4, r6
2020-12-31T14:30:36.2382330Z         ^
2020-12-31T14:30:36.2382940Z unpack_armv7.S:860:15: error: invalid operand for instruction
2020-12-31T14:30:36.2383600Z         addpl r4, r4, r6
2020-12-31T14:30:36.2384010Z               ^
2020-12-31T14:30:36.2384850Z unpack_armv7.S:862:20: error: invalid variant 'loop'
2020-12-31T14:30:36.2385570Z S154: cmp r7, r1 @ loop back if more samples to do
2020-12-31T14:30:36.2386320Z                    ^
2020-12-31T14:30:36.2387000Z unpack_armv7.S:871:26: error: unexpected token in argument list
2020-12-31T14:30:36.2388020Z         ldr r2, [r5, #0] @ r2 = dpp->term
2020-12-31T14:30:36.2388500Z                          ^
2020-12-31T14:30:36.2389140Z unpack_armv7.S:873:11: error: invalid operand for instruction
2020-12-31T14:30:36.2389780Z S158: sub r2, r2, #1
2020-12-31T14:30:36.2390180Z           ^
2020-12-31T14:30:36.2390800Z unpack_armv7.S:874:13: error: invalid operand for instruction
2020-12-31T14:30:36.2391440Z         sub r1, r1, #4
2020-12-31T14:30:36.2391830Z             ^
2020-12-31T14:30:36.2392470Z unpack_armv7.S:875:26: error: unexpected token in argument list
2020-12-31T14:30:36.2393620Z         ldr r3, [r1, #0] @ get sample and store in dpp->samples_A [r2]
2020-12-31T14:30:36.2394220Z                          ^
2020-12-31T14:30:36.2395780Z unpack_armv7.S:876:13: error: invalid operand for instruction
2020-12-31T14:30:36.2396620Z         add r6, r5, #16
2020-12-31T14:30:36.2397050Z             ^
2020-12-31T14:30:36.2397710Z unpack_armv7.S:877:30: error: unexpected token in argument list
2020-12-31T14:30:36.2398400Z         str r3, [r6, r2, asl #2]
2020-12-31T14:30:36.2398840Z                              ^
2020-12-31T14:30:36.2399490Z unpack_armv7.S:878:13: error: invalid operand for instruction
2020-12-31T14:30:36.2400140Z         cmp r2, #0
2020-12-31T14:30:36.2400520Z             ^
2020-12-31T14:30:36.2401150Z unpack_armv7.S:887:13: error: invalid operand for instruction
2020-12-31T14:30:36.2402520Z /opt/homebrew/Library/Homebrew/shims/scm/git --version
2020-12-31T14:30:36.2403190Z         str r4, [r5, #8]
2020-12-31T14:30:36.2403590Z             ^
2020-12-31T14:30:36.2404200Z unpack_armv7.S:888:21: error: vector register expected
2020-12-31T14:30:36.2405160Z         ldmfd sp!, {r4 - r8, r11, pc}
2020-12-31T14:30:36.2405630Z                     ^
dbry commented 3 years ago

Thanks for reporting this! I currently have no plans to implement ARM64 assembly (which would require a rewrite of the existing ARM assembly) so for now I'll try to disable the ARM code for ARM64.

Unfortunately I have no way to try this on Apple, so could you please verify that this works and close the issue if it does?

Cheers!

fxcoudert commented 3 years ago

The target triplet is sometimes called arm64, but most of the times referred to as aarch64. I think it would be better to match both.

dbry commented 3 years ago

Yes, it might be, and I would certainly have to add that if I implemented 64-bit ARM code.

But for now the purpose is to just not trigger the A32 code, and aarch64 would not do that.

At first I tried to create a pattern that matched arm* AND NOT arm64* but couldn't figure it out, so this hack would have to do for now.

dbry commented 3 years ago

Well, the plot thickens!

I just got a report that an Apple Silicon build failed because the host was reported as arm-apple-darwin20.2.0. That same system had reported aarch64-apple-darwin20.2.0 previously and of course that worked (and always should have worked because there's no arm in it at all).

@fxcoudert You obviously had a failure and posted that your host was aarch64-apple-darwin20, but actually that should not have triggered the ARM assembly code. But then I assume my fix to ignore arm* if arm64* matched fixed your problem, right?

In any event, if the host CPU on Apple Silicon can sometimes be simply arm and sometimes arm64 and sometimes aarch64, and, who knows, maybe sometimes armv64 or armv8, then I'm going to have to make my ARM assembly code trigger on NOT arm*64* AND armv6* OR armv7*.

Being too picky on asm choices is better than being too loose because in the worst case we still build, and these days processors are so much faster than when I created that asm code that it probably makes no practical difference.

fxcoudert commented 3 years ago

@dbry I stated what the usual/canonical triplet was for the architecture, i.e., what an up-to-date config.guess will report. The config.guess in wavpack 5.4.0 is dated 2018-02-24, so it is outdated (and the config.sub too). If you update those config files, the arch triplet should be detected in a systematic manner.

We have fixed the issue in Homebrew by explicitly passing --disable-asm to configure.

dbry commented 3 years ago

Ah, that explains some mysteries! I wish I’d known I was going down the wrong path before my release, but unfortunately the whole autotools component is a black box to me and other than a few trivial (and probably wrong) tweaks to configure.ac, I rely on the kindness of strangers.

The latest autotools-dev for my Debian-based distribution is 20180224. This page suggests that just getting the new versions of config.guess and config.sub and putting them in the tarball is fine (or maybe into /usr/share/misc). But this page seems to imply that it’s not a good idea, but most of that page is Latin to me and it also seems it might be a little too targeted at Debian packages.

Anyway, I put --disable-asm in there for a reason.

fxcoudert commented 3 years ago

Just update the config.guess and config.sub files manually at https://www.gnu.org/software/gettext/manual/html_node/config_002eguess.html says, it's good.

Artoria2e5 commented 1 year ago

If anyone kept the old MMX intrinsic code for x86 (or any intrinsic code), there might be a way to use them on a couple other architectures with https://github.com/simd-everywhere/simde. The mmx.h implementation has redirections to Neon and Loongson MMI (in some ways a carbon copy of MMX on MIPS).


[oh no i am now curious about whether the C compiler will unroll and make its own simd]

The answer is no. I grabbed the case 17 loop from decorr_mono_pass and fed into godbolt. Neither GCC nor Clang wants to vectorize with #pragma omp simd + -fopenmp-simd. GCC says dpp->samples_A [0] = apply_weight (weight_A, sam_A) + bptr [0]; line is the problem. Yeah, loop-carried dependency right there...

I guess that would be why the assembly functions don't use the dpp samples. There's also always a dependency on weight_A and weight_B for each iteration, which would explain the use of MMX and all the optimization being stereo-only -- you really could not go beyond one-pair-at-once.


In other news, asm isn't doing much in my very unscientific test -- bash time on the fast-tests. The user CPU time variance is everywhere so don't take it too seriously anyways.

times ``` upstream real 4m39.633s user 3m29.828s sys 0m2.749s real 4m39.962s user 3m48.265s sys 0m1.640s simd no-asm real 4m58.920s user 3m26.483s sys 0m2.515s real 4m57.772s user 3m44.765s sys 0m2.250s ups no-asm real 5m1.402s user 3m47.125s sys 0m2.827s real 4m57.656s user 4m14.796s sys 0m1.937s ``` * "upstream" is the current HEAD. * "simd" is a private commit that adds #pragma omp simd to the two functions with an assembly version, on each case xx: for loop. * no-asm is --disable-asm, so no MMX. Ryzen 5 3600, auto-boosted to 3.99 GHz. MSYS2 (not the most performant environment), gcc 11.3.0, default generic flags besides -fopenmp-simd.
redtide commented 8 months ago

If this is still an issue can something like this be added to your CMake configuration?

dbry commented 8 months ago

In other news, asm isn't doing much in my very unscientific test -- bash time on the fast-tests. The user CPU time variance is everywhere so don't take it too seriously anyways.

times

upstream
real    4m39.633s
user    3m29.828s
sys     0m2.749s

real    4m39.962s
user    3m48.265s
sys     0m1.640s

simd no-asm
real    4m58.920s
user    3m26.483s
sys     0m2.515s

real    4m57.772s
user    3m44.765s
sys     0m2.250s

ups no-asm
real    5m1.402s
user    3m47.125s
sys     0m2.827s

real    4m57.656s
user    4m14.796s
sys     0m1.937s
  • "upstream" is the current HEAD.
  • "simd" is a private commit that adds #pragma omp simd to the two functions with an assembly version, on each case xx: for loop.
  • no-asm is --disable-asm, so no MMX.

Ryzen 5 3600, auto-boosted to 3.99 GHz. MSYS2 (not the most performant environment), gcc 11.3.0, default generic flags besides -fopenmp-simd.

Thanks for this post and your investigation...sorry I didn't respond earlier but I kept forgetting it was here!

The funny thing is that I recently switched from an Intel-based laptop to a Ryzen machine (HP Dev One) and the advantage of the MMX code seems to have completely disappeared, and this is exactly what you are seeing! It usd to provide a decent bump, but I don't have the expertise (or motivation) to figure out what's going on. Perhaps moving the asm to something newer than MMX might help, but like you point out, the only thing that can be SIMD'd is the stereo pairs. Such is the nature of codecs that adapt every sample.

Of course, what does make a huge improvement is the multi-threading I added recently, and that's the direction I'm more inclined to pursue in the future.

Thanks again, and sorry for being so unresponsive! :smile:

dbry commented 8 months ago

If this is still an issue can something like this be added to your CMake configuration?

I don't know. Is this still a problem? I was under the impression that with the latest changes and new config.guess fixes everything (i.e., disables ASM when it needs to). @fxcoudert ?

redtide commented 8 months ago

We are not updating often submodules and IDK if CMake is working together with Autoconf in your project, we had issues with our checkout and solved that way our side, so I saw this issue still open and asked :)

dbry commented 8 months ago

Ah, well the issue is still open because I'm lazy about closing them and hope the OP will do so. Thanks for posting and unless I here otherwise in the near future that this is still an issue, I'll close it myself. Cheers!