xcore.txt 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706
  1. # RUN: llvm-mc --disassemble %s -triple=xcore-xmos-elf | FileCheck %s
  2. # 0r instructions
  3. # CHECK: clre
  4. 0xed 0x07
  5. # CHECK: get r11, id
  6. 0xee 0x17
  7. # CHECK: get r11, ed
  8. 0xfe 0x0f
  9. # CHECK: get r11, et
  10. 0xff 0x0f
  11. # CHECK: ssync
  12. 0xee 0x07
  13. # CHECK: waiteu
  14. 0xec 0x07
  15. # CHECK: dcall
  16. 0xfc 0x07
  17. # CHECK: dentsp
  18. 0xec 0x17
  19. # CHECK: drestsp
  20. 0xed 0x17
  21. # CHECK: dret
  22. 0xfe 0x07
  23. # CHECK: freet
  24. 0xef 0x07
  25. # CHECK: get r11, kep
  26. 0xef 0x17
  27. # CHECK: get r11, ksp
  28. 0xfc 0x17
  29. # CHECK: kret
  30. 0xfd 0x07
  31. # CHECK: ldw et, sp[4]
  32. 0xfe 0x17
  33. # CHECK: ldw sed, sp[3]
  34. 0xfd 0x17
  35. # CHECK: ldw spc, sp[1]
  36. 0xec 0x0f
  37. # CHECK: ldw ssr, sp[2]
  38. 0xee 0x0f
  39. # CHECK: set kep, r11
  40. 0xff 0x07
  41. # CHECK: stw et, sp[4]
  42. 0xfd 0x0f
  43. # CHECK: stw sed, sp[3]
  44. 0xfc 0x0f
  45. # CHECK: stw spc, sp[1]
  46. 0xed 0x0f
  47. # CHECK: stw ssr, sp[2]
  48. 0xef 0x0f
  49. # 1r instructions
  50. # CHECK: msync res[r0]
  51. 0xf0 0x1f
  52. # CHECK: mjoin res[r1]
  53. 0xf1 0x17
  54. # CHECK: bau r2
  55. 0xf2 0x27
  56. # CHECK: set sp, r3
  57. 0xf3 0x2f
  58. # CHECK: ecallt r4
  59. 0xf4 0x4f
  60. # CHECK: ecallf r5
  61. 0xe5 0x4f
  62. # CHECK: bla r6
  63. 0xe6 0x27
  64. # CHECK: bru r8
  65. 0xe8 0x2f
  66. # CHECK: syncr res[r7]
  67. 0xf7 0x87
  68. # CHECK: freer res[r8]
  69. 0xe8 0x17
  70. # CHECK: setv res[r9], r11
  71. 0xf9 0x47
  72. # CHECK: setev res[r10], r11
  73. 0xfa 0x3f
  74. # CHECK: eeu res[r11]
  75. 0xfb 0x07
  76. # CHECK: set dp, r5
  77. 0xe5 0x37
  78. # CHECK: set cp, r0
  79. 0xf0 0x37
  80. # CHECK: dgetreg r11
  81. 0xeb 0x3f
  82. # CHECK: edu res[r8]
  83. 0xe8 0x07
  84. # CHECK: kcall r2
  85. 0xe2 0x47
  86. # CHECK: waitef r10
  87. 0xfa 0x0f
  88. # CHECK: waitet r7
  89. 0xe7 0x0f
  90. # CHECK: start t[r4]
  91. 0xe4 0x1f
  92. # CHECK: clrpt res[r9]
  93. 0xe9 0x87
  94. # 2r instructions
  95. # CHECK: not r1, r8
  96. 0x24 0x8f
  97. # CHECK: neg r7, r6
  98. 0xce 0x97
  99. # CHECK: andnot r10, r11
  100. 0xab 0x2f
  101. # CHECK: mkmsk r11, r0
  102. 0x4c 0xa7
  103. # CHECK: getts r8, res[r1]
  104. 0x41 0x3f
  105. # CHECK: setpt res[r2], r3
  106. 0xde 0x3e
  107. # CHECK: outct res[r1], r2
  108. 0xc6 0x4e
  109. # CHECK: outt res[r5], r4
  110. 0xd1 0x0f
  111. # CHECK: out res[r9], r10
  112. 0xa9 0xaf
  113. # CHECK: outshr res[r0], r2
  114. 0xd8 0xae
  115. # CHECK: inct r7, res[r4]
  116. 0xdc 0x87
  117. # CHECK: int r8, res[r3]
  118. 0x53 0x8f
  119. # CHECK: in r10, res[r0]
  120. 0x48 0xb7
  121. # CHECK: inshr r4, res[r2]
  122. 0x12 0xb7
  123. # CHECK: chkct res[r6], r0
  124. 0x08 0xcf
  125. # CHECK: testct r8, res[r3]
  126. 0x53 0xbf
  127. # CHECK: testwct r2, res[r9]
  128. 0x39 0xc7
  129. # CHECK: setd res[r3], r4
  130. 0x13 0x17
  131. # CHECK: getst r7, res[r1]
  132. 0x1d 0x07
  133. # CHECK: init t[r1]:sp, r2
  134. 0xc9 0x16
  135. # CHECK: init t[r10]:pc, r1
  136. 0x26 0x07
  137. # CHECK: init t[r2]:cp, r10
  138. 0x4a 0x1f
  139. # CHECK: init t[r2]:dp, r3
  140. 0xce 0x0e
  141. # CHECK: setpsc res[r8], r2
  142. 0x28 0xc7
  143. # CHECK: zext r3, r8
  144. 0x2c 0x47
  145. # CHECK: sext r9, r1
  146. 0x45 0x37
  147. # CHECK: tsetmr r7, r3
  148. 0x1f 0x1f
  149. # CHECK: eef r1, res[r6]
  150. 0x96 0x2f
  151. # CHECK: eet r11, res[r0]
  152. 0x5c 0x27
  153. # rus instructions
  154. # CHECK: chkct res[r1], 8
  155. 0x34 0xcf
  156. # CHECK: getr r11, 2
  157. 0x4e 0x87
  158. # CHECK: mkmsk r4, 24
  159. 0x72 0xa7
  160. # CHECK: outct res[r3], 0
  161. 0xdc 0x4e
  162. # CHECK: sext r8, 16
  163. 0xb1 0x37
  164. # CHECK: zext r2, 32
  165. 0xd8 0x46
  166. # CHECK: peek r0, res[r5]
  167. 0x81 0xbf
  168. # CHECK: endin r10, res[r1]
  169. 0x59 0x97
  170. # l2r instructions
  171. # CHECK: bitrev r1, r10
  172. 0x26 0xff 0xec 0x07
  173. # CHECK: byterev r4, r1
  174. 0x11 0xff 0xec 0x07
  175. # CHECK: clz r11, r10
  176. 0xae 0xff 0xec 0x0f
  177. # CHECK: get r3, ps[r6]
  178. 0x9e 0xff 0xec 0x17
  179. # CHECK: setc res[r5], r9
  180. 0x75 0xff 0xec 0x2f
  181. # CHECK: init t[r2]:lr, r1
  182. 0xc6 0xfe 0xec 0x17
  183. # CHECK: setclk res[r2], r1
  184. 0xd6 0xfe 0xec 0x0f
  185. # CHECK: set ps[r9], r10
  186. 0xa9 0xff 0xec 0x1f
  187. # CHECK: setrdy res[r3], r1
  188. 0xc7 0xfe 0xec 0x2f
  189. # CHECK: settw res[r7], r2
  190. 0x9b 0xff 0xec 0x27
  191. # CHECK: getd r8, res[r3]
  192. 0x53 0xff 0xec 0x1f
  193. # CHECK: getn r10, res[r11]
  194. 0xbb 0xff 0xec 0x37
  195. # CHECK: testlcl r2, res[r0]
  196. 0xc8 0xfe 0xec 0x27
  197. # CHECK: setn res[r9], r7
  198. 0x6d 0xff 0xec 0x37
  199. # 3r instructions
  200. # CHECK: add r1, r2, r3
  201. 0x1b 0x10
  202. # CHECK: and r11, r10, r9
  203. 0xb9 0x3e
  204. # CHECK: eq r6, r1, r2
  205. 0x66 0x30
  206. # CHECK: ld16s r8, r3[r4]
  207. 0xcc 0x82
  208. # CHECK: ld8u r9, r1[r10]
  209. 0x16 0x8d
  210. # CHECK: ldw r9, r4[r5]
  211. 0x91 0x4b
  212. # CHECK: lss r7, r3, r0
  213. 0x7c 0xc0
  214. # CHECK: lsu r5, r8, r6
  215. 0x12 0xcc
  216. # CHECK: or r1, r3, r2
  217. 0x1e 0x40
  218. # CHECK: shl r8, r2, r4
  219. 0xc8 0x22
  220. # CHECK: shr r9, r7, r1
  221. 0x5d 0x29
  222. # CHECK: sub r4, r2, r5
  223. 0x89 0x1a
  224. # CHECK: set t[r0]:r1, r2
  225. 0x18 0xb8
  226. # 2rus instructions
  227. # CHECK: add r10, r2, 5
  228. 0xe9 0x92
  229. # CHECK: eq r2, r1, 0
  230. 0x24 0xb0
  231. # CHECK: ldw r5, r6[1]
  232. 0x19 0x09
  233. # CHECK: shl r6, r5, 24
  234. 0xa6 0xa5
  235. # CHECK: shr r3, r8, 5
  236. 0xf1 0xab
  237. # CHECK: stw r3, r2[0]
  238. 0x38 0x00
  239. # CHECK: sub r2, r4, 11
  240. 0x63 0x9d
  241. # l3r instructions
  242. # CHECK: ashr r5, r1, r11
  243. 0xd7 0xfc 0xec 0x17
  244. # CHECK: crc32 r5, r6, r1
  245. 0x19 0xf9 0xec 0xaf
  246. # CHECK: divu r9, r1, r3
  247. 0x97 0xf8 0xec 0x4f
  248. # CHECK: divs r6, r7, r2
  249. 0x2e 0xf9 0xec 0x47
  250. # CHECK: lda16 r11, r2[r1]
  251. 0xb9 0xf8 0xec 0x2f
  252. # CHECK: lda16 r9, r3[-r11]
  253. 0x1f 0xfd 0xec 0x37
  254. # CHECK: ldaw r9, r1[r2]
  255. 0x96 0xf8 0xec 0x1f
  256. # CHECK: ldaw r8, r7[-r11]
  257. 0xcf 0xfd 0xec 0x27
  258. # CHECK: mul r0, r4, r2
  259. 0xc2 0xf8 0xec 0x3f
  260. # CHECK: remu r1, r2, r3
  261. 0x1b 0xf8 0xec 0xcf
  262. # CHECK: rems r11, r10, r9
  263. 0xb9 0xfe 0xec 0xc7
  264. # CHECK: st16 r5, r3[r8]
  265. 0xdc 0xfc 0xec 0x87
  266. # CHECK: st8 r9, r1[r3]
  267. 0x97 0xf8 0xec 0x8f
  268. # CHECK: stw r7, r10[r1]
  269. 0xf9 0xf9 0xec 0x07
  270. # CHECK: xor r4, r3, r9
  271. 0xcd 0xfc 0xec 0x0f
  272. # l2rus instructions
  273. # CHECK: ashr r5, r1, 3
  274. 0x57 0xf8 0xec 0x97
  275. # CHECK: ldaw r11, r10[6]
  276. 0x7a 0xfc 0xec 0x9f
  277. # CHECK: ldaw r8, r2[-9]
  278. 0x09 0xfd 0xec 0xa7
  279. # CHECK: inpw r6, res[r1], 8
  280. 0xe4 0xfc 0xee 0x97
  281. # CHECK: outpw res[r3], r0, 2
  282. 0x0e 0xf8 0xed 0x97
  283. # ru6 / lru6 instructions
  284. # CHECK: bt r6, -5
  285. 0x85 0x75
  286. # CHECK: bt r10, -451
  287. 0x07 0xf0 0x83 0x76
  288. # CHECK: bt r8, 10
  289. 0x0a 0x72
  290. # CHECK: bt r1, 6451
  291. 0x64 0xf0 0x73 0x70
  292. # CHECK: bf r5, 8
  293. 0x48 0x79
  294. # CHECK: bf r6, 65
  295. 0x01 0xf0 0x81 0x79
  296. # CHECK: bf r1, 53
  297. 0x75 0x78
  298. # CHECK: bf r10, 101
  299. 0x01 0xf0 0xa5 0x7a
  300. # CHECK: ldaw r11, dp[63]
  301. 0xff 0x62
  302. # CHECK: ldaw r1, dp[456]
  303. 0x07 0xf0 0x48 0x60
  304. # CHECK: ldaw cp, dp[5]
  305. 0x05 0x63
  306. # CHECK: ldaw sp, dp[9929]
  307. 0x9b 0xf0 0x89 0x63
  308. # CHECK: ldaw r3, sp[2]
  309. 0xc2 0x64
  310. # CHECK: ldaw r8, sp[65535]
  311. 0xff 0xf3 0x3f 0x66
  312. # CHECK: ldaw sp, sp[41]
  313. 0xa9 0x67
  314. # CHECK: ldaw sp, sp[13121]
  315. 0xcd 0xf0 0x81 0x67
  316. # CHECK: ldc r3, 30
  317. 0xde 0x68
  318. # CHECK: ldc r11, 1000
  319. 0x0f 0xf0 0xe8 0x6a
  320. # CHECK: ldc sp, 0
  321. 0x80 0x6b
  322. # CHECK: ldc lr, 81
  323. 0x01 0xf0 0xd1 0x6b
  324. # CHECK: ldw r0, cp[4]
  325. 0x04 0x6c
  326. # CHECK: ldw r1, cp[32345]
  327. 0xf9 0xf1 0x59 0x6c
  328. # CHECK: ldw cp, cp[8]
  329. 0x08 0x6f
  330. # CHECK: ldw sp, cp[10222]
  331. 0x9f 0xf0 0xae 0x6f
  332. # CHECK: ldw r10, dp[16]
  333. 0x90 0x5a
  334. # CHECK: ldw r10, dp[76]
  335. 0x01 0xf0 0x8c 0x5a
  336. # CHECK: ldw lr, dp[8]
  337. 0xc8 0x5b
  338. # CHECK: ldw dp, dp[33221]
  339. 0x07 0xf2 0x45 0x5b
  340. # CHECK: ldw r8, sp[51]
  341. 0x33 0x5e
  342. # CHECK: ldw r8, sp[1225]
  343. 0x13 0xf0 0x09 0x5e
  344. # CHECK: ldw cp, sp[31]
  345. 0x1f 0x5f
  346. # CHECK: ldw sp, sp[1000]
  347. 0x0f 0xf0 0xa8 0x5f
  348. # CHECK: setc res[r5], 36
  349. 0x64 0xe9
  350. # CHECK: setc res[r2], 40312
  351. 0x75 0xf2 0xb8 0xe8
  352. # CHECK: stw r8, dp[14]
  353. 0x0e 0x52
  354. # CHECK: stw r9, dp[654]
  355. 0x0a 0xf0 0x4e 0x52
  356. # CHECK: stw lr, dp[23]
  357. 0xd7 0x53
  358. # CHECK: stw sp, dp[44442]
  359. 0xb6 0xf2 0x9a 0x53
  360. # CHECK: stw r1, sp[32]
  361. 0x60 0x54
  362. # CHECK: stw r0, sp[8761]
  363. 0x88 0xf0 0x39 0x54
  364. # CHECK: stw cp, sp[63]
  365. 0x3f 0x57
  366. # CHECK: stw lr, sp[4391]
  367. 0x44 0xf0 0xe7 0x57
  368. # u6 / lu6 instructions
  369. # CHECK: bu -20
  370. 0x14 0x77
  371. # CHECK: bu -1000
  372. 0x0f 0xf0 0x28 0x77
  373. # CHECK: bu 24
  374. 0x18 0x73
  375. # CHECK: bu 2231
  376. 0x22 0xf0 0x37 0x73
  377. # CHECK: extsp 9
  378. 0x89 0x77
  379. # CHECK: extsp 5721
  380. 0x59 0xf0 0x99 0x77
  381. # CHECK: clrsr 60
  382. 0x3c 0x7b
  383. # CHECK: clrsr 64391
  384. 0xee 0xf3 0x07 0x7b
  385. # CHECK: entsp 1
  386. 0x41 0x77
  387. # CHECK: entsp 70
  388. 0x01 0xf0 0x46 0x77
  389. # CHECK: ldaw r11, cp[5]
  390. 0x45 0x7f
  391. # CHECK: ldaw r11, cp[33000]
  392. 0x03 0xf2 0x68 0x7f
  393. # CHECK: retsp 40
  394. 0xe8 0x77
  395. # CHECK: retsp 52010
  396. 0x2c 0xf3 0xea 0x77
  397. # CHECK: setsr 42
  398. 0x6a 0x7b
  399. # CHECK: setsr 21863
  400. 0x55 0xf1 0x67 0x7b
  401. # CHECK: extdp 4
  402. 0x84 0x73
  403. # CHECK: extdp 554
  404. 0x08 0xf0 0xaa 0x73
  405. # CHECK: blat 9
  406. 0x49 0x73
  407. # CHECK: blat 61212
  408. 0xbc 0xf3 0x5c 0x73
  409. # CHECK: getsr r11, 54
  410. 0x36 0x7f
  411. # CHECK: getsr r11, 442
  412. 0x06 0xf0 0x3a 0x7f
  413. # CHECK: kcall 11
  414. 0xcb 0x73
  415. # CHECK: kcall 4001
  416. 0x3e 0xf0 0xe1 0x73
  417. # CHECK: kentsp 22
  418. 0x96 0x7b
  419. # CHECK: kentsp 8793
  420. 0x89 0xf0 0x99 0x7b
  421. # CHECK: krestsp 0
  422. 0xc0 0x7b
  423. # CHECK: krestsp 55312
  424. 0x60 0xf3 0xd0 0x7b
  425. # u10 / lu10 instructions
  426. # CHECK: ldap r11, 40
  427. 0x28 0xd8
  428. # CHECK: ldap r11, 53112
  429. 0x33 0xf0 0x78 0xdb
  430. # CHECK: ldap r11, -22
  431. 0x16 0xdc
  432. # CHECK: ldap r11, -9999
  433. 0x09 0xf0 0x0f 0xdf
  434. # CHECK: bl 8
  435. 0x08 0xd0
  436. # CHECK: bl 38631
  437. 0x25 0xf0 0xe7 0xd2
  438. # CHECK: bl -222
  439. 0xde 0xd4
  440. # CHECK: bl -55132
  441. 0x35 0xf0 0x5c 0xd7
  442. # CHECK: bla cp[500]
  443. 0xf4 0xe1
  444. # CHECK: bla cp[413742]
  445. 0x94 0xf1 0x2e 0xe0
  446. # CHECK: ldw r11, cp[132]
  447. 0x84 0xe4
  448. # CHECK: ldw r11, cp[102741]
  449. 0x64 0xf0 0x55 0xe5
  450. # l6r instructions
  451. # CHECK: lmul r11, r0, r2, r5, r8, r10
  452. 0xf9 0xfa 0x02 0x06
  453. # l5r instructions
  454. # CHECK: ladd r10, r2, r5, r1, r7
  455. 0xe5 0xf8 0xfb 0x06
  456. # CHECK: ldivu r5, r6, r3, r9, r8
  457. 0x54 0xfe 0x0b 0x07
  458. # CHECK: lsub r1, r8, r7, r11, r5
  459. 0xcf 0xfd 0x85 0x0f
  460. # l4r instructions
  461. # CHECK: crc8 r6, r3, r4, r11
  462. 0x73 0xfd 0xe6 0x07
  463. # CHECK: maccs r11, r8, r2, r4
  464. 0xf8 0xfa 0xe8 0x0f
  465. # CHECK: maccu r0, r2, r5, r8
  466. 0x44 0xfd 0xf2 0x07