aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2018-06-26 13:40:13 +0100
committerNick Clifton <nickc@redhat.com>2018-06-26 13:40:13 +0100
commit791755f59dde1d1bc191fd3742d32929091dec83 (patch)
treeca4903c5bb0719d8afd2066b1618371f79956226
parent2822b09ff6024d042f1258194d6938c5a401b4fb (diff)
downloadgdb-791755f59dde1d1bc191fd3742d32929091dec83.zip
gdb-791755f59dde1d1bc191fd3742d32929091dec83.tar.gz
gdb-791755f59dde1d1bc191fd3742d32929091dec83.tar.bz2
Fix the MSP430 assembler's parsing of register names.
PR 23335 * config/tc-msp430.c (check_reg): Only accept register name strings that do not end in an alphanumeric character. * testsuite/gas/msp430/msp430x.d: Update expected disassembly.
-rw-r--r--gas/ChangeLog7
-rw-r--r--gas/config/tc-msp430.c26
-rw-r--r--gas/testsuite/gas/msp430/msp430x.d250
3 files changed, 150 insertions, 133 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 4665eef..41a4430 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,10 @@
+2018-06-26 Nick Clifton <nickc@redhat.com>
+
+ PR 23335
+ * config/tc-msp430.c (check_reg): Only accept register name
+ strings that do not end in an alphanumeric character.
+ * testsuite/gas/msp430/msp430x.d: Update expected disassembly.
+
2018-06-24 Nick Clifton <nickc@redhat.com>
* configure: Regenerate.
diff --git a/gas/config/tc-msp430.c b/gas/config/tc-msp430.c
index 3227287..bebae6e 100644
--- a/gas/config/tc-msp430.c
+++ b/gas/config/tc-msp430.c
@@ -1672,6 +1672,12 @@ md_begin (void)
linkrelax = 1;
}
+static inline bfd_boolean
+is_regname_end (char c)
+{
+ return (c == 0 || ! ISALNUM (c));
+}
+
/* Returns the register number equivalent to the string T.
Returns -1 if there is no such register.
Skips a leading 'r' or 'R' character if there is one.
@@ -1680,32 +1686,36 @@ md_begin (void)
static signed int
check_reg (char * t)
{
- signed int val;
+ char * endt;
+ signed long int val;
- if (t == NULL)
+ if (t == NULL || t[0] == 0)
return -1;
if (*t == 'r' || *t == 'R')
++t;
- if (strncasecmp (t, "pc", 2) == 0)
+ if (strncasecmp (t, "pc", 2) == 0 && is_regname_end (t[2]))
return 0;
- if (strncasecmp (t, "sp", 2) == 0)
+ if (strncasecmp (t, "sp", 2) == 0 && is_regname_end (t[2]))
return 1;
- if (strncasecmp (t, "sr", 2) == 0)
+ if (strncasecmp (t, "sr", 2) == 0 && is_regname_end (t[2]))
return 2;
- if (*t == '0')
+ if (*t == '0' && is_regname_end (t[1]))
return 0;
- val = atoi (t);
+ val = strtol (t, & endt, 0);
if (val < 1 || val > 15)
return -1;
- return val;
+ if (is_regname_end (*endt))
+ return val;
+
+ return -1;
}
static int
diff --git a/gas/testsuite/gas/msp430/msp430x.d b/gas/testsuite/gas/msp430/msp430x.d
index 8eea453..ecaef8f 100644
--- a/gas/testsuite/gas/msp430/msp430x.d
+++ b/gas/testsuite/gas/msp430/msp430x.d
@@ -105,128 +105,128 @@ Disassembly of section .text:
0+021a <[^>]*> 40 1d b0 40 de bc 00 00 movx.w #-344866,0x00000 ;0xabcde, PC rel. 0x00220
0+0222 <[^>]*> 40 18 90 40 00 00 00 00 movx.w 0x00000,0x00000 ;PC rel. 0x00226, PC rel. 0x00228
0+022a <[^>]*> 40 18 0f 73 sbcx.w r15 ;
-0+022e <[^>]*> 00 18 40 73 sbcx.a r0 ;
-0+0232 <[^>]*> 40 18 4f 73 sbcx.b r15 ;
-0+0236 <[^>]*> 40 18 87 73 00 00 sbcx.w 0\(r7\) ;
-0+023c <[^>]*> 40 18 0f 7f subcx.w r15, r15 ;
-0+0240 <[^>]*> 80 18 7f 70 45 23 subcx.a #74565, r15 ;0x12345
-0+0246 <[^>]*> 40 18 4f 7f subcx.b r15, r15 ;
-0+024a <[^>]*> 40 18 b7 75 00 00 subcx.w @r5\+, 0\(r7\) ;
-0+0250 <[^>]*> 40 18 10 86 02 00 subx.w 2\(r6\), r0 ;
-0+0256 <[^>]*> 00 18 f0 80 67 11 00 00 subx.a #4455, 0x00000 ;0x01167, PC rel. 0x0025c
-0+025e <[^>]*> 40 18 50 86 02 00 subx.b 2\(r6\), r0 ;
-0+0264 <[^>]*> 40 18 10 86 02 00 subx.w 2\(r6\), r0 ;
-0+026a <[^>]*> 40 18 80 93 00 00 cmpx.w #0, 0x00000 ;r3 As==00, PC rel. 0x0026e
-0+0270 <[^>]*> 00 18 c0 93 00 00 cmpx.a #0, 0x00000 ;r3 As==00, PC rel. 0x00274
-0+0276 <[^>]*> 40 18 c0 93 00 00 cmpx.b #0, 0x00000 ;r3 As==00, PC rel. 0x0027a
-0+027c <[^>]*> 40 18 80 93 00 00 cmpx.w #0, 0x00000 ;r3 As==00, PC rel. 0x00280
-0+0282 <[^>]*> 40 18 b0 e0 5a 5a 00 00 xorx.w #23130, 0x00000 ;0x05a5a, PC rel. 0x00288
-0+028a <[^>]*> 40 18 90 e2 00 00 00 00 xorx.w &0x00000,0x00000 ; PC rel. 0x00290
-0+0292 <[^>]*> 40 18 a0 e8 00 00 xorx.w @r8, 0x00000 ; PC rel. 0x00296
-0+0298 <[^>]*> 40 18 80 e8 00 00 xorx.w r8, 0x00000 ; PC rel. 0x0029c
-0+029e <[^>]*> 40 18 d0 e6 02 00 00 00 xorx.b 2\(r6\), 0x00000 ; PC rel. 0x002a4
-0+02a6 <[^>]*> 40 18 f0 e8 00 00 xorx.b @r8\+, 0x00000 ; PC rel. 0x002aa
-0+02ac <[^>]*> 00 18 d2 e0 00 00 00 00 xorx.a 0x00000,&0x00000;PC rel. 0x002b0
-0+02b4 <[^>]*> 40 18 26 e5 xorx.w @r5, r6 ;
-0+02b8 <[^>]*> 04 18 ff e0 39 30 78 56 xorx.a #12345, 284280\(r15\);0x03039, 0x45678
-0+02c0 <[^>]*> a7 01 45 23 adda #74565, r7 ;0x12345
-0+02c4 <[^>]*> ee 06 adda r6, r14 ;
-0+02c6 <[^>]*> 80 00 00 00 mova #0, r0 ;
-0+02ca <[^>]*> 80 01 44 10 mova #69700, r0 ;0x11044
-0+02ce <[^>]*> c0 05 mova r5, r0 ;
-0+02d0 <[^>]*> 20 00 00 00 bra &0 ;
-0+02d4 <[^>]*> 00 05 bra @r5 ;
-0+02d6 <[^>]*> 10 05 bra @r5\+ ;
-0+02d8 <[^>]*> 30 05 76 98 bra -26506\(r5\) ;0xffff9876
-0+02dc <[^>]*> 45 13 calla r5 ;
-0+02de <[^>]*> 56 13 00 00 calla 0\(r6\) ;0x00000
-0+02e2 <[^>]*> 67 13 calla @r7 ;
-0+02e4 <[^>]*> 78 13 calla @r8\+ ;
-0+02e6 <[^>]*> 80 13 00 00 calla &0 ;0x00000
-0+02ea <[^>]*> 90 13 00 00 calla 0\(PC\) ;PC rel. 0x002ec
-0+02ee <[^>]*> b0 13 00 00 calla #0 ;0x00000
-0+02f2 <[^>]*> 40 18 06 43 clrx.w r6 ;
-0+02f6 <[^>]*> d2 01 cmpa r1, r2 ;
-0+02f8 <[^>]*> 93 0f cb ed cmpa #1043915,r3 ;0xfedcb
-0+02fc <[^>]*> 40 18 25 83 decdx.w r5 ;
-0+0300 <[^>]*> 40 18 25 53 incdx.w r5 ;
-0+0304 <[^>]*> c8 09 mova r9, r8 ;
-0+0306 <[^>]*> 8c 01 45 23 mova #74565, r12 ;0x12345
-0+030a <[^>]*> 38 09 00 01 mova 256\(r9\),r8 ;0x00100
-0+030e <[^>]*> 2c 00 00 00 mova &0, r12 ;
-0+0312 <[^>]*> 08 09 mova @r9, r8 ;
-0+0314 <[^>]*> 18 09 mova @r9\+, r8 ;
-0+0316 <[^>]*> 79 08 00 01 mova r8, 256\(r9\) ; 0x00100
-0+031a <[^>]*> 60 0d 00 00 mova r13, &0 ;
-0+031e <[^>]*> 10 01 reta ;
-0+0320 <[^>]*> 00 13 reti
-0+0322 <[^>]*> f6 05 suba r5, r6 ;
-0+0324 <[^>]*> b6 0f ff ff suba #1048575,r6 ;0xfffff
-0+0328 <[^>]*> 40 18 80 93 00 00 cmpx.w #0, 0x00000 ;r3 As==00, PC rel. 0x0032c
-0+032e <[^>]*> 05 17 popm #1, r5 ;16-bit words
-0+0330 <[^>]*> 2d 16 popm.a #3, r15 ;20-bit words
-0+0332 <[^>]*> 75 17 popm #8, r12 ;16-bit words
-0+0334 <[^>]*> 40 18 3a 41 popx.w r10 ;
-0+0338 <[^>]*> 00 18 7a 41 popx.a r10 ;
-0+033c <[^>]*> 40 18 7a 41 popx.b r10 ;
-0+0340 <[^>]*> 40 18 3a 41 popx.w r10 ;
-0+0344 <[^>]*> 09 15 pushm #1, r9 ;16-bit words
-0+0346 <[^>]*> 19 14 pushm.a #2, r9 ;20-bit words
-0+0348 <[^>]*> 29 15 pushm #3, r9 ;16-bit words
-0+034a <[^>]*> 40 18 08 12 pushx.w r8 ;
-0+034e <[^>]*> 00 18 48 12 pushx.a r8 ;
-0+0352 <[^>]*> 40 18 52 12 00 00 pushx.b &0x0000 ;
-0+0358 <[^>]*> 40 18 08 12 pushx.w r8 ;
-0+035c <[^>]*> 5f 02 rlam #1, r15 ;
-0+035e <[^>]*> 4f 06 rlam.a #2, r15 ;
-0+0360 <[^>]*> 5f 0a rlam #3, r15 ;
-0+0362 <[^>]*> 40 18 06 56 rlax.w r6 ;
-0+0366 <[^>]*> 00 18 46 56 rlax.a r6 ;
-0+036a <[^>]*> 40 18 06 56 rlax.w r6 ;
-0+036e <[^>]*> 40 18 06 66 rlcx.w r6 ;
-0+0372 <[^>]*> 00 18 46 66 rlcx.a r6 ;
-0+0376 <[^>]*> 40 18 06 66 rlcx.w r6 ;
-0+037a <[^>]*> 56 01 rram #1, r6 ;
-0+037c <[^>]*> 46 0d rram.a #4, r6 ;
-0+037e <[^>]*> 56 05 rram #2, r6 ;
-0+0380 <[^>]*> 40 18 0b 11 rrax.w r11 ;
-0+0384 <[^>]*> 00 18 4b 11 rrax.a r11 ;
-0+0388 <[^>]*> 40 18 0b 11 rrax.w r11 ;
-0+038c <[^>]*> 55 0c rrcm #4, r5 ;
-0+038e <[^>]*> 45 00 rrcm.a #1, r5 ;
-0+0390 <[^>]*> 55 08 rrcm #3, r5 ;
-0+0392 <[^>]*> 40 18 0d 10 rrcx.w r13 ;
-0+0396 <[^>]*> 00 18 4d 10 rrcx.a r13 ;
-0+039a <[^>]*> 40 18 0d 10 rrcx.w r13 ;
-0+039e <[^>]*> 54 0b rrum #3, r4 ;
-0+03a0 <[^>]*> 44 07 rrum.a #2, r4 ;
-0+03a2 <[^>]*> 54 03 rrum #1, r4 ;
-0+03a4 <[^>]*> 40 19 04 10 rrux.w r4 ;
-0+03a8 <[^>]*> 00 19 47 10 rrux.a r7 ;
-0+03ac <[^>]*> 40 19 45 10 rrux.b r5 ;
-0+03b0 <[^>]*> 40 19 06 10 rrux.w r6 ;
-0+03b4 <[^>]*> 40 18 81 10 swpbx.w r1 ;
-0+03b8 <[^>]*> 00 18 90 10 00 00 swpbx.a 0x0000 ;PC rel. 0x03bc
-0+03be <[^>]*> 40 18 8c 10 swpbx.w r12 ;
-0+03c2 <[^>]*> 40 18 82 11 sxtx.w r2 ;
-0+03c6 <[^>]*> 00 18 92 11 00 00 sxtx.a &0x0000 ;
-0+03cc <[^>]*> 40 18 82 11 sxtx.w r2 ;
-0+03d0 <[^>]*> 04 18 45 11 rpt #5 \{ rrax.a r5 ;
-0+03d4 <[^>]*> 85 18 45 11 rpt r5 \{ rrax.a r5 ;
-0+03d8 <[^>]*> e2 01 adda r1, r2 ;
-0+03da <[^>]*> c0 01 mova r1, r0 ;
-0+03dc <[^>]*> 41 13 calla r1 ;
-0+03de <[^>]*> 40 18 01 43 clrx.w r1 ;
-0+03e2 <[^>]*> d2 01 cmpa r1, r2 ;
-0+03e4 <[^>]*> 40 18 21 83 decdx.w r1 ;
-0+03e8 <[^>]*> 40 18 21 53 incdx.w r1 ;
-0+03ec <[^>]*> c2 01 mova r1, r2 ;
-0+03ee <[^>]*> 10 01 reta ;
-0+03f0 <[^>]*> f2 01 suba r1, r2 ;
-0+03f2 <[^>]*> 40 18 80 93 00 00 cmpx.w #0, 0x00000 ;r3 As==00, PC rel. 0x003f6
-0+03f8 <[^>]*> c1 19 01 10 rpt r1 \{ rrux.w r1 ;
-0+03fc <[^>]*> 41 18 02 10 rpt #2 \{ rrcx.w r2 ;
-0+0400 <[^>]*> 42 18 47 11 rpt #3 \{ rrax.b r7 ;
-0+0404 <[^>]*> 84 18 44 11 rpt r4 \{ rrax.a r4 ;
-0+0408 <[^>]*> 44 18 45 55 rpt #5 \{ rlax.b r5 ;
-0+040c <[^>]*> 05 18 46 66 rpt #6 \{ rlcx.a r6 ;
+0+022e <[^>]*> 80 18 c0 73 45 23 sbcx.a 0x2345 ;PC rel. abs addr 0x2577
+0+0234 <[^>]*> 40 18 4f 73 sbcx.b r15 ;
+0+0238 <[^>]*> 40 18 87 73 00 00 sbcx.w 0\(r7\) ;
+0+023e <[^>]*> 40 18 0f 7f subcx.w r15, r15 ;
+0+0242 <[^>]*> 80 18 7f 70 45 23 subcx.a #74565, r15 ;0x12345
+0+0248 <[^>]*> 40 18 4f 7f subcx.b r15, r15 ;
+0+024c <[^>]*> 40 18 b7 75 00 00 subcx.w @r5\+, 0\(r7\) ;
+0+0252 <[^>]*> 40 18 10 86 02 00 subx.w 2\(r6\), r0 ;
+0+0258 <[^>]*> 00 18 f0 80 67 11 00 00 subx.a #4455, 0x00000 ;0x01167, PC rel. 0x0025e
+0+0260 <[^>]*> 40 18 50 86 02 00 subx.b 2\(r6\), r0 ;
+0+0266 <[^>]*> 40 18 10 86 02 00 subx.w 2\(r6\), r0 ;
+0+026c <[^>]*> 40 18 80 93 00 00 cmpx.w #0, 0x00000 ;r3 As==00, PC rel. 0x00270
+0+0272 <[^>]*> 00 18 c0 93 00 00 cmpx.a #0, 0x00000 ;r3 As==00, PC rel. 0x00276
+0+0278 <[^>]*> 40 18 c0 93 00 00 cmpx.b #0, 0x00000 ;r3 As==00, PC rel. 0x0027c
+0+027e <[^>]*> 40 18 80 93 00 00 cmpx.w #0, 0x00000 ;r3 As==00, PC rel. 0x00282
+0+0284 <[^>]*> 40 18 b0 e0 5a 5a 00 00 xorx.w #23130, 0x00000 ;0x05a5a, PC rel. 0x0028a
+0+028c <[^>]*> 40 18 90 e2 00 00 00 00 xorx.w &0x00000,0x00000 ; PC rel. 0x00292
+0+0294 <[^>]*> 40 18 a0 e8 00 00 xorx.w @r8, 0x00000 ; PC rel. 0x00298
+0+029a <[^>]*> 40 18 80 e8 00 00 xorx.w r8, 0x00000 ; PC rel. 0x0029e
+0+02a0 <[^>]*> 40 18 d0 e6 02 00 00 00 xorx.b 2\(r6\), 0x00000 ; PC rel. 0x002a6
+0+02a8 <[^>]*> 40 18 f0 e8 00 00 xorx.b @r8\+, 0x00000 ; PC rel. 0x002ac
+0+02ae <[^>]*> 00 18 d2 e0 00 00 00 00 xorx.a 0x00000,&0x00000;PC rel. 0x002b2
+0+02b6 <[^>]*> 40 18 26 e5 xorx.w @r5, r6 ;
+0+02ba <[^>]*> 04 18 ff e0 39 30 78 56 xorx.a #12345, 284280\(r15\);0x03039, 0x45678
+0+02c2 <[^>]*> a7 01 45 23 adda #74565, r7 ;0x12345
+0+02c6 <[^>]*> ee 06 adda r6, r14 ;
+0+02c8 <[^>]*> 80 00 00 00 mova #0, r0 ;
+0+02cc <[^>]*> 80 01 44 10 mova #69700, r0 ;0x11044
+0+02d0 <[^>]*> c0 05 mova r5, r0 ;
+0+02d2 <[^>]*> 20 00 00 00 bra &0 ;
+0+02d6 <[^>]*> 00 05 bra @r5 ;
+0+02d8 <[^>]*> 10 05 bra @r5\+ ;
+0+02da <[^>]*> 30 05 76 98 bra -26506\(r5\) ;0xffff9876
+0+02de <[^>]*> 45 13 calla r5 ;
+0+02e0 <[^>]*> 56 13 00 00 calla 0\(r6\) ;0x00000
+0+02e4 <[^>]*> 67 13 calla @r7 ;
+0+02e6 <[^>]*> 78 13 calla @r8\+ ;
+0+02e8 <[^>]*> 80 13 00 00 calla &0 ;0x00000
+0+02ec <[^>]*> 90 13 00 00 calla 0\(PC\) ;PC rel. 0x002ee
+0+02f0 <[^>]*> b0 13 00 00 calla #0 ;0x00000
+0+02f4 <[^>]*> 40 18 06 43 clrx.w r6 ;
+0+02f8 <[^>]*> d2 01 cmpa r1, r2 ;
+0+02fa <[^>]*> 93 0f cb ed cmpa #1043915,r3 ;0xfedcb
+0+02fe <[^>]*> 40 18 25 83 decdx.w r5 ;
+0+0302 <[^>]*> 40 18 25 53 incdx.w r5 ;
+0+0306 <[^>]*> c8 09 mova r9, r8 ;
+0+0308 <[^>]*> 8c 01 45 23 mova #74565, r12 ;0x12345
+0+030c <[^>]*> 38 09 00 01 mova 256\(r9\),r8 ;0x00100
+0+0310 <[^>]*> 2c 00 00 00 mova &0, r12 ;
+0+0314 <[^>]*> 08 09 mova @r9, r8 ;
+0+0316 <[^>]*> 18 09 mova @r9\+, r8 ;
+0+0318 <[^>]*> 79 08 00 01 mova r8, 256\(r9\) ; 0x00100
+0+031c <[^>]*> 60 0d 00 00 mova r13, &0 ;
+0+0320 <[^>]*> 10 01 reta ;
+0+0322 <[^>]*> 00 13 reti
+0+0324 <[^>]*> f6 05 suba r5, r6 ;
+0+0326 <[^>]*> b6 0f ff ff suba #1048575,r6 ;0xfffff
+0+032a <[^>]*> 40 18 80 93 00 00 cmpx.w #0, 0x00000 ;r3 As==00, PC rel. 0x0032e
+0+0330 <[^>]*> 05 17 popm #1, r5 ;16-bit words
+0+0332 <[^>]*> 2d 16 popm.a #3, r15 ;20-bit words
+0+0334 <[^>]*> 75 17 popm #8, r12 ;16-bit words
+0+0336 <[^>]*> 40 18 3a 41 popx.w r10 ;
+0+033a <[^>]*> 00 18 7a 41 popx.a r10 ;
+0+033e <[^>]*> 40 18 7a 41 popx.b r10 ;
+0+0342 <[^>]*> 40 18 3a 41 popx.w r10 ;
+0+0346 <[^>]*> 09 15 pushm #1, r9 ;16-bit words
+0+0348 <[^>]*> 19 14 pushm.a #2, r9 ;20-bit words
+0+034a <[^>]*> 29 15 pushm #3, r9 ;16-bit words
+0+034c <[^>]*> 40 18 08 12 pushx.w r8 ;
+0+0350 <[^>]*> 00 18 48 12 pushx.a r8 ;
+0+0354 <[^>]*> 40 18 52 12 00 00 pushx.b &0x0000 ;
+0+035a <[^>]*> 40 18 08 12 pushx.w r8 ;
+0+035e <[^>]*> 5f 02 rlam #1, r15 ;
+0+0360 <[^>]*> 4f 06 rlam.a #2, r15 ;
+0+0362 <[^>]*> 5f 0a rlam #3, r15 ;
+0+0364 <[^>]*> 40 18 06 56 rlax.w r6 ;
+0+0368 <[^>]*> 00 18 46 56 rlax.a r6 ;
+0+036c <[^>]*> 40 18 06 56 rlax.w r6 ;
+0+0370 <[^>]*> 40 18 06 66 rlcx.w r6 ;
+0+0374 <[^>]*> 00 18 46 66 rlcx.a r6 ;
+0+0378 <[^>]*> 40 18 06 66 rlcx.w r6 ;
+0+037c <[^>]*> 56 01 rram #1, r6 ;
+0+037e <[^>]*> 46 0d rram.a #4, r6 ;
+0+0380 <[^>]*> 56 05 rram #2, r6 ;
+0+0382 <[^>]*> 40 18 0b 11 rrax.w r11 ;
+0+0386 <[^>]*> 00 18 4b 11 rrax.a r11 ;
+0+038a <[^>]*> 40 18 0b 11 rrax.w r11 ;
+0+038e <[^>]*> 55 0c rrcm #4, r5 ;
+0+0390 <[^>]*> 45 00 rrcm.a #1, r5 ;
+0+0392 <[^>]*> 55 08 rrcm #3, r5 ;
+0+0394 <[^>]*> 40 18 0d 10 rrcx.w r13 ;
+0+0398 <[^>]*> 00 18 4d 10 rrcx.a r13 ;
+0+039c <[^>]*> 40 18 0d 10 rrcx.w r13 ;
+0+03a0 <[^>]*> 54 0b rrum #3, r4 ;
+0+03a2 <[^>]*> 44 07 rrum.a #2, r4 ;
+0+03a4 <[^>]*> 54 03 rrum #1, r4 ;
+0+03a6 <[^>]*> 40 19 04 10 rrux.w r4 ;
+0+03aa <[^>]*> 00 19 47 10 rrux.a r7 ;
+0+03ae <[^>]*> 40 19 45 10 rrux.b r5 ;
+0+03b2 <[^>]*> 40 19 06 10 rrux.w r6 ;
+0+03b6 <[^>]*> 40 18 81 10 swpbx.w r1 ;
+0+03ba <[^>]*> 00 18 90 10 00 00 swpbx.a 0x0000 ;PC rel. 0x03be
+0+03c0 <[^>]*> 40 18 8c 10 swpbx.w r12 ;
+0+03c4 <[^>]*> 40 18 82 11 sxtx.w r2 ;
+0+03c8 <[^>]*> 00 18 92 11 00 00 sxtx.a &0x0000 ;
+0+03ce <[^>]*> 40 18 82 11 sxtx.w r2 ;
+0+03d2 <[^>]*> 04 18 45 11 rpt #5 \{ rrax.a r5 ;
+0+03d6 <[^>]*> 85 18 45 11 rpt r5 \{ rrax.a r5 ;
+0+03da <[^>]*> e2 01 adda r1, r2 ;
+0+03dc <[^>]*> c0 01 mova r1, r0 ;
+0+03de <[^>]*> 41 13 calla r1 ;
+0+03e0 <[^>]*> 40 18 01 43 clrx.w r1 ;
+0+03e4 <[^>]*> d2 01 cmpa r1, r2 ;
+0+03e6 <[^>]*> 40 18 21 83 decdx.w r1 ;
+0+03ea <[^>]*> 40 18 21 53 incdx.w r1 ;
+0+03ee <[^>]*> c2 01 mova r1, r2 ;
+0+03f0 <[^>]*> 10 01 reta ;
+0+03f2 <[^>]*> f2 01 suba r1, r2 ;
+0+03f4 <[^>]*> 40 18 80 93 00 00 cmpx.w #0, 0x00000 ;r3 As==00, PC rel. 0x003f8
+0+03fa <[^>]*> c1 19 01 10 rpt r1 \{ rrux.w r1 ;
+0+03fe <[^>]*> 41 18 02 10 rpt #2 \{ rrcx.w r2 ;
+0+0402 <[^>]*> 42 18 47 11 rpt #3 \{ rrax.b r7 ;
+0+0406 <[^>]*> 84 18 44 11 rpt r4 \{ rrax.a r4 ;
+0+040a <[^>]*> 44 18 45 55 rpt #5 \{ rlax.b r5 ;
+0+040e <[^>]*> 05 18 46 66 rpt #6 \{ rlcx.a r6 ;