I am using a select-case of this form:
TOOLS VERSION: 14.2.1
XS2-L1 chips.
Code: Select all
while(1){
select{
case server_interface_if[int i].func():
// processing
break;
}
}
Code: Select all
r0 0x8 8
r1 0xf002a80 251669120
r2 0xfe 254
r3 0x84 132
r4 0x1f3b0 127920
r5 0x0 0
r6 0x80061802 -2147084286
r7 0x8 8
r8 0x1d470 119920
r9 0x0 0
r10 0x1ff08 130824
r11 0x5 5
cp 0x15850 88144
dp 0x15f24 89892
sp 0x1d3f0 119792
lr 0x10084 65668 _InitChildThread + 0
pc 0x1201a 73754 _Smuart_master_0 + 406
sr 0x10 16
spc 0x1201a 73754 _Smuart_master_0 + 406
ssr 0x0 0
et 0x5 5
ed 0xf002a80 251669120
sed 0x10005 65541
kep 0x10080 65664
ksp 0x12d78 77176
I did a dissassembly inside xgdb.
Code: Select all
0x00011e84 <muart_master+0>: entsp (lu6) 0x680
0x00011e88 <muart_master+4>: stw (lru6) r4, sp[0x67f]
0x00011e8c <muart_master+8>: stw (lru6) r5, sp[0x67e]
0x00011e90 <muart_master+12>: stw (lru6) r6, sp[0x67d]
0x00011e94 <muart_master+16>: stw (lru6) r7, sp[0x67c]
0x00011e98 <muart_master+20>: stw (lru6) r8, sp[0x67b]
0x00011e9c <muart_master+24>: stw (lru6) r9, sp[0x67a]
0x00011ea0 <muart_master+28>: stw (lru6) r10, sp[0x679]
0x00011ea4 <muart_master+32>: add (2rus) r4, r2, 0x0
0x00011ea6 <muart_master+34>: add (2rus) r10, r1, 0x0
0x00011ea8 <muart_master+36>: stw (ru6) r10, sp[0x6]
0x00011eaa <muart_master+38>: add (2rus) r6, r0, 0x0
0x00011eac <muart_master+40>: ldw (2rus) r0, r10[0x0]
0x00011eae <muart_master+42>: add (2rus) r1, r6, 0x0
0x00011eb0 <muart_master+44>: bl (lu10) -0x134
0x00011eb4 <muart_master+48>: ldaw (ru6) r0, sp[0x38]
0x00011eb6 <muart_master+50>: ldc (ru6) r5, 0x0
0x00011eb8 <muart_master+52>: ldc (lru6) r2, 0x1900
0x00011ebc <muart_master+56>: add (2rus) r1, r5, 0x0
0x00011ebe <muart_master+58>: bl (lu10) 0x75d
0x00011ec2 <muart_master+62>: ldaw (ru6) r0, sp[0x30]
0x00011ec4 <muart_master+64>: ldc (ru6) r9, 0x20
0x00011ec6 <muart_master+66>: add (2rus) r1, r5, 0x0
0x00011ec8 <muart_master+68>: add (2rus) r2, r9, 0x0
0x00011eca <muart_master+70>: bl (lu10) 0x757
0x00011ece <muart_master+74>: ldaw (ru6) r0, sp[0x28]
0x00011ed0 <muart_master+76>: add (2rus) r1, r5, 0x0
0x00011ed2 <muart_master+78>: add (2rus) r2, r9, 0x0
0x00011ed4 <muart_master+80>: bl (lu10) 0x752
0x00011ed8 <muart_master+84>: ldaw (ru6) r8, sp[0x20]
0x00011eda <muart_master+86>: add (2rus) r0, r8, 0x0
0x00011edc <muart_master+88>: add (2rus) r1, r5, 0x0
0x00011ede <muart_master+90>: add (2rus) r2, r9, 0x0
0x00011ee0 <muart_master+92>: bl (lu10) 0x74c
0x00011ee4 <muart_master+96>: ldaw (ru6) r0, sp[0x18]
0x00011ee6 <muart_master+98>: add (2rus) r1, r5, 0x0
0x00011ee8 <muart_master+100>: add (2rus) r2, r9, 0x0
0x00011eea <muart_master+102>: bl (lu10) 0x747
0x00011eee <muart_master+106>: ldaw (ru6) r0, sp[0x10]
0x00011ef0 <muart_master+108>: add (2rus) r1, r5, 0x0
0x00011ef2 <muart_master+110>: add (2rus) r2, r9, 0x0
0x00011ef4 <muart_master+112>: bl (lu10) 0x742
0x00011ef8 <muart_master+116>: ldaw (ru6) r0, sp[0x8]
0x00011efa <muart_master+118>: add (2rus) r1, r5, 0x0
0x00011efc <muart_master+120>: add (2rus) r2, r9, 0x0
0x00011efe <muart_master+122>: bl (lu10) 0x73d
0x00011f02 <muart_master+126>: stw (ru6) r5, sp[0x20]
0x00011f04 <muart_master+128>: ldc (lru6) r0, 0xc8
0x00011f08 <muart_master+132>: stw (ru6) r0, sp[0x21]
0x00011f0a <muart_master+134>: ldc (lru6) r0, 0x190
0x00011f0e <muart_master+138>: stw (ru6) r0, sp[0x22]
0x00011f10 <muart_master+140>: ldc (lru6) r0, 0x258
0x00011f14 <muart_master+144>: stw (ru6) r0, sp[0x23]
0x00011f16 <muart_master+146>: ldc (lru6) r0, 0x320
0x00011f1a <muart_master+150>: stw (ru6) r0, sp[0x24]
0x00011f1c <muart_master+152>: ldc (lru6) r0, 0x3e8
0x00011f20 <muart_master+156>: stw (ru6) r0, sp[0x25]
0x00011f22 <muart_master+158>: ldc (lru6) r0, 0x4b0
0x00011f26 <muart_master+162>: stw (ru6) r0, sp[0x26]
0x00011f28 <muart_master+164>: ldc (lru6) r0, 0x578
0x00011f2c <muart_master+168>: stw (ru6) r0, sp[0x27]
0x00011f2e <muart_master+170>: ldc (ru6) r7, 0x8
0x00011f30 <muart_master+172>: bu (u6) 0x7
0x00011f32 <muart_master+174>: add (2rus) r0, r5, 0x0
0x00011f34 <muart_master+176>: bl (lu10) 0x153c
0x00011f38 <muart_master+180>: mkmsk (rus) r0, 0x1
0x00011f3a <muart_master+182>: add (2rus) r1, r9, 0x0
0x00011f3c <muart_master+184>: bl (lu10) 0x1538
0x00011f40 <muart_master+188>: clre (0r)
0x00011f42 <muart_master+190>: ldap (u10) r11, 0x17
0x00011f44 <muart_master+192>: setv (1r) res[r6], r11
0x00011f46 <muart_master+194>: add (2rus) r0, r5, 0x0
0x00011f48 <muart_master+196>: ldw (3r) r1, r4[r0]
0x00011f4a <muart_master+198>: ldw (2rus) r1, r1[0x0]
0x00011f4c <muart_master+200>: ldap (u10) r11, 0x63
0x00011f4e <muart_master+202>: setv (1r) res[r1], r11
0x00011f50 <muart_master+204>: add (2rus) r11, r0, 0x0
0x00011f52 <muart_master+206>: setev (1r) res[r1], r11
0x00011f54 <muart_master+208>: add (2rus) r0, r0, 0x1
0x00011f56 <muart_master+210>: eq (2rus) r1, r0, 0x8
0x00011f58 <muart_master+212>: bf (ru6) r1, -0x9
0x00011f5a <muart_master+214>: eeu (1r) res[r6]
0x00011f5c <muart_master+216>: add (2rus) r0, r5, 0x0
0x00011f5e <muart_master+218>: setsr (u6) 0x1
0x00011f60 <muart_master+220>: clrsr (u6) 0x1
0x00011f62 <muart_master+222>: bu (u6) 0x4
0x00011f64 <muart_master+224>: ldw (3r) r1, r4[r0]
0x00011f66 <muart_master+226>: ldw (2rus) r1, r1[0x0]
0x00011f68 <muart_master+228>: eeu (1r) res[r1]
0x00011f6a <muart_master+230>: add (2rus) r0, r0, 0x1
0x00011f6c <muart_master+232>: lsu (3r) r1, r0, r7
0x00011f6e <muart_master+234>: bt (ru6) r1, -0x6
0x00011f70 <muart_master+236>: waiteu (0r) *
0x00011f72 <muart_master+238>: int (2r) r9, res[r6] *
0x00011f74 <muart_master+240>: ldw (2rus) r0, r10[0x0]
0x00011f76 <muart_master+242>: add (2rus) r1, r9, 0x0
0x00011f78 <muart_master+244>: ldaw (lru6) r2, sp[0x678]
0x00011f7c <muart_master+248>: bl (lu10) -0x1b0
0x00011f80 <muart_master+252>: bt (ru6) r0, -0x21
0x00011f82 <muart_master+254>: lsu (3r) r0, r9, r7
0x00011f84 <muart_master+256>: ecallf (1r) r0
0x00011f86 <muart_master+258>: ldaw (ru6) r0, sp[0x30]
0x00011f88 <muart_master+260>: ldw (3r) r0, r0[r9]
0x00011f8a <muart_master+262>: ldw (3r) r1, r8[r9]
0x00011f8c <muart_master+264>: add (3r) r2, r1, r0
0x00011f8e <muart_master+266>: ldc (lru6) r1, 0x640
0x00011f92 <muart_master+270>: lsu (3r) r1, r2, r1
0x00011f94 <muart_master+272>: ldaw (ru6) r11, sp[0x28]
0x00011f96 <muart_master+274>: ecallf (1r) r1
0x00011f98 <muart_master+276>: ldaw (lru6) r1, sp[0x678]
0x00011f9c <muart_master+280>: ld8u (3r) r1, r1[r5]
0x00011f9e <muart_master+282>: ldaw (ru6) r3, sp[0x38]
0x00011fa0 <muart_master+284>: stw (l3r) r1, r3[r2]
0x00011fa4 <muart_master+288>: add (2rus) r0, r0, 0x1
0x00011fa6 <muart_master+290>: ldw (lru6) r2, cp[0x17d]
0x00011faa <muart_master+294>: lmul (l6r) r2, r3, r0, r2, r5, r5
0x00011fae <muart_master+298>: shr (2rus) r2, r2, 0x6
0x00011fb0 <muart_master+300>: ldc (lru6) r3, 0xc8
0x00011fb4 <muart_master+304>: mul (l3r) r2, r2, r3
0x00011fb8 <muart_master+308>: sub (3r) r0, r0, r2
0x00011fba <muart_master+310>: ldaw (ru6) r2, sp[0x30]
0x00011fbc <muart_master+312>: stw (l3r) r0, r2[r9]
0x00011fc0 <muart_master+316>: ldw (3r) r2, r11[r9]
0x00011fc2 <muart_master+318>: eq (3r) r2, r2, r0
0x00011fc4 <muart_master+320>: bf (ru6) r2, 0x13
0x00011fc6 <muart_master+322>: add (2rus) r0, r0, 0x1
0x00011fc8 <muart_master+324>: ldw (lru6) r2, cp[0x17d]
0x00011fcc <muart_master+328>: lmul (l6r) r2, r3, r0, r2, r5, r5
0x00011fd0 <muart_master+332>: shr (2rus) r2, r2, 0x6
0x00011fd2 <muart_master+334>: ldc (lru6) r3, 0xc8
0x00011fd6 <muart_master+338>: mul (l3r) r2, r2, r3
0x00011fda <muart_master+342>: sub (3r) r0, r0, r2
0x00011fdc <muart_master+344>: stw (l3r) r0, r11[r9]
0x00011fe0 <muart_master+348>: ldaw (ru6) r0, sp[0x18]
0x00011fe2 <muart_master+350>: add (2rus) r2, r0, 0x0
0x00011fe4 <muart_master+352>: ldw (3r) r0, r2[r9]
0x00011fe6 <muart_master+354>: add (2rus) r0, r0, 0x1
0x00011fe8 <muart_master+356>: stw (l3r) r0, r2[r9]
0x00011fec <muart_master+360>: ldaw (ru6) r0, sp[0x8]
0x00011fee <muart_master+362>: add (2rus) r2, r0, 0x0
0x00011ff0 <muart_master+364>: ldw (3r) r0, r2[r9]
0x00011ff2 <muart_master+366>: add (2rus) r0, r0, 0x1
0x00011ff4 <muart_master+368>: stw (l3r) r0, r2[r9]
0x00011ff8 <muart_master+372>: ldw (3r) r0, r4[r9]
0x00011ffa <muart_master+374>: ldw (2rus) r2, r0[0x4]
0x00011ffc <muart_master+376>: bf (lru6) r2, -0x67
0x00012000 <muart_master+380>: ldw (2rus) r2, r0[0x2]
0x00012002 <muart_master+382>: ldw (2rus) r3, r0[0x3]
0x00012004 <muart_master+384>: getd (l2r) r11, res[r2]
0x00012008 <muart_master+388>: setd (r2r) res[r2], r3
0x0001200a <muart_master+390>: outct (rus) res[r2], 0x1 *
0x0001200c <muart_master+392>: setd (r2r) res[r2], r11
0x0001200e <muart_master+394>: stw (2rus) r5, r0[0x4]
0x00012010 <muart_master+396>: bu (lu6) -0x71
0x00012014 <muart_master+400>: get (0r) r11, ed
0x00012016 <muart_master+402>: zext (rus) r11, 0x10
0x00012018 <muart_master+404>: ldw (3r) r1, r4[r11]
0x0001201a <muart_master+406>: ldw (2rus) r0, r1[0x0]
0x0001201c <muart_master+408>: in (2r) r2, res[r0] *
0x0001201e <muart_master+410>: ldc (lru6) r3, 0xfe
0x00012022 <muart_master+414>: add (3r) r3, r2, r3
0x00012024 <muart_master+416>: zext (rus) r3, 0x8
0x00012026 <muart_master+418>: sub (3r) r2, r2, r3
0x00012028 <muart_master+420>: setd (r2r) res[r0], r2
0x0001202a <muart_master+422>: bf (ru6) r3, 0x6
0x0001202c <muart_master+424>: lsu (3r) r1, r11, r7
0x0001202e <muart_master+426>: ecallf (1r) r1
0x00012030 <muart_master+428>: ldaw (ru6) r1, sp[0x8]
0x00012032 <muart_master+430>: ldw (3r) r1, r1[r11]
0x00012034 <muart_master+432>: out (r2r) res[r0], r5 *
0x00012036 <muart_master+434>: bu (u6) 0x3d
0x00012038 <muart_master+436>: outct (rus) res[r0], 0x1 *
0x0001203a <muart_master+438>: in (2r) r2, res[r0] *
0x0001203c <muart_master+440>: ldw (2rus) r3, r1[0x4]
0x0001203e <muart_master+442>: eq (3r) r2, r3, r2
0x00012040 <muart_master+444>: bt (ru6) r2, 0x7
0x00012042 <muart_master+446>: ldw (2rus) r2, r1[0x2]
0x00012044 <muart_master+448>: ldw (2rus) r3, r1[0x3]
0x00012046 <muart_master+450>: getd (l2r) r9, res[r2]
0x0001204a <muart_master+454>: setd (r2r) res[r2], r3
0x0001204c <muart_master+456>: outct (rus) res[r2], 0x1 *
0x0001204e <muart_master+458>: setd (r2r) res[r2], r9
0x00012050 <muart_master+460>: mkmsk (rus) r2, 0x1
0x00012052 <muart_master+462>: stw (2rus) r2, r1[0x4]
0x00012054 <muart_master+464>: lsu (3r) r1, r11, r7
0x00012056 <muart_master+466>: ecallf (1r) r1
0x00012058 <muart_master+468>: ldaw (ru6) r1, sp[0x8]
0x0001205a <muart_master+470>: ldw (3r) r10, r1[r11]
0x0001205c <muart_master+472>: lss (3r) r1, r5, r10
0x0001205e <muart_master+474>: bf (ru6) r1, 0x1e
0x00012060 <muart_master+476>: ldaw (ru6) r2, sp[0x28]
0x00012062 <muart_master+478>: ldw (3r) r3, r2[r11]
0x00012064 <muart_master+480>: ldw (3r) r1, r8[r11]
0x00012066 <muart_master+482>: add (3r) r1, r1, r3
0x00012068 <muart_master+484>: ldc (lru6) r9, 0x640
0x0001206c <muart_master+488>: lsu (3r) r9, r1, r9
0x0001206e <muart_master+490>: ecallf (1r) r9
0x00012070 <muart_master+492>: ldaw (ru6) r9, sp[0x38]
0x00012072 <muart_master+494>: ldw (3r) r1, r9[r1]
0x00012074 <muart_master+496>: stw (ru6) r1, sp[0x7]
0x00012076 <muart_master+498>: sub (2rus) r1, r10, 0x1
0x00012078 <muart_master+500>: ldaw (ru6) r9, sp[0x8]
0x0001207a <muart_master+502>: stw (l3r) r1, r9[r11]
0x0001207e <muart_master+506>: add (2rus) r3, r3, 0x1
0x00012080 <muart_master+508>: ldw (lru6) r9, cp[0x17d]
0x00012084 <muart_master+512>: lmul (l6r) r9, r10, r3, r9, r5, r5
0x00012088 <muart_master+516>: shr (2rus) r9, r9, 0x6
0x0001208a <muart_master+518>: ldc (lru6) r10, 0xc8
0x0001208e <muart_master+522>: mul (l3r) r9, r9, r10
0x00012092 <muart_master+526>: sub (3r) r3, r3, r9
0x00012094 <muart_master+528>: stw (l3r) r3, r2[r11]
0x00012098 <muart_master+532>: ldw (ru6) r2, sp[0x7]
0x0001209a <muart_master+534>: bu (u6) 0x8
0x0001209c <muart_master+536>: ldaw (ru6) r1, sp[0x10]
0x0001209e <muart_master+538>: add (2rus) r2, r1, 0x0
0x000120a0 <muart_master+540>: ldw (3r) r1, r2[r11]
0x000120a2 <muart_master+542>: add (2rus) r1, r1, 0x1
0x000120a4 <muart_master+544>: stw (l3r) r1, r2[r11]
0x000120a8 <muart_master+548>: mkmsk (rus) r1, 0x20
0x000120aa <muart_master+550>: add (2rus) r2, r1, 0x0
0x000120ac <muart_master+552>: ldw (ru6) r10, sp[0x6]
0x000120ae <muart_master+554>: out (r2r) res[r0], r5 *
0x000120b0 <muart_master+556>: out (r2r) res[r0], r2 *
0x000120b2 <muart_master+558>: out (r2r) res[r0], r1 *
0x000120b4 <muart_master+560>: outct (rus) res[r0], 0x1 *
0x000120b6 <muart_master+562>: bu (lu6) -0xbd
0x000120ba <muart_master+566>: stw (2rus) r0, r0[0x0]
Code: Select all
0x0001201a <muart_master+406>: ldw (2rus) r0, r1[0x0]
Code: Select all
r1 0xf002a80 251669120
Code: Select all
ed 0xf002a80 251669120
Thanks again,
Prasanna.