event_groups.c.069i.profile_estimate 32 KB

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