event_groups.c.060i.targetclone 31 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228
  1. xEventGroupSetBits.part.0 (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToSet)
  2. {
  3. struct ListItem_t * pxListItem;
  4. struct ListItem_t * pxNext;
  5. const struct ListItem_t * pxListEnd;
  6. const struct List_t * pxList;
  7. EventBits_t uxBitsToClear;
  8. EventBits_t uxBitsWaitedFor;
  9. EventBits_t uxControlBits;
  10. struct EventGroup_t * pxEventBits;
  11. BaseType_t xMatchFound;
  12. uint32_t ulNewBASEPRI;
  13. uint32_t ulNewBASEPRI;
  14. long unsigned int _4;
  15. long unsigned int _6;
  16. long unsigned int _11;
  17. long unsigned int _12;
  18. long unsigned int _13;
  19. long unsigned int _14;
  20. long unsigned int _15;
  21. long unsigned int _16;
  22. long unsigned int _19;
  23. long unsigned int _20;
  24. long unsigned int _21;
  25. long unsigned int _23;
  26. long unsigned int _24;
  27. long unsigned int _25;
  28. <bb 12> [local count: 118111600]:
  29. <bb 2> [local count: 118111600]:
  30. # DEBUG BEGIN_STMT
  31. # DEBUG BEGIN_STMT
  32. # DEBUG D#1 => &MEM[(struct EventGroup_t *)xEventGroup_1(D)].xTasksWaitingForBits
  33. # DEBUG pxList => D#1
  34. # DEBUG BEGIN_STMT
  35. pxListEnd_2 = &MEM[(const struct List_t *)xEventGroup_1(D) + 4B].xListEnd;
  36. # DEBUG pxListEnd => pxListEnd_2
  37. # DEBUG BEGIN_STMT
  38. vTaskSuspendAll ();
  39. # DEBUG BEGIN_STMT
  40. # DEBUG BEGIN_STMT
  41. pxListItem_3 = MEM[(const struct List_t *)xEventGroup_1(D) + 4B].xListEnd.pxNext;
  42. # DEBUG pxListItem => pxListItem_3
  43. # DEBUG BEGIN_STMT
  44. _4 = MEM[(struct EventGroup_t *)xEventGroup_1(D)].uxEventBits;
  45. _6 = _4 | uxBitsToSet_5(D);
  46. MEM[(struct EventGroup_t *)xEventGroup_1(D)].uxEventBits = _6;
  47. # DEBUG BEGIN_STMT
  48. goto <bb 10>; [100.00%]
  49. <bb 3> [local count: 955630223]:
  50. # DEBUG BEGIN_STMT
  51. pxNext_8 = pxListItem_7->pxNext;
  52. # DEBUG pxNext => pxNext_8
  53. # DEBUG BEGIN_STMT
  54. uxBitsWaitedFor_9 = pxListItem_7->xItemValue;
  55. # DEBUG uxBitsWaitedFor => uxBitsWaitedFor_9
  56. # DEBUG BEGIN_STMT
  57. # DEBUG xMatchFound => 0
  58. # DEBUG BEGIN_STMT
  59. # DEBUG uxControlBits => uxBitsWaitedFor_9 & 4278190080
  60. # DEBUG BEGIN_STMT
  61. uxBitsWaitedFor_10 = uxBitsWaitedFor_9 & 16777215;
  62. # DEBUG uxBitsWaitedFor => uxBitsWaitedFor_10
  63. # DEBUG BEGIN_STMT
  64. _11 = uxBitsWaitedFor_9 & 67108864;
  65. if (_11 == 0)
  66. goto <bb 4>; [50.00%]
  67. else
  68. goto <bb 5>; [50.00%]
  69. <bb 4> [local count: 477815111]:
  70. # DEBUG BEGIN_STMT
  71. _12 = MEM[(struct EventGroup_t *)xEventGroup_1(D)].uxEventBits;
  72. _13 = uxBitsWaitedFor_10 & _12;
  73. if (_13 != 0)
  74. goto <bb 6>; [50.00%]
  75. else
  76. goto <bb 9>; [50.00%]
  77. <bb 5> [local count: 477815111]:
  78. # DEBUG BEGIN_STMT
  79. _14 = MEM[(struct EventGroup_t *)xEventGroup_1(D)].uxEventBits;
  80. _15 = uxBitsWaitedFor_10 & _14;
  81. if (uxBitsWaitedFor_10 == _15)
  82. goto <bb 6>; [34.00%]
  83. else
  84. goto <bb 9>; [66.00%]
  85. <bb 6> [local count: 401364694]:
  86. # DEBUG xMatchFound => NULL
  87. # DEBUG BEGIN_STMT
  88. _16 = uxBitsWaitedFor_9 & 16777216;
  89. if (_16 != 0)
  90. goto <bb 7>; [50.00%]
  91. else
  92. goto <bb 8>; [50.00%]
  93. <bb 7> [local count: 200682347]:
  94. # DEBUG BEGIN_STMT
  95. uxBitsToClear_18 = uxBitsWaitedFor_10 | uxBitsToClear_17;
  96. # DEBUG uxBitsToClear => uxBitsToClear_18
  97. <bb 8> [local count: 401364694]:
  98. # uxBitsToClear_26 = PHI <uxBitsToClear_17(6), uxBitsToClear_18(7)>
  99. # DEBUG uxBitsToClear => uxBitsToClear_26
  100. # DEBUG BEGIN_STMT
  101. # DEBUG BEGIN_STMT
  102. _19 = MEM[(struct EventGroup_t *)xEventGroup_1(D)].uxEventBits;
  103. _20 = _19 | 33554432;
  104. vTaskRemoveFromUnorderedEventList (pxListItem_7, _20);
  105. <bb 9> [local count: 955630225]:
  106. # pxListItem_27 = PHI <pxNext_8(4), pxNext_8(5), pxNext_8(8)>
  107. # uxBitsToClear_28 = PHI <uxBitsToClear_17(4), uxBitsToClear_17(5), uxBitsToClear_26(8)>
  108. <bb 10> [local count: 1073741824]:
  109. # pxListItem_7 = PHI <pxListItem_3(2), pxListItem_27(9)>
  110. # uxBitsToClear_17 = PHI <0(2), uxBitsToClear_28(9)>
  111. # DEBUG xMatchFound => NULL
  112. # DEBUG uxBitsToClear => uxBitsToClear_17
  113. # DEBUG pxListItem => pxListItem_7
  114. # DEBUG BEGIN_STMT
  115. if (pxListEnd_2 != pxListItem_7)
  116. goto <bb 3>; [89.00%]
  117. else
  118. goto <bb 11>; [11.00%]
  119. <bb 11> [local count: 118111601]:
  120. # uxBitsToClear_22 = PHI <uxBitsToClear_17(10)>
  121. # DEBUG BEGIN_STMT
  122. _21 = MEM[(struct EventGroup_t *)xEventGroup_1(D)].uxEventBits;
  123. _23 = ~uxBitsToClear_22;
  124. _24 = _21 & _23;
  125. MEM[(struct EventGroup_t *)xEventGroup_1(D)].uxEventBits = _24;
  126. # DEBUG BEGIN_STMT
  127. xTaskResumeAll ();
  128. # DEBUG BEGIN_STMT
  129. _25 = MEM[(struct EventGroup_t *)xEventGroup_1(D)].uxEventBits;
  130. return _25;
  131. }
  132. xEventGroupClearBits.part.0 (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToClear)
  133. {
  134. struct EventGroup_t * pxEventBits;
  135. EventBits_t uxReturn;
  136. uint32_t ulNewBASEPRI;
  137. uint32_t ulNewBASEPRI;
  138. long unsigned int _4;
  139. long unsigned int _5;
  140. <bb 3> [local count: 1073741824]:
  141. <bb 2> [local count: 1073741824]:
  142. # DEBUG BEGIN_STMT
  143. # DEBUG BEGIN_STMT
  144. vPortEnterCritical ();
  145. # DEBUG BEGIN_STMT
  146. # DEBUG BEGIN_STMT
  147. uxReturn_2 = MEM[(struct EventGroup_t *)xEventGroup_1(D)].uxEventBits;
  148. # DEBUG uxReturn => uxReturn_2
  149. # DEBUG BEGIN_STMT
  150. _4 = ~uxBitsToClear_3(D);
  151. _5 = uxReturn_2 & _4;
  152. MEM[(struct EventGroup_t *)xEventGroup_1(D)].uxEventBits = _5;
  153. # DEBUG BEGIN_STMT
  154. vPortExitCritical ();
  155. # DEBUG BEGIN_STMT
  156. return uxReturn_2;
  157. }
  158. vEventGroupSetNumber (void * xEventGroup, UBaseType_t uxEventGroupNumber)
  159. {
  160. <bb 2> [local count: 1073741824]:
  161. # DEBUG BEGIN_STMT
  162. MEM[(struct EventGroup_t *)xEventGroup_2(D)].uxEventGroupNumber = uxEventGroupNumber_3(D);
  163. return;
  164. }
  165. uxEventGroupGetNumber (void * xEventGroup)
  166. {
  167. UBaseType_t xReturn;
  168. <bb 2> [local count: 1073741824]:
  169. # DEBUG BEGIN_STMT
  170. # DEBUG BEGIN_STMT
  171. # DEBUG pxEventBits => xEventGroup_2(D)
  172. # DEBUG BEGIN_STMT
  173. if (xEventGroup_2(D) == 0B)
  174. goto <bb 4>; [30.00%]
  175. else
  176. goto <bb 3>; [70.00%]
  177. <bb 3> [local count: 751619278]:
  178. # DEBUG BEGIN_STMT
  179. xReturn_4 = MEM[(const struct EventGroup_t *)xEventGroup_2(D)].uxEventGroupNumber;
  180. # DEBUG xReturn => xReturn_4
  181. <bb 4> [local count: 1073741824]:
  182. # xReturn_1 = PHI <0(2), xReturn_4(3)>
  183. # DEBUG xReturn => xReturn_1
  184. # DEBUG BEGIN_STMT
  185. return xReturn_1;
  186. }
  187. xEventGroupSetBitsFromISR (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToSet, BaseType_t * pxHigherPriorityTaskWoken)
  188. {
  189. BaseType_t xReturn;
  190. <bb 2> [local count: 1073741824]:
  191. # DEBUG BEGIN_STMT
  192. # DEBUG BEGIN_STMT
  193. # DEBUG BEGIN_STMT
  194. xReturn_6 = xTimerPendFunctionCallFromISR (vEventGroupSetBitsCallback, xEventGroup_2(D), uxBitsToSet_3(D), pxHigherPriorityTaskWoken_4(D));
  195. # DEBUG xReturn => xReturn_6
  196. # DEBUG BEGIN_STMT
  197. return xReturn_6;
  198. }
  199. prvTestWaitCondition (const EventBits_t uxCurrentEventBits, const EventBits_t uxBitsToWaitFor, const BaseType_t xWaitForAllBits)
  200. {
  201. BaseType_t xWaitConditionMet;
  202. long unsigned int _1;
  203. long unsigned int _2;
  204. <bb 2> [local count: 1073741824]:
  205. # DEBUG BEGIN_STMT
  206. # DEBUG xWaitConditionMet => 0
  207. # DEBUG BEGIN_STMT
  208. if (xWaitForAllBits_4(D) == 0)
  209. goto <bb 3>; [50.00%]
  210. else
  211. goto <bb 5>; [50.00%]
  212. <bb 3> [local count: 536870913]:
  213. # DEBUG BEGIN_STMT
  214. _1 = uxCurrentEventBits_5(D) & uxBitsToWaitFor_6(D);
  215. if (_1 != 0)
  216. goto <bb 4>; [50.00%]
  217. else
  218. goto <bb 7>; [50.00%]
  219. <bb 4> [local count: 268435456]:
  220. # DEBUG BEGIN_STMT
  221. # DEBUG xWaitConditionMet => 1
  222. goto <bb 7>; [100.00%]
  223. <bb 5> [local count: 536870913]:
  224. # DEBUG BEGIN_STMT
  225. _2 = uxCurrentEventBits_5(D) & uxBitsToWaitFor_6(D);
  226. if (_2 == uxBitsToWaitFor_6(D))
  227. goto <bb 6>; [34.00%]
  228. else
  229. goto <bb 7>; [66.00%]
  230. <bb 6> [local count: 182536110]:
  231. # DEBUG BEGIN_STMT
  232. # DEBUG xWaitConditionMet => 1
  233. <bb 7> [local count: 1073741824]:
  234. # xWaitConditionMet_3 = PHI <1(4), 0(5), 1(6), 0(3)>
  235. # DEBUG xWaitConditionMet => xWaitConditionMet_3
  236. # DEBUG BEGIN_STMT
  237. # DEBUG BEGIN_STMT
  238. return xWaitConditionMet_3;
  239. }
  240. vEventGroupClearBitsCallback (void * pvEventGroup, const uint32_t ulBitsToClear)
  241. {
  242. <bb 2> [local count: 1073741824]:
  243. # DEBUG BEGIN_STMT
  244. xEventGroupClearBits (pvEventGroup_2(D), ulBitsToClear_3(D));
  245. return;
  246. }
  247. vEventGroupSetBitsCallback (void * pvEventGroup, const uint32_t ulBitsToSet)
  248. {
  249. <bb 2> [local count: 1073741824]:
  250. # DEBUG BEGIN_STMT
  251. xEventGroupSetBits (pvEventGroup_2(D), ulBitsToSet_3(D));
  252. return;
  253. }
  254. vEventGroupDelete (struct EventGroupDef_t * xEventGroup)
  255. {
  256. uint32_t ulNewBASEPRI;
  257. uint32_t ulNewBASEPRI;
  258. struct xLIST_ITEM * _1;
  259. const struct MiniListItem_t * _2;
  260. long unsigned int _3;
  261. <bb 2> [local count: 230763]:
  262. # DEBUG BEGIN_STMT
  263. if (xEventGroup_5(D) == 0B)
  264. goto <bb 3>; [46.53%]
  265. else
  266. goto <bb 5>; [53.47%]
  267. <bb 3> [local count: 107374]:
  268. # DEBUG BEGIN_STMT
  269. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  270. # DEBUG BEGIN_STMT
  271. # DEBUG BEGIN_STMT
  272. __asm__ __volatile__(" mov %0, %1
  273. msr basepri, %0
  274. isb
  275. dsb
  276. " : "=r" ulNewBASEPRI_11 : "i" 16 : "memory");
  277. # DEBUG ulNewBASEPRI => ulNewBASEPRI_11
  278. <bb 4> [local count: 1073741824]:
  279. # DEBUG ulNewBASEPRI => NULL
  280. # DEBUG BEGIN_STMT
  281. # DEBUG BEGIN_STMT
  282. # DEBUG BEGIN_STMT
  283. <bb 12> [local count: 1073741824]:
  284. goto <bb 4>; [100.00%]
  285. <bb 5> [local count: 123389]:
  286. # DEBUG BEGIN_STMT
  287. # DEBUG BEGIN_STMT
  288. # DEBUG pxEventBits => xEventGroup_5(D)
  289. # DEBUG BEGIN_STMT
  290. # DEBUG D#2 => &MEM[(struct EventGroup_t *)xEventGroup_5(D)].xTasksWaitingForBits
  291. # DEBUG pxTasksWaitingForBits => D#2
  292. # DEBUG BEGIN_STMT
  293. vTaskSuspendAll ();
  294. # DEBUG BEGIN_STMT
  295. # DEBUG BEGIN_STMT
  296. goto <bb 10>; [100.00%]
  297. <bb 6> [local count: 1089998]:
  298. # DEBUG BEGIN_STMT
  299. _1 = MEM[(const struct List_t *)xEventGroup_5(D) + 4B].xListEnd.pxNext;
  300. _2 = &MEM[(const struct List_t *)xEventGroup_5(D) + 4B].xListEnd;
  301. if (_1 == _2)
  302. goto <bb 7>; [5.50%]
  303. else
  304. goto <bb 9>; [94.50%]
  305. <bb 7> [local count: 59950]:
  306. # DEBUG BEGIN_STMT
  307. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  308. # DEBUG BEGIN_STMT
  309. # DEBUG BEGIN_STMT
  310. __asm__ __volatile__(" mov %0, %1
  311. msr basepri, %0
  312. isb
  313. dsb
  314. " : "=r" ulNewBASEPRI_12 : "i" 16 : "memory");
  315. # DEBUG ulNewBASEPRI => ulNewBASEPRI_12
  316. <bb 8> [local count: 599500022]:
  317. # DEBUG ulNewBASEPRI => NULL
  318. # DEBUG BEGIN_STMT
  319. # DEBUG BEGIN_STMT
  320. # DEBUG BEGIN_STMT
  321. <bb 13> [local count: 599500022]:
  322. goto <bb 8>; [100.00%]
  323. <bb 9> [local count: 1030048]:
  324. # DEBUG BEGIN_STMT
  325. # DEBUG BEGIN_STMT
  326. vTaskRemoveFromUnorderedEventList (_1, 33554432);
  327. <bb 10> [local count: 1153437]:
  328. # DEBUG BEGIN_STMT
  329. _3 ={v} MEM[(const struct List_t *)xEventGroup_5(D) + 4B].uxNumberOfItems;
  330. if (_3 != 0)
  331. goto <bb 6>; [94.50%]
  332. else
  333. goto <bb 11>; [5.50%]
  334. <bb 11> [local count: 63439]:
  335. # DEBUG BEGIN_STMT
  336. vPortFree (xEventGroup_5(D));
  337. # DEBUG BEGIN_STMT
  338. xTaskResumeAll ();
  339. return;
  340. }
  341. xEventGroupSetBits (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToSet)
  342. {
  343. EventBits_t D.6634;
  344. uint32_t ulNewBASEPRI;
  345. uint32_t ulNewBASEPRI;
  346. long unsigned int _1;
  347. <bb 2> [local count: 228942]:
  348. # DEBUG BEGIN_STMT
  349. # DEBUG BEGIN_STMT
  350. # DEBUG BEGIN_STMT
  351. # DEBUG BEGIN_STMT
  352. # DEBUG uxBitsToClear => 0
  353. # DEBUG BEGIN_STMT
  354. # DEBUG pxEventBits => xEventGroup_3(D)
  355. # DEBUG BEGIN_STMT
  356. # DEBUG xMatchFound => 0
  357. # DEBUG BEGIN_STMT
  358. if (xEventGroup_3(D) == 0B)
  359. goto <bb 3>; [30.00%]
  360. else
  361. goto <bb 5>; [70.00%]
  362. <bb 3> [local count: 68683]:
  363. # DEBUG BEGIN_STMT
  364. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  365. # DEBUG BEGIN_STMT
  366. # DEBUG BEGIN_STMT
  367. __asm__ __volatile__(" mov %0, %1
  368. msr basepri, %0
  369. isb
  370. dsb
  371. " : "=r" ulNewBASEPRI_7 : "i" 16 : "memory");
  372. # DEBUG ulNewBASEPRI => ulNewBASEPRI_7
  373. <bb 4> [local count: 686828460]:
  374. # DEBUG ulNewBASEPRI => NULL
  375. # DEBUG BEGIN_STMT
  376. # DEBUG BEGIN_STMT
  377. # DEBUG BEGIN_STMT
  378. goto <bb 4>; [100.00%]
  379. <bb 5> [local count: 160260]:
  380. # DEBUG BEGIN_STMT
  381. # DEBUG BEGIN_STMT
  382. _1 = uxBitsToSet_4(D) & 4278190080;
  383. if (_1 != 0)
  384. goto <bb 6>; [67.00%]
  385. else
  386. goto <bb 8>; [33.00%]
  387. <bb 6> [local count: 107374]:
  388. # DEBUG BEGIN_STMT
  389. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  390. # DEBUG BEGIN_STMT
  391. # DEBUG BEGIN_STMT
  392. __asm__ __volatile__(" mov %0, %1
  393. msr basepri, %0
  394. isb
  395. dsb
  396. " : "=r" ulNewBASEPRI_8 : "i" 16 : "memory");
  397. # DEBUG ulNewBASEPRI => ulNewBASEPRI_8
  398. <bb 7> [local count: 1073741824]:
  399. # DEBUG ulNewBASEPRI => NULL
  400. # DEBUG BEGIN_STMT
  401. # DEBUG BEGIN_STMT
  402. # DEBUG BEGIN_STMT
  403. goto <bb 7>; [100.00%]
  404. <bb 8> [local count: 52886]:
  405. _6 = xEventGroupSetBits.part.0 (xEventGroup_3(D), uxBitsToSet_4(D));
  406. return _6;
  407. }
  408. xEventGroupGetBitsFromISR (struct EventGroupDef_t * xEventGroup)
  409. {
  410. uint32_t ulOriginalBASEPRI;
  411. uint32_t ulNewBASEPRI;
  412. EventBits_t uxReturn;
  413. <bb 2> [local count: 1073741824]:
  414. # DEBUG BEGIN_STMT
  415. # DEBUG BEGIN_STMT
  416. # DEBUG pxEventBits => xEventGroup_1(D)
  417. # DEBUG BEGIN_STMT
  418. # DEBUG BEGIN_STMT
  419. # DEBUG INLINE_ENTRY ulPortRaiseBASEPRI
  420. # DEBUG BEGIN_STMT
  421. # DEBUG BEGIN_STMT
  422. __asm__ __volatile__(" mrs %0, basepri
  423. mov %1, %2
  424. msr basepri, %1
  425. isb
  426. dsb
  427. " : "=r" ulOriginalBASEPRI_4, "=r" ulNewBASEPRI_5 : "i" 16 : "memory");
  428. # DEBUG ulNewBASEPRI => ulNewBASEPRI_5
  429. # DEBUG ulOriginalBASEPRI => ulOriginalBASEPRI_4
  430. # DEBUG BEGIN_STMT
  431. # DEBUG ulNewBASEPRI => NULL
  432. # DEBUG ulOriginalBASEPRI => NULL
  433. # DEBUG uxSavedInterruptStatus => ulOriginalBASEPRI_4
  434. # DEBUG BEGIN_STMT
  435. uxReturn_3 = MEM[(const struct EventGroup_t *)xEventGroup_1(D)].uxEventBits;
  436. # DEBUG uxReturn => uxReturn_3
  437. # DEBUG BEGIN_STMT
  438. # DEBUG ulNewMaskValue => ulOriginalBASEPRI_4
  439. # DEBUG INLINE_ENTRY vPortSetBASEPRI
  440. # DEBUG BEGIN_STMT
  441. __asm__ __volatile__(" msr basepri, %0 " : : "r" ulOriginalBASEPRI_4 : "memory");
  442. # DEBUG ulNewMaskValue => NULL
  443. # DEBUG BEGIN_STMT
  444. return uxReturn_3;
  445. }
  446. xEventGroupClearBitsFromISR (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToClear)
  447. {
  448. BaseType_t xReturn;
  449. <bb 2> [local count: 1073741824]:
  450. # DEBUG BEGIN_STMT
  451. # DEBUG BEGIN_STMT
  452. # DEBUG BEGIN_STMT
  453. xReturn_5 = xTimerPendFunctionCallFromISR (vEventGroupClearBitsCallback, xEventGroup_2(D), uxBitsToClear_3(D), 0B);
  454. # DEBUG xReturn => xReturn_5
  455. # DEBUG BEGIN_STMT
  456. return xReturn_5;
  457. }
  458. xEventGroupClearBits (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToClear)
  459. {
  460. EventBits_t D.6607;
  461. uint32_t ulNewBASEPRI;
  462. uint32_t ulNewBASEPRI;
  463. long unsigned int _1;
  464. <bb 2> [local count: 228942]:
  465. # DEBUG BEGIN_STMT
  466. # DEBUG pxEventBits => xEventGroup_3(D)
  467. # DEBUG BEGIN_STMT
  468. # DEBUG BEGIN_STMT
  469. if (xEventGroup_3(D) == 0B)
  470. goto <bb 3>; [30.00%]
  471. else
  472. goto <bb 5>; [70.00%]
  473. <bb 3> [local count: 68683]:
  474. # DEBUG BEGIN_STMT
  475. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  476. # DEBUG BEGIN_STMT
  477. # DEBUG BEGIN_STMT
  478. __asm__ __volatile__(" mov %0, %1
  479. msr basepri, %0
  480. isb
  481. dsb
  482. " : "=r" ulNewBASEPRI_7 : "i" 16 : "memory");
  483. # DEBUG ulNewBASEPRI => ulNewBASEPRI_7
  484. <bb 4> [local count: 686828460]:
  485. # DEBUG ulNewBASEPRI => NULL
  486. # DEBUG BEGIN_STMT
  487. # DEBUG BEGIN_STMT
  488. # DEBUG BEGIN_STMT
  489. goto <bb 4>; [100.00%]
  490. <bb 5> [local count: 160260]:
  491. # DEBUG BEGIN_STMT
  492. # DEBUG BEGIN_STMT
  493. _1 = uxBitsToClear_5(D) & 4278190080;
  494. if (_1 != 0)
  495. goto <bb 6>; [67.00%]
  496. else
  497. goto <bb 8>; [33.00%]
  498. <bb 6> [local count: 107374]:
  499. # DEBUG BEGIN_STMT
  500. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  501. # DEBUG BEGIN_STMT
  502. # DEBUG BEGIN_STMT
  503. __asm__ __volatile__(" mov %0, %1
  504. msr basepri, %0
  505. isb
  506. dsb
  507. " : "=r" ulNewBASEPRI_8 : "i" 16 : "memory");
  508. # DEBUG ulNewBASEPRI => ulNewBASEPRI_8
  509. <bb 7> [local count: 1073741824]:
  510. # DEBUG ulNewBASEPRI => NULL
  511. # DEBUG BEGIN_STMT
  512. # DEBUG BEGIN_STMT
  513. # DEBUG BEGIN_STMT
  514. goto <bb 7>; [100.00%]
  515. <bb 8> [local count: 52886]:
  516. _2 = xEventGroupClearBits.part.0 (xEventGroup_3(D), uxBitsToClear_5(D));
  517. return _2;
  518. }
  519. xEventGroupWaitBits (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToWaitFor, const BaseType_t xClearOnExit, const BaseType_t xWaitForAllBits, TickType_t xTicksToWait)
  520. {
  521. uint32_t ulNewBASEPRI;
  522. uint32_t ulNewBASEPRI;
  523. uint32_t ulNewBASEPRI;
  524. uint32_t ulNewBASEPRI;
  525. const EventBits_t uxCurrentEventBits;
  526. BaseType_t xAlreadyYielded;
  527. BaseType_t xWaitConditionMet;
  528. EventBits_t uxControlBits;
  529. EventBits_t uxReturn;
  530. long unsigned int _1;
  531. long int _2;
  532. long unsigned int _3;
  533. long unsigned int _4;
  534. struct List_t * _5;
  535. long unsigned int _6;
  536. long unsigned int _7;
  537. long int _8;
  538. long unsigned int _9;
  539. long unsigned int _10;
  540. <bb 2> [local count: 306783]:
  541. # DEBUG BEGIN_STMT
  542. # DEBUG pxEventBits => xEventGroup_22(D)
  543. # DEBUG BEGIN_STMT
  544. # DEBUG uxControlBits => 0
  545. # DEBUG BEGIN_STMT
  546. # DEBUG BEGIN_STMT
  547. # DEBUG xTimeoutOccurred => 0
  548. # DEBUG BEGIN_STMT
  549. if (xEventGroup_22(D) == 0B)
  550. goto <bb 3>; [30.00%]
  551. else
  552. goto <bb 5>; [70.00%]
  553. <bb 3> [local count: 92035]:
  554. # DEBUG BEGIN_STMT
  555. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  556. # DEBUG BEGIN_STMT
  557. # DEBUG BEGIN_STMT
  558. __asm__ __volatile__(" mov %0, %1
  559. msr basepri, %0
  560. isb
  561. dsb
  562. " : "=r" ulNewBASEPRI_45 : "i" 16 : "memory");
  563. # DEBUG ulNewBASEPRI => ulNewBASEPRI_45
  564. <bb 4> [local count: 920350133]:
  565. # DEBUG ulNewBASEPRI => NULL
  566. # DEBUG BEGIN_STMT
  567. # DEBUG BEGIN_STMT
  568. # DEBUG BEGIN_STMT
  569. <bb 34> [local count: 920350133]:
  570. goto <bb 4>; [100.00%]
  571. <bb 5> [local count: 214748]:
  572. # DEBUG BEGIN_STMT
  573. # DEBUG BEGIN_STMT
  574. _1 = uxBitsToWaitFor_23(D) & 4278190080;
  575. if (_1 != 0)
  576. goto <bb 6>; [50.00%]
  577. else
  578. goto <bb 8>; [50.00%]
  579. <bb 6> [local count: 107374]:
  580. # DEBUG BEGIN_STMT
  581. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  582. # DEBUG BEGIN_STMT
  583. # DEBUG BEGIN_STMT
  584. __asm__ __volatile__(" mov %0, %1
  585. msr basepri, %0
  586. isb
  587. dsb
  588. " : "=r" ulNewBASEPRI_30 : "i" 16 : "memory");
  589. # DEBUG ulNewBASEPRI => ulNewBASEPRI_30
  590. <bb 7> [local count: 1073741823]:
  591. # DEBUG ulNewBASEPRI => NULL
  592. # DEBUG BEGIN_STMT
  593. # DEBUG BEGIN_STMT
  594. # DEBUG BEGIN_STMT
  595. <bb 35> [local count: 1073741824]:
  596. goto <bb 7>; [100.00%]
  597. <bb 8> [local count: 107374]:
  598. # DEBUG BEGIN_STMT
  599. # DEBUG BEGIN_STMT
  600. if (uxBitsToWaitFor_23(D) == 0)
  601. goto <bb 9>; [67.00%]
  602. else
  603. goto <bb 11>; [33.00%]
  604. <bb 9> [local count: 71941]:
  605. # DEBUG BEGIN_STMT
  606. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  607. # DEBUG BEGIN_STMT
  608. # DEBUG BEGIN_STMT
  609. __asm__ __volatile__(" mov %0, %1
  610. msr basepri, %0
  611. isb
  612. dsb
  613. " : "=r" ulNewBASEPRI_49 : "i" 16 : "memory");
  614. # DEBUG ulNewBASEPRI => ulNewBASEPRI_49
  615. <bb 10> [local count: 719407021]:
  616. # DEBUG ulNewBASEPRI => NULL
  617. # DEBUG BEGIN_STMT
  618. # DEBUG BEGIN_STMT
  619. # DEBUG BEGIN_STMT
  620. <bb 36> [local count: 719407021]:
  621. goto <bb 10>; [100.00%]
  622. <bb 11> [local count: 35433]:
  623. # DEBUG BEGIN_STMT
  624. # DEBUG BEGIN_STMT
  625. _2 = xTaskGetSchedulerState ();
  626. if (_2 != 0)
  627. goto <bb 15>; [33.00%]
  628. else
  629. goto <bb 12>; [67.00%]
  630. <bb 12> [local count: 23740]:
  631. if (xTicksToWait_26(D) == 0)
  632. goto <bb 15>; [50.00%]
  633. else
  634. goto <bb 13>; [50.00%]
  635. <bb 13> [local count: 11870]:
  636. # DEBUG BEGIN_STMT
  637. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  638. # DEBUG BEGIN_STMT
  639. # DEBUG BEGIN_STMT
  640. __asm__ __volatile__(" mov %0, %1
  641. msr basepri, %0
  642. isb
  643. dsb
  644. " : "=r" ulNewBASEPRI_50 : "i" 16 : "memory");
  645. # DEBUG ulNewBASEPRI => ulNewBASEPRI_50
  646. <bb 14> [local count: 118702158]:
  647. # DEBUG ulNewBASEPRI => NULL
  648. # DEBUG BEGIN_STMT
  649. # DEBUG BEGIN_STMT
  650. # DEBUG BEGIN_STMT
  651. <bb 37> [local count: 118702158]:
  652. goto <bb 14>; [100.00%]
  653. <bb 15> [local count: 23563]:
  654. # DEBUG BEGIN_STMT
  655. # DEBUG BEGIN_STMT
  656. vTaskSuspendAll ();
  657. # DEBUG BEGIN_STMT
  658. uxCurrentEventBits_28 = MEM[(struct EventGroup_t *)xEventGroup_22(D)].uxEventBits;
  659. # DEBUG uxCurrentEventBits => uxCurrentEventBits_28
  660. # DEBUG BEGIN_STMT
  661. xWaitConditionMet_31 = prvTestWaitCondition (uxCurrentEventBits_28, uxBitsToWaitFor_23(D), xWaitForAllBits_29(D));
  662. # DEBUG xWaitConditionMet => xWaitConditionMet_31
  663. # DEBUG BEGIN_STMT
  664. if (xWaitConditionMet_31 != 0)
  665. goto <bb 16>; [50.00%]
  666. else
  667. goto <bb 18>; [50.00%]
  668. <bb 16> [local count: 11782]:
  669. # DEBUG BEGIN_STMT
  670. # DEBUG uxReturn => uxCurrentEventBits_28
  671. # DEBUG BEGIN_STMT
  672. # DEBUG xTicksToWait => 0
  673. # DEBUG BEGIN_STMT
  674. if (xClearOnExit_32(D) != 0)
  675. goto <bb 17>; [50.00%]
  676. else
  677. goto <bb 24>; [50.00%]
  678. <bb 17> [local count: 5891]:
  679. # DEBUG BEGIN_STMT
  680. _3 = ~uxBitsToWaitFor_23(D);
  681. _4 = _3 & uxCurrentEventBits_28;
  682. MEM[(struct EventGroup_t *)xEventGroup_22(D)].uxEventBits = _4;
  683. goto <bb 24>; [100.00%]
  684. <bb 18> [local count: 11782]:
  685. # DEBUG BEGIN_STMT
  686. if (xTicksToWait_26(D) == 0)
  687. goto <bb 24>; [50.00%]
  688. else
  689. goto <bb 19>; [50.00%]
  690. <bb 19> [local count: 5891]:
  691. # DEBUG BEGIN_STMT
  692. if (xClearOnExit_32(D) != 0)
  693. goto <bb 20>; [50.00%]
  694. else
  695. goto <bb 21>; [50.00%]
  696. <bb 20> [local count: 2945]:
  697. # DEBUG BEGIN_STMT
  698. # DEBUG uxControlBits => 16777216
  699. <bb 21> [local count: 5891]:
  700. # uxControlBits_15 = PHI <0(19), 16777216(20)>
  701. # DEBUG uxControlBits => uxControlBits_15
  702. # DEBUG BEGIN_STMT
  703. # DEBUG BEGIN_STMT
  704. if (xWaitForAllBits_29(D) != 0)
  705. goto <bb 22>; [50.00%]
  706. else
  707. goto <bb 23>; [50.00%]
  708. <bb 22> [local count: 2945]:
  709. # DEBUG BEGIN_STMT
  710. uxControlBits_33 = uxControlBits_15 | 67108864;
  711. # DEBUG uxControlBits => uxControlBits_33
  712. <bb 23> [local count: 5891]:
  713. # uxControlBits_16 = PHI <uxControlBits_15(21), uxControlBits_33(22)>
  714. # DEBUG uxControlBits => uxControlBits_16
  715. # DEBUG BEGIN_STMT
  716. # DEBUG BEGIN_STMT
  717. _5 = &MEM[(struct EventGroup_t *)xEventGroup_22(D)].xTasksWaitingForBits;
  718. _6 = uxControlBits_16 | uxBitsToWaitFor_23(D);
  719. vTaskPlaceOnUnorderedEventList (_5, _6, xTicksToWait_26(D));
  720. # DEBUG BEGIN_STMT
  721. # DEBUG uxReturn => 0
  722. <bb 24> [local count: 23563]:
  723. # xTicksToWait_11 = PHI <0(17), xTicksToWait_26(D)(18), xTicksToWait_26(D)(23), 0(16)>
  724. # uxReturn_12 = PHI <uxCurrentEventBits_28(17), uxCurrentEventBits_28(18), 0(23), uxCurrentEventBits_28(16)>
  725. # DEBUG xTimeoutOccurred => NULL
  726. # DEBUG uxReturn => uxReturn_12
  727. # DEBUG xTicksToWait => xTicksToWait_11
  728. # DEBUG BEGIN_STMT
  729. # DEBUG BEGIN_STMT
  730. xAlreadyYielded_37 = xTaskResumeAll ();
  731. # DEBUG xAlreadyYielded => xAlreadyYielded_37
  732. # DEBUG BEGIN_STMT
  733. if (xTicksToWait_11 != 0)
  734. goto <bb 25>; [50.00%]
  735. else
  736. goto <bb 33>; [50.00%]
  737. <bb 25> [local count: 11782]:
  738. # DEBUG BEGIN_STMT
  739. if (xAlreadyYielded_37 == 0)
  740. goto <bb 26>; [50.00%]
  741. else
  742. goto <bb 27>; [50.00%]
  743. <bb 26> [local count: 5891]:
  744. # DEBUG BEGIN_STMT
  745. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  746. # DEBUG BEGIN_STMT
  747. __asm__ __volatile__("dsb" : : : "memory");
  748. # DEBUG BEGIN_STMT
  749. __asm__ __volatile__("isb");
  750. # DEBUG BEGIN_STMT
  751. <bb 27> [local count: 11782]:
  752. # DEBUG BEGIN_STMT
  753. # DEBUG BEGIN_STMT
  754. uxReturn_42 = uxTaskResetEventItemValue ();
  755. # DEBUG uxReturn => uxReturn_42
  756. # DEBUG BEGIN_STMT
  757. _7 = uxReturn_42 & 33554432;
  758. if (_7 == 0)
  759. goto <bb 28>; [33.00%]
  760. else
  761. goto <bb 32>; [67.00%]
  762. <bb 28> [local count: 3888]:
  763. # DEBUG BEGIN_STMT
  764. vPortEnterCritical ();
  765. # DEBUG BEGIN_STMT
  766. uxReturn_44 = MEM[(struct EventGroup_t *)xEventGroup_22(D)].uxEventBits;
  767. # DEBUG uxReturn => uxReturn_44
  768. # DEBUG BEGIN_STMT
  769. _8 = prvTestWaitCondition (uxReturn_44, uxBitsToWaitFor_23(D), xWaitForAllBits_29(D));
  770. if (_8 != 0)
  771. goto <bb 29>; [50.00%]
  772. else
  773. goto <bb 31>; [50.00%]
  774. <bb 29> [local count: 1944]:
  775. # DEBUG BEGIN_STMT
  776. if (xClearOnExit_32(D) != 0)
  777. goto <bb 30>; [50.00%]
  778. else
  779. goto <bb 31>; [50.00%]
  780. <bb 30> [local count: 972]:
  781. # DEBUG BEGIN_STMT
  782. _9 = ~uxBitsToWaitFor_23(D);
  783. _10 = _9 & uxReturn_44;
  784. MEM[(struct EventGroup_t *)xEventGroup_22(D)].uxEventBits = _10;
  785. <bb 31> [local count: 3888]:
  786. # DEBUG BEGIN_STMT
  787. # DEBUG BEGIN_STMT
  788. # DEBUG xTimeoutOccurred => 1
  789. # DEBUG BEGIN_STMT
  790. vPortExitCritical ();
  791. <bb 32> [local count: 11782]:
  792. # uxReturn_13 = PHI <uxReturn_42(27), uxReturn_44(31)>
  793. # DEBUG uxReturn => uxReturn_13
  794. # DEBUG BEGIN_STMT
  795. # DEBUG BEGIN_STMT
  796. uxReturn_48 = uxReturn_13 & 16777215;
  797. # DEBUG uxReturn => uxReturn_48
  798. <bb 33> [local count: 23563]:
  799. # uxReturn_14 = PHI <uxReturn_12(24), uxReturn_48(32)>
  800. # DEBUG uxReturn => uxReturn_14
  801. # DEBUG BEGIN_STMT
  802. # DEBUG BEGIN_STMT
  803. # DEBUG BEGIN_STMT
  804. return uxReturn_14;
  805. }
  806. xEventGroupSync (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToSet, const EventBits_t uxBitsToWaitFor, TickType_t xTicksToWait)
  807. {
  808. uint32_t ulNewBASEPRI;
  809. uint32_t ulNewBASEPRI;
  810. uint32_t ulNewBASEPRI;
  811. BaseType_t xAlreadyYielded;
  812. EventBits_t uxReturn;
  813. EventBits_t uxOriginalBitValue;
  814. long unsigned int _1;
  815. long int _2;
  816. long unsigned int _3;
  817. long unsigned int _4;
  818. long unsigned int _5;
  819. long unsigned int _6;
  820. long unsigned int _7;
  821. struct List_t * _8;
  822. long unsigned int _9;
  823. long unsigned int _10;
  824. long unsigned int _11;
  825. long unsigned int _12;
  826. long unsigned int _13;
  827. <bb 2> [local count: 214748]:
  828. # DEBUG BEGIN_STMT
  829. # DEBUG BEGIN_STMT
  830. # DEBUG pxEventBits => xEventGroup_23(D)
  831. # DEBUG BEGIN_STMT
  832. # DEBUG BEGIN_STMT
  833. # DEBUG xTimeoutOccurred => 0
  834. # DEBUG BEGIN_STMT
  835. _1 = uxBitsToWaitFor_24(D) & 4278190080;
  836. if (_1 != 0)
  837. goto <bb 3>; [50.00%]
  838. else
  839. goto <bb 5>; [50.00%]
  840. <bb 3> [local count: 107374]:
  841. # DEBUG BEGIN_STMT
  842. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  843. # DEBUG BEGIN_STMT
  844. # DEBUG BEGIN_STMT
  845. __asm__ __volatile__(" mov %0, %1
  846. msr basepri, %0
  847. isb
  848. dsb
  849. " : "=r" ulNewBASEPRI_47 : "i" 16 : "memory");
  850. # DEBUG ulNewBASEPRI => ulNewBASEPRI_47
  851. <bb 4> [local count: 1073741824]:
  852. # DEBUG ulNewBASEPRI => NULL
  853. # DEBUG BEGIN_STMT
  854. # DEBUG BEGIN_STMT
  855. # DEBUG BEGIN_STMT
  856. <bb 26> [local count: 1073741824]:
  857. goto <bb 4>; [100.00%]
  858. <bb 5> [local count: 107374]:
  859. # DEBUG BEGIN_STMT
  860. # DEBUG BEGIN_STMT
  861. if (uxBitsToWaitFor_24(D) == 0)
  862. goto <bb 6>; [67.00%]
  863. else
  864. goto <bb 8>; [33.00%]
  865. <bb 6> [local count: 71941]:
  866. # DEBUG BEGIN_STMT
  867. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  868. # DEBUG BEGIN_STMT
  869. # DEBUG BEGIN_STMT
  870. __asm__ __volatile__(" mov %0, %1
  871. msr basepri, %0
  872. isb
  873. dsb
  874. " : "=r" ulNewBASEPRI_48 : "i" 16 : "memory");
  875. # DEBUG ulNewBASEPRI => ulNewBASEPRI_48
  876. <bb 7> [local count: 719407023]:
  877. # DEBUG ulNewBASEPRI => NULL
  878. # DEBUG BEGIN_STMT
  879. # DEBUG BEGIN_STMT
  880. # DEBUG BEGIN_STMT
  881. <bb 27> [local count: 719407023]:
  882. goto <bb 7>; [100.00%]
  883. <bb 8> [local count: 35433]:
  884. # DEBUG BEGIN_STMT
  885. # DEBUG BEGIN_STMT
  886. _2 = xTaskGetSchedulerState ();
  887. if (_2 != 0)
  888. goto <bb 12>; [33.00%]
  889. else
  890. goto <bb 9>; [67.00%]
  891. <bb 9> [local count: 23740]:
  892. if (xTicksToWait_27(D) == 0)
  893. goto <bb 12>; [50.00%]
  894. else
  895. goto <bb 10>; [50.00%]
  896. <bb 10> [local count: 11870]:
  897. # DEBUG BEGIN_STMT
  898. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  899. # DEBUG BEGIN_STMT
  900. # DEBUG BEGIN_STMT
  901. __asm__ __volatile__(" mov %0, %1
  902. msr basepri, %0
  903. isb
  904. dsb
  905. " : "=r" ulNewBASEPRI_49 : "i" 16 : "memory");
  906. # DEBUG ulNewBASEPRI => ulNewBASEPRI_49
  907. <bb 11> [local count: 118702159]:
  908. # DEBUG ulNewBASEPRI => NULL
  909. # DEBUG BEGIN_STMT
  910. # DEBUG BEGIN_STMT
  911. # DEBUG BEGIN_STMT
  912. <bb 28> [local count: 118702159]:
  913. goto <bb 11>; [100.00%]
  914. <bb 12> [local count: 23563]:
  915. # DEBUG BEGIN_STMT
  916. # DEBUG BEGIN_STMT
  917. vTaskSuspendAll ();
  918. # DEBUG BEGIN_STMT
  919. uxOriginalBitValue_29 = MEM[(struct EventGroup_t *)xEventGroup_23(D)].uxEventBits;
  920. # DEBUG uxOriginalBitValue => uxOriginalBitValue_29
  921. # DEBUG BEGIN_STMT
  922. xEventGroupSetBits (xEventGroup_23(D), uxBitsToSet_30(D));
  923. # DEBUG BEGIN_STMT
  924. _3 = uxOriginalBitValue_29 | uxBitsToSet_30(D);
  925. _4 = _3 & uxBitsToWaitFor_24(D);
  926. if (_4 == uxBitsToWaitFor_24(D))
  927. goto <bb 13>; [34.00%]
  928. else
  929. goto <bb 14>; [66.00%]
  930. <bb 13> [local count: 8011]:
  931. # DEBUG BEGIN_STMT
  932. # DEBUG uxReturn => _3
  933. # DEBUG BEGIN_STMT
  934. _5 = MEM[(struct EventGroup_t *)xEventGroup_23(D)].uxEventBits;
  935. _6 = ~uxBitsToWaitFor_24(D);
  936. _7 = _5 & _6;
  937. MEM[(struct EventGroup_t *)xEventGroup_23(D)].uxEventBits = _7;
  938. # DEBUG BEGIN_STMT
  939. # DEBUG xTicksToWait => 0
  940. goto <bb 17>; [100.00%]
  941. <bb 14> [local count: 15552]:
  942. # DEBUG BEGIN_STMT
  943. if (xTicksToWait_27(D) != 0)
  944. goto <bb 15>; [33.00%]
  945. else
  946. goto <bb 16>; [67.00%]
  947. <bb 15> [local count: 5132]:
  948. # DEBUG BEGIN_STMT
  949. # DEBUG BEGIN_STMT
  950. _8 = &MEM[(struct EventGroup_t *)xEventGroup_23(D)].xTasksWaitingForBits;
  951. _9 = uxBitsToWaitFor_24(D) | 83886080;
  952. vTaskPlaceOnUnorderedEventList (_8, _9, xTicksToWait_27(D));
  953. # DEBUG BEGIN_STMT
  954. # DEBUG uxReturn => 0
  955. goto <bb 17>; [100.00%]
  956. <bb 16> [local count: 10420]:
  957. # DEBUG BEGIN_STMT
  958. uxReturn_32 = MEM[(struct EventGroup_t *)xEventGroup_23(D)].uxEventBits;
  959. # DEBUG uxReturn => uxReturn_32
  960. # DEBUG BEGIN_STMT
  961. # DEBUG xTimeoutOccurred => 1
  962. <bb 17> [local count: 23563]:
  963. # xTicksToWait_14 = PHI <0(13), xTicksToWait_27(D)(15), 0(16)>
  964. # uxReturn_15 = PHI <_3(13), 0(15), uxReturn_32(16)>
  965. # DEBUG uxReturn => uxReturn_15
  966. # DEBUG xTicksToWait => xTicksToWait_14
  967. # DEBUG BEGIN_STMT
  968. xAlreadyYielded_36 = xTaskResumeAll ();
  969. # DEBUG xAlreadyYielded => xAlreadyYielded_36
  970. # DEBUG BEGIN_STMT
  971. if (xTicksToWait_14 != 0)
  972. goto <bb 18>; [50.00%]
  973. else
  974. goto <bb 25>; [50.00%]
  975. <bb 18> [local count: 11782]:
  976. # DEBUG BEGIN_STMT
  977. if (xAlreadyYielded_36 == 0)
  978. goto <bb 19>; [50.00%]
  979. else
  980. goto <bb 20>; [50.00%]
  981. <bb 19> [local count: 5891]:
  982. # DEBUG BEGIN_STMT
  983. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  984. # DEBUG BEGIN_STMT
  985. __asm__ __volatile__("dsb" : : : "memory");
  986. # DEBUG BEGIN_STMT
  987. __asm__ __volatile__("isb");
  988. # DEBUG BEGIN_STMT
  989. <bb 20> [local count: 11782]:
  990. # DEBUG BEGIN_STMT
  991. # DEBUG BEGIN_STMT
  992. uxReturn_41 = uxTaskResetEventItemValue ();
  993. # DEBUG uxReturn => uxReturn_41
  994. # DEBUG BEGIN_STMT
  995. _10 = uxReturn_41 & 33554432;
  996. if (_10 == 0)
  997. goto <bb 21>; [33.00%]
  998. else
  999. goto <bb 24>; [67.00%]
  1000. <bb 21> [local count: 3888]:
  1001. # DEBUG BEGIN_STMT
  1002. vPortEnterCritical ();
  1003. # DEBUG BEGIN_STMT
  1004. uxReturn_43 = MEM[(struct EventGroup_t *)xEventGroup_23(D)].uxEventBits;
  1005. # DEBUG uxReturn => uxReturn_43
  1006. # DEBUG BEGIN_STMT
  1007. _11 = uxBitsToWaitFor_24(D) & uxReturn_43;
  1008. if (_11 == uxBitsToWaitFor_24(D))
  1009. goto <bb 22>; [34.00%]
  1010. else
  1011. goto <bb 23>; [66.00%]
  1012. <bb 22> [local count: 1322]:
  1013. # DEBUG BEGIN_STMT
  1014. _12 = ~uxBitsToWaitFor_24(D);
  1015. _13 = _12 & uxReturn_43;
  1016. MEM[(struct EventGroup_t *)xEventGroup_23(D)].uxEventBits = _13;
  1017. <bb 23> [local count: 3888]:
  1018. # DEBUG BEGIN_STMT
  1019. # DEBUG BEGIN_STMT
  1020. vPortExitCritical ();
  1021. # DEBUG BEGIN_STMT
  1022. # DEBUG xTimeoutOccurred => 1
  1023. <bb 24> [local count: 11782]:
  1024. # uxReturn_16 = PHI <uxReturn_41(20), uxReturn_43(23)>
  1025. # DEBUG uxReturn => uxReturn_16
  1026. # DEBUG BEGIN_STMT
  1027. # DEBUG BEGIN_STMT
  1028. uxReturn_46 = uxReturn_16 & 16777215;
  1029. # DEBUG uxReturn => uxReturn_46
  1030. <bb 25> [local count: 23563]:
  1031. # uxReturn_17 = PHI <uxReturn_15(17), uxReturn_46(24)>
  1032. # DEBUG uxReturn => uxReturn_17
  1033. # DEBUG BEGIN_STMT
  1034. # DEBUG BEGIN_STMT
  1035. # DEBUG BEGIN_STMT
  1036. return uxReturn_17;
  1037. }
  1038. xEventGroupCreate ()
  1039. {
  1040. struct EventGroup_t * pxEventBits;
  1041. struct List_t * _1;
  1042. <bb 2> [local count: 1073741824]:
  1043. # DEBUG BEGIN_STMT
  1044. # DEBUG BEGIN_STMT
  1045. pxEventBits_5 = pvPortMalloc (28);
  1046. # DEBUG pxEventBits => pxEventBits_5
  1047. # DEBUG BEGIN_STMT
  1048. if (pxEventBits_5 != 0B)
  1049. goto <bb 3>; [53.47%]
  1050. else
  1051. goto <bb 4>; [46.53%]
  1052. <bb 3> [local count: 574129754]:
  1053. # DEBUG BEGIN_STMT
  1054. pxEventBits_5->uxEventBits = 0;
  1055. # DEBUG BEGIN_STMT
  1056. _1 = &pxEventBits_5->xTasksWaitingForBits;
  1057. vListInitialise (_1);
  1058. # DEBUG BEGIN_STMT
  1059. <bb 4> [local count: 1073741824]:
  1060. # DEBUG BEGIN_STMT
  1061. # DEBUG BEGIN_STMT
  1062. return pxEventBits_5;
  1063. }