event_groups.c.080i.single-use 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236
  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. <bb 9> [local count: 686828460]:
  379. goto <bb 4>; [100.00%]
  380. <bb 5> [local count: 160260]:
  381. # DEBUG BEGIN_STMT
  382. # DEBUG BEGIN_STMT
  383. _1 = uxBitsToSet_4(D) & 4278190080;
  384. if (_1 != 0)
  385. goto <bb 6>; [67.00%]
  386. else
  387. goto <bb 8>; [33.00%]
  388. <bb 6> [local count: 107374]:
  389. # DEBUG BEGIN_STMT
  390. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  391. # DEBUG BEGIN_STMT
  392. # DEBUG BEGIN_STMT
  393. __asm__ __volatile__(" mov %0, %1
  394. msr basepri, %0
  395. isb
  396. dsb
  397. " : "=r" ulNewBASEPRI_8 : "i" 16 : "memory");
  398. # DEBUG ulNewBASEPRI => ulNewBASEPRI_8
  399. <bb 7> [local count: 1073741824]:
  400. # DEBUG ulNewBASEPRI => NULL
  401. # DEBUG BEGIN_STMT
  402. # DEBUG BEGIN_STMT
  403. # DEBUG BEGIN_STMT
  404. <bb 10> [local count: 1073741824]:
  405. goto <bb 7>; [100.00%]
  406. <bb 8> [local count: 52886]:
  407. _6 = xEventGroupSetBits.part.0 (xEventGroup_3(D), uxBitsToSet_4(D));
  408. return _6;
  409. }
  410. xEventGroupGetBitsFromISR (struct EventGroupDef_t * xEventGroup)
  411. {
  412. uint32_t ulOriginalBASEPRI;
  413. uint32_t ulNewBASEPRI;
  414. EventBits_t uxReturn;
  415. <bb 2> [local count: 1073741824]:
  416. # DEBUG BEGIN_STMT
  417. # DEBUG BEGIN_STMT
  418. # DEBUG pxEventBits => xEventGroup_1(D)
  419. # DEBUG BEGIN_STMT
  420. # DEBUG BEGIN_STMT
  421. # DEBUG INLINE_ENTRY ulPortRaiseBASEPRI
  422. # DEBUG BEGIN_STMT
  423. # DEBUG BEGIN_STMT
  424. __asm__ __volatile__(" mrs %0, basepri
  425. mov %1, %2
  426. msr basepri, %1
  427. isb
  428. dsb
  429. " : "=r" ulOriginalBASEPRI_4, "=r" ulNewBASEPRI_5 : "i" 16 : "memory");
  430. # DEBUG ulNewBASEPRI => ulNewBASEPRI_5
  431. # DEBUG ulOriginalBASEPRI => ulOriginalBASEPRI_4
  432. # DEBUG BEGIN_STMT
  433. # DEBUG ulNewBASEPRI => NULL
  434. # DEBUG ulOriginalBASEPRI => NULL
  435. # DEBUG uxSavedInterruptStatus => ulOriginalBASEPRI_4
  436. # DEBUG BEGIN_STMT
  437. uxReturn_3 = MEM[(const struct EventGroup_t *)xEventGroup_1(D)].uxEventBits;
  438. # DEBUG uxReturn => uxReturn_3
  439. # DEBUG BEGIN_STMT
  440. # DEBUG ulNewMaskValue => ulOriginalBASEPRI_4
  441. # DEBUG INLINE_ENTRY vPortSetBASEPRI
  442. # DEBUG BEGIN_STMT
  443. __asm__ __volatile__(" msr basepri, %0 " : : "r" ulOriginalBASEPRI_4 : "memory");
  444. # DEBUG ulNewMaskValue => NULL
  445. # DEBUG BEGIN_STMT
  446. return uxReturn_3;
  447. }
  448. xEventGroupClearBitsFromISR (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToClear)
  449. {
  450. BaseType_t xReturn;
  451. <bb 2> [local count: 1073741824]:
  452. # DEBUG BEGIN_STMT
  453. # DEBUG BEGIN_STMT
  454. # DEBUG BEGIN_STMT
  455. xReturn_5 = xTimerPendFunctionCallFromISR (vEventGroupClearBitsCallback, xEventGroup_2(D), uxBitsToClear_3(D), 0B);
  456. # DEBUG xReturn => xReturn_5
  457. # DEBUG BEGIN_STMT
  458. return xReturn_5;
  459. }
  460. xEventGroupClearBits (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToClear)
  461. {
  462. EventBits_t D.6607;
  463. uint32_t ulNewBASEPRI;
  464. uint32_t ulNewBASEPRI;
  465. long unsigned int _1;
  466. <bb 2> [local count: 228942]:
  467. # DEBUG BEGIN_STMT
  468. # DEBUG pxEventBits => xEventGroup_3(D)
  469. # DEBUG BEGIN_STMT
  470. # DEBUG BEGIN_STMT
  471. if (xEventGroup_3(D) == 0B)
  472. goto <bb 3>; [30.00%]
  473. else
  474. goto <bb 5>; [70.00%]
  475. <bb 3> [local count: 68683]:
  476. # DEBUG BEGIN_STMT
  477. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  478. # DEBUG BEGIN_STMT
  479. # DEBUG BEGIN_STMT
  480. __asm__ __volatile__(" mov %0, %1
  481. msr basepri, %0
  482. isb
  483. dsb
  484. " : "=r" ulNewBASEPRI_7 : "i" 16 : "memory");
  485. # DEBUG ulNewBASEPRI => ulNewBASEPRI_7
  486. <bb 4> [local count: 686828460]:
  487. # DEBUG ulNewBASEPRI => NULL
  488. # DEBUG BEGIN_STMT
  489. # DEBUG BEGIN_STMT
  490. # DEBUG BEGIN_STMT
  491. <bb 9> [local count: 686828460]:
  492. goto <bb 4>; [100.00%]
  493. <bb 5> [local count: 160260]:
  494. # DEBUG BEGIN_STMT
  495. # DEBUG BEGIN_STMT
  496. _1 = uxBitsToClear_5(D) & 4278190080;
  497. if (_1 != 0)
  498. goto <bb 6>; [67.00%]
  499. else
  500. goto <bb 8>; [33.00%]
  501. <bb 6> [local count: 107374]:
  502. # DEBUG BEGIN_STMT
  503. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  504. # DEBUG BEGIN_STMT
  505. # DEBUG BEGIN_STMT
  506. __asm__ __volatile__(" mov %0, %1
  507. msr basepri, %0
  508. isb
  509. dsb
  510. " : "=r" ulNewBASEPRI_8 : "i" 16 : "memory");
  511. # DEBUG ulNewBASEPRI => ulNewBASEPRI_8
  512. <bb 7> [local count: 1073741824]:
  513. # DEBUG ulNewBASEPRI => NULL
  514. # DEBUG BEGIN_STMT
  515. # DEBUG BEGIN_STMT
  516. # DEBUG BEGIN_STMT
  517. <bb 10> [local count: 1073741824]:
  518. goto <bb 7>; [100.00%]
  519. <bb 8> [local count: 52886]:
  520. _2 = xEventGroupClearBits.part.0 (xEventGroup_3(D), uxBitsToClear_5(D));
  521. return _2;
  522. }
  523. xEventGroupWaitBits (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToWaitFor, const BaseType_t xClearOnExit, const BaseType_t xWaitForAllBits, TickType_t xTicksToWait)
  524. {
  525. uint32_t ulNewBASEPRI;
  526. uint32_t ulNewBASEPRI;
  527. uint32_t ulNewBASEPRI;
  528. uint32_t ulNewBASEPRI;
  529. const EventBits_t uxCurrentEventBits;
  530. BaseType_t xAlreadyYielded;
  531. BaseType_t xWaitConditionMet;
  532. EventBits_t uxControlBits;
  533. EventBits_t uxReturn;
  534. long unsigned int _1;
  535. long int _2;
  536. long unsigned int _3;
  537. long unsigned int _4;
  538. struct List_t * _5;
  539. long unsigned int _6;
  540. long unsigned int _7;
  541. long int _8;
  542. long unsigned int _9;
  543. long unsigned int _10;
  544. <bb 2> [local count: 306783]:
  545. # DEBUG BEGIN_STMT
  546. # DEBUG pxEventBits => xEventGroup_22(D)
  547. # DEBUG BEGIN_STMT
  548. # DEBUG uxControlBits => 0
  549. # DEBUG BEGIN_STMT
  550. # DEBUG BEGIN_STMT
  551. # DEBUG xTimeoutOccurred => 0
  552. # DEBUG BEGIN_STMT
  553. if (xEventGroup_22(D) == 0B)
  554. goto <bb 3>; [30.00%]
  555. else
  556. goto <bb 5>; [70.00%]
  557. <bb 3> [local count: 92035]:
  558. # DEBUG BEGIN_STMT
  559. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  560. # DEBUG BEGIN_STMT
  561. # DEBUG BEGIN_STMT
  562. __asm__ __volatile__(" mov %0, %1
  563. msr basepri, %0
  564. isb
  565. dsb
  566. " : "=r" ulNewBASEPRI_45 : "i" 16 : "memory");
  567. # DEBUG ulNewBASEPRI => ulNewBASEPRI_45
  568. <bb 4> [local count: 920350133]:
  569. # DEBUG ulNewBASEPRI => NULL
  570. # DEBUG BEGIN_STMT
  571. # DEBUG BEGIN_STMT
  572. # DEBUG BEGIN_STMT
  573. <bb 34> [local count: 920350133]:
  574. goto <bb 4>; [100.00%]
  575. <bb 5> [local count: 214748]:
  576. # DEBUG BEGIN_STMT
  577. # DEBUG BEGIN_STMT
  578. _1 = uxBitsToWaitFor_23(D) & 4278190080;
  579. if (_1 != 0)
  580. goto <bb 6>; [50.00%]
  581. else
  582. goto <bb 8>; [50.00%]
  583. <bb 6> [local count: 107374]:
  584. # DEBUG BEGIN_STMT
  585. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  586. # DEBUG BEGIN_STMT
  587. # DEBUG BEGIN_STMT
  588. __asm__ __volatile__(" mov %0, %1
  589. msr basepri, %0
  590. isb
  591. dsb
  592. " : "=r" ulNewBASEPRI_30 : "i" 16 : "memory");
  593. # DEBUG ulNewBASEPRI => ulNewBASEPRI_30
  594. <bb 7> [local count: 1073741823]:
  595. # DEBUG ulNewBASEPRI => NULL
  596. # DEBUG BEGIN_STMT
  597. # DEBUG BEGIN_STMT
  598. # DEBUG BEGIN_STMT
  599. <bb 35> [local count: 1073741824]:
  600. goto <bb 7>; [100.00%]
  601. <bb 8> [local count: 107374]:
  602. # DEBUG BEGIN_STMT
  603. # DEBUG BEGIN_STMT
  604. if (uxBitsToWaitFor_23(D) == 0)
  605. goto <bb 9>; [67.00%]
  606. else
  607. goto <bb 11>; [33.00%]
  608. <bb 9> [local count: 71941]:
  609. # DEBUG BEGIN_STMT
  610. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  611. # DEBUG BEGIN_STMT
  612. # DEBUG BEGIN_STMT
  613. __asm__ __volatile__(" mov %0, %1
  614. msr basepri, %0
  615. isb
  616. dsb
  617. " : "=r" ulNewBASEPRI_49 : "i" 16 : "memory");
  618. # DEBUG ulNewBASEPRI => ulNewBASEPRI_49
  619. <bb 10> [local count: 719407021]:
  620. # DEBUG ulNewBASEPRI => NULL
  621. # DEBUG BEGIN_STMT
  622. # DEBUG BEGIN_STMT
  623. # DEBUG BEGIN_STMT
  624. <bb 36> [local count: 719407021]:
  625. goto <bb 10>; [100.00%]
  626. <bb 11> [local count: 35433]:
  627. # DEBUG BEGIN_STMT
  628. # DEBUG BEGIN_STMT
  629. _2 = xTaskGetSchedulerState ();
  630. if (_2 != 0)
  631. goto <bb 15>; [33.00%]
  632. else
  633. goto <bb 12>; [67.00%]
  634. <bb 12> [local count: 23740]:
  635. if (xTicksToWait_26(D) == 0)
  636. goto <bb 15>; [50.00%]
  637. else
  638. goto <bb 13>; [50.00%]
  639. <bb 13> [local count: 11870]:
  640. # DEBUG BEGIN_STMT
  641. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  642. # DEBUG BEGIN_STMT
  643. # DEBUG BEGIN_STMT
  644. __asm__ __volatile__(" mov %0, %1
  645. msr basepri, %0
  646. isb
  647. dsb
  648. " : "=r" ulNewBASEPRI_50 : "i" 16 : "memory");
  649. # DEBUG ulNewBASEPRI => ulNewBASEPRI_50
  650. <bb 14> [local count: 118702158]:
  651. # DEBUG ulNewBASEPRI => NULL
  652. # DEBUG BEGIN_STMT
  653. # DEBUG BEGIN_STMT
  654. # DEBUG BEGIN_STMT
  655. <bb 37> [local count: 118702158]:
  656. goto <bb 14>; [100.00%]
  657. <bb 15> [local count: 23563]:
  658. # DEBUG BEGIN_STMT
  659. # DEBUG BEGIN_STMT
  660. vTaskSuspendAll ();
  661. # DEBUG BEGIN_STMT
  662. uxCurrentEventBits_28 = MEM[(struct EventGroup_t *)xEventGroup_22(D)].uxEventBits;
  663. # DEBUG uxCurrentEventBits => uxCurrentEventBits_28
  664. # DEBUG BEGIN_STMT
  665. xWaitConditionMet_31 = prvTestWaitCondition (uxCurrentEventBits_28, uxBitsToWaitFor_23(D), xWaitForAllBits_29(D));
  666. # DEBUG xWaitConditionMet => xWaitConditionMet_31
  667. # DEBUG BEGIN_STMT
  668. if (xWaitConditionMet_31 != 0)
  669. goto <bb 16>; [50.00%]
  670. else
  671. goto <bb 18>; [50.00%]
  672. <bb 16> [local count: 11782]:
  673. # DEBUG BEGIN_STMT
  674. # DEBUG uxReturn => uxCurrentEventBits_28
  675. # DEBUG BEGIN_STMT
  676. # DEBUG xTicksToWait => 0
  677. # DEBUG BEGIN_STMT
  678. if (xClearOnExit_32(D) != 0)
  679. goto <bb 17>; [50.00%]
  680. else
  681. goto <bb 24>; [50.00%]
  682. <bb 17> [local count: 5891]:
  683. # DEBUG BEGIN_STMT
  684. _3 = ~uxBitsToWaitFor_23(D);
  685. _4 = _3 & uxCurrentEventBits_28;
  686. MEM[(struct EventGroup_t *)xEventGroup_22(D)].uxEventBits = _4;
  687. goto <bb 24>; [100.00%]
  688. <bb 18> [local count: 11782]:
  689. # DEBUG BEGIN_STMT
  690. if (xTicksToWait_26(D) == 0)
  691. goto <bb 24>; [50.00%]
  692. else
  693. goto <bb 19>; [50.00%]
  694. <bb 19> [local count: 5891]:
  695. # DEBUG BEGIN_STMT
  696. if (xClearOnExit_32(D) != 0)
  697. goto <bb 20>; [50.00%]
  698. else
  699. goto <bb 21>; [50.00%]
  700. <bb 20> [local count: 2945]:
  701. # DEBUG BEGIN_STMT
  702. # DEBUG uxControlBits => 16777216
  703. <bb 21> [local count: 5891]:
  704. # uxControlBits_15 = PHI <0(19), 16777216(20)>
  705. # DEBUG uxControlBits => uxControlBits_15
  706. # DEBUG BEGIN_STMT
  707. # DEBUG BEGIN_STMT
  708. if (xWaitForAllBits_29(D) != 0)
  709. goto <bb 22>; [50.00%]
  710. else
  711. goto <bb 23>; [50.00%]
  712. <bb 22> [local count: 2945]:
  713. # DEBUG BEGIN_STMT
  714. uxControlBits_33 = uxControlBits_15 | 67108864;
  715. # DEBUG uxControlBits => uxControlBits_33
  716. <bb 23> [local count: 5891]:
  717. # uxControlBits_16 = PHI <uxControlBits_15(21), uxControlBits_33(22)>
  718. # DEBUG uxControlBits => uxControlBits_16
  719. # DEBUG BEGIN_STMT
  720. # DEBUG BEGIN_STMT
  721. _5 = &MEM[(struct EventGroup_t *)xEventGroup_22(D)].xTasksWaitingForBits;
  722. _6 = uxControlBits_16 | uxBitsToWaitFor_23(D);
  723. vTaskPlaceOnUnorderedEventList (_5, _6, xTicksToWait_26(D));
  724. # DEBUG BEGIN_STMT
  725. # DEBUG uxReturn => 0
  726. <bb 24> [local count: 23563]:
  727. # xTicksToWait_11 = PHI <0(17), xTicksToWait_26(D)(18), xTicksToWait_26(D)(23), 0(16)>
  728. # uxReturn_12 = PHI <uxCurrentEventBits_28(17), uxCurrentEventBits_28(18), 0(23), uxCurrentEventBits_28(16)>
  729. # DEBUG xTimeoutOccurred => NULL
  730. # DEBUG uxReturn => uxReturn_12
  731. # DEBUG xTicksToWait => xTicksToWait_11
  732. # DEBUG BEGIN_STMT
  733. # DEBUG BEGIN_STMT
  734. xAlreadyYielded_37 = xTaskResumeAll ();
  735. # DEBUG xAlreadyYielded => xAlreadyYielded_37
  736. # DEBUG BEGIN_STMT
  737. if (xTicksToWait_11 != 0)
  738. goto <bb 25>; [50.00%]
  739. else
  740. goto <bb 33>; [50.00%]
  741. <bb 25> [local count: 11782]:
  742. # DEBUG BEGIN_STMT
  743. if (xAlreadyYielded_37 == 0)
  744. goto <bb 26>; [50.00%]
  745. else
  746. goto <bb 27>; [50.00%]
  747. <bb 26> [local count: 5891]:
  748. # DEBUG BEGIN_STMT
  749. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  750. # DEBUG BEGIN_STMT
  751. __asm__ __volatile__("dsb" : : : "memory");
  752. # DEBUG BEGIN_STMT
  753. __asm__ __volatile__("isb");
  754. # DEBUG BEGIN_STMT
  755. <bb 27> [local count: 11782]:
  756. # DEBUG BEGIN_STMT
  757. # DEBUG BEGIN_STMT
  758. uxReturn_42 = uxTaskResetEventItemValue ();
  759. # DEBUG uxReturn => uxReturn_42
  760. # DEBUG BEGIN_STMT
  761. _7 = uxReturn_42 & 33554432;
  762. if (_7 == 0)
  763. goto <bb 28>; [33.00%]
  764. else
  765. goto <bb 32>; [67.00%]
  766. <bb 28> [local count: 3888]:
  767. # DEBUG BEGIN_STMT
  768. vPortEnterCritical ();
  769. # DEBUG BEGIN_STMT
  770. uxReturn_44 = MEM[(struct EventGroup_t *)xEventGroup_22(D)].uxEventBits;
  771. # DEBUG uxReturn => uxReturn_44
  772. # DEBUG BEGIN_STMT
  773. _8 = prvTestWaitCondition (uxReturn_44, uxBitsToWaitFor_23(D), xWaitForAllBits_29(D));
  774. if (_8 != 0)
  775. goto <bb 29>; [50.00%]
  776. else
  777. goto <bb 31>; [50.00%]
  778. <bb 29> [local count: 1944]:
  779. # DEBUG BEGIN_STMT
  780. if (xClearOnExit_32(D) != 0)
  781. goto <bb 30>; [50.00%]
  782. else
  783. goto <bb 31>; [50.00%]
  784. <bb 30> [local count: 972]:
  785. # DEBUG BEGIN_STMT
  786. _9 = ~uxBitsToWaitFor_23(D);
  787. _10 = _9 & uxReturn_44;
  788. MEM[(struct EventGroup_t *)xEventGroup_22(D)].uxEventBits = _10;
  789. <bb 31> [local count: 3888]:
  790. # DEBUG BEGIN_STMT
  791. # DEBUG BEGIN_STMT
  792. # DEBUG xTimeoutOccurred => 1
  793. # DEBUG BEGIN_STMT
  794. vPortExitCritical ();
  795. <bb 32> [local count: 11782]:
  796. # uxReturn_13 = PHI <uxReturn_42(27), uxReturn_44(31)>
  797. # DEBUG uxReturn => uxReturn_13
  798. # DEBUG BEGIN_STMT
  799. # DEBUG BEGIN_STMT
  800. uxReturn_48 = uxReturn_13 & 16777215;
  801. # DEBUG uxReturn => uxReturn_48
  802. <bb 33> [local count: 23563]:
  803. # uxReturn_14 = PHI <uxReturn_12(24), uxReturn_48(32)>
  804. # DEBUG uxReturn => uxReturn_14
  805. # DEBUG BEGIN_STMT
  806. # DEBUG BEGIN_STMT
  807. # DEBUG BEGIN_STMT
  808. return uxReturn_14;
  809. }
  810. xEventGroupSync (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToSet, const EventBits_t uxBitsToWaitFor, TickType_t xTicksToWait)
  811. {
  812. uint32_t ulNewBASEPRI;
  813. uint32_t ulNewBASEPRI;
  814. uint32_t ulNewBASEPRI;
  815. BaseType_t xAlreadyYielded;
  816. EventBits_t uxReturn;
  817. EventBits_t uxOriginalBitValue;
  818. long unsigned int _1;
  819. long int _2;
  820. long unsigned int _3;
  821. long unsigned int _4;
  822. long unsigned int _5;
  823. long unsigned int _6;
  824. long unsigned int _7;
  825. struct List_t * _8;
  826. long unsigned int _9;
  827. long unsigned int _10;
  828. long unsigned int _11;
  829. long unsigned int _12;
  830. long unsigned int _13;
  831. <bb 2> [local count: 214748]:
  832. # DEBUG BEGIN_STMT
  833. # DEBUG BEGIN_STMT
  834. # DEBUG pxEventBits => xEventGroup_23(D)
  835. # DEBUG BEGIN_STMT
  836. # DEBUG BEGIN_STMT
  837. # DEBUG xTimeoutOccurred => 0
  838. # DEBUG BEGIN_STMT
  839. _1 = uxBitsToWaitFor_24(D) & 4278190080;
  840. if (_1 != 0)
  841. goto <bb 3>; [50.00%]
  842. else
  843. goto <bb 5>; [50.00%]
  844. <bb 3> [local count: 107374]:
  845. # DEBUG BEGIN_STMT
  846. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  847. # DEBUG BEGIN_STMT
  848. # DEBUG BEGIN_STMT
  849. __asm__ __volatile__(" mov %0, %1
  850. msr basepri, %0
  851. isb
  852. dsb
  853. " : "=r" ulNewBASEPRI_47 : "i" 16 : "memory");
  854. # DEBUG ulNewBASEPRI => ulNewBASEPRI_47
  855. <bb 4> [local count: 1073741824]:
  856. # DEBUG ulNewBASEPRI => NULL
  857. # DEBUG BEGIN_STMT
  858. # DEBUG BEGIN_STMT
  859. # DEBUG BEGIN_STMT
  860. <bb 26> [local count: 1073741824]:
  861. goto <bb 4>; [100.00%]
  862. <bb 5> [local count: 107374]:
  863. # DEBUG BEGIN_STMT
  864. # DEBUG BEGIN_STMT
  865. if (uxBitsToWaitFor_24(D) == 0)
  866. goto <bb 6>; [67.00%]
  867. else
  868. goto <bb 8>; [33.00%]
  869. <bb 6> [local count: 71941]:
  870. # DEBUG BEGIN_STMT
  871. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  872. # DEBUG BEGIN_STMT
  873. # DEBUG BEGIN_STMT
  874. __asm__ __volatile__(" mov %0, %1
  875. msr basepri, %0
  876. isb
  877. dsb
  878. " : "=r" ulNewBASEPRI_48 : "i" 16 : "memory");
  879. # DEBUG ulNewBASEPRI => ulNewBASEPRI_48
  880. <bb 7> [local count: 719407023]:
  881. # DEBUG ulNewBASEPRI => NULL
  882. # DEBUG BEGIN_STMT
  883. # DEBUG BEGIN_STMT
  884. # DEBUG BEGIN_STMT
  885. <bb 27> [local count: 719407023]:
  886. goto <bb 7>; [100.00%]
  887. <bb 8> [local count: 35433]:
  888. # DEBUG BEGIN_STMT
  889. # DEBUG BEGIN_STMT
  890. _2 = xTaskGetSchedulerState ();
  891. if (_2 != 0)
  892. goto <bb 12>; [33.00%]
  893. else
  894. goto <bb 9>; [67.00%]
  895. <bb 9> [local count: 23740]:
  896. if (xTicksToWait_27(D) == 0)
  897. goto <bb 12>; [50.00%]
  898. else
  899. goto <bb 10>; [50.00%]
  900. <bb 10> [local count: 11870]:
  901. # DEBUG BEGIN_STMT
  902. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  903. # DEBUG BEGIN_STMT
  904. # DEBUG BEGIN_STMT
  905. __asm__ __volatile__(" mov %0, %1
  906. msr basepri, %0
  907. isb
  908. dsb
  909. " : "=r" ulNewBASEPRI_49 : "i" 16 : "memory");
  910. # DEBUG ulNewBASEPRI => ulNewBASEPRI_49
  911. <bb 11> [local count: 118702159]:
  912. # DEBUG ulNewBASEPRI => NULL
  913. # DEBUG BEGIN_STMT
  914. # DEBUG BEGIN_STMT
  915. # DEBUG BEGIN_STMT
  916. <bb 28> [local count: 118702159]:
  917. goto <bb 11>; [100.00%]
  918. <bb 12> [local count: 23563]:
  919. # DEBUG BEGIN_STMT
  920. # DEBUG BEGIN_STMT
  921. vTaskSuspendAll ();
  922. # DEBUG BEGIN_STMT
  923. uxOriginalBitValue_29 = MEM[(struct EventGroup_t *)xEventGroup_23(D)].uxEventBits;
  924. # DEBUG uxOriginalBitValue => uxOriginalBitValue_29
  925. # DEBUG BEGIN_STMT
  926. xEventGroupSetBits (xEventGroup_23(D), uxBitsToSet_30(D));
  927. # DEBUG BEGIN_STMT
  928. _3 = uxOriginalBitValue_29 | uxBitsToSet_30(D);
  929. _4 = _3 & uxBitsToWaitFor_24(D);
  930. if (_4 == uxBitsToWaitFor_24(D))
  931. goto <bb 13>; [34.00%]
  932. else
  933. goto <bb 14>; [66.00%]
  934. <bb 13> [local count: 8011]:
  935. # DEBUG BEGIN_STMT
  936. # DEBUG uxReturn => _3
  937. # DEBUG BEGIN_STMT
  938. _5 = MEM[(struct EventGroup_t *)xEventGroup_23(D)].uxEventBits;
  939. _6 = ~uxBitsToWaitFor_24(D);
  940. _7 = _5 & _6;
  941. MEM[(struct EventGroup_t *)xEventGroup_23(D)].uxEventBits = _7;
  942. # DEBUG BEGIN_STMT
  943. # DEBUG xTicksToWait => 0
  944. goto <bb 17>; [100.00%]
  945. <bb 14> [local count: 15552]:
  946. # DEBUG BEGIN_STMT
  947. if (xTicksToWait_27(D) != 0)
  948. goto <bb 15>; [33.00%]
  949. else
  950. goto <bb 16>; [67.00%]
  951. <bb 15> [local count: 5132]:
  952. # DEBUG BEGIN_STMT
  953. # DEBUG BEGIN_STMT
  954. _8 = &MEM[(struct EventGroup_t *)xEventGroup_23(D)].xTasksWaitingForBits;
  955. _9 = uxBitsToWaitFor_24(D) | 83886080;
  956. vTaskPlaceOnUnorderedEventList (_8, _9, xTicksToWait_27(D));
  957. # DEBUG BEGIN_STMT
  958. # DEBUG uxReturn => 0
  959. goto <bb 17>; [100.00%]
  960. <bb 16> [local count: 10420]:
  961. # DEBUG BEGIN_STMT
  962. uxReturn_32 = MEM[(struct EventGroup_t *)xEventGroup_23(D)].uxEventBits;
  963. # DEBUG uxReturn => uxReturn_32
  964. # DEBUG BEGIN_STMT
  965. # DEBUG xTimeoutOccurred => 1
  966. <bb 17> [local count: 23563]:
  967. # xTicksToWait_14 = PHI <0(13), xTicksToWait_27(D)(15), 0(16)>
  968. # uxReturn_15 = PHI <_3(13), 0(15), uxReturn_32(16)>
  969. # DEBUG uxReturn => uxReturn_15
  970. # DEBUG xTicksToWait => xTicksToWait_14
  971. # DEBUG BEGIN_STMT
  972. xAlreadyYielded_36 = xTaskResumeAll ();
  973. # DEBUG xAlreadyYielded => xAlreadyYielded_36
  974. # DEBUG BEGIN_STMT
  975. if (xTicksToWait_14 != 0)
  976. goto <bb 18>; [50.00%]
  977. else
  978. goto <bb 25>; [50.00%]
  979. <bb 18> [local count: 11782]:
  980. # DEBUG BEGIN_STMT
  981. if (xAlreadyYielded_36 == 0)
  982. goto <bb 19>; [50.00%]
  983. else
  984. goto <bb 20>; [50.00%]
  985. <bb 19> [local count: 5891]:
  986. # DEBUG BEGIN_STMT
  987. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  988. # DEBUG BEGIN_STMT
  989. __asm__ __volatile__("dsb" : : : "memory");
  990. # DEBUG BEGIN_STMT
  991. __asm__ __volatile__("isb");
  992. # DEBUG BEGIN_STMT
  993. <bb 20> [local count: 11782]:
  994. # DEBUG BEGIN_STMT
  995. # DEBUG BEGIN_STMT
  996. uxReturn_41 = uxTaskResetEventItemValue ();
  997. # DEBUG uxReturn => uxReturn_41
  998. # DEBUG BEGIN_STMT
  999. _10 = uxReturn_41 & 33554432;
  1000. if (_10 == 0)
  1001. goto <bb 21>; [33.00%]
  1002. else
  1003. goto <bb 24>; [67.00%]
  1004. <bb 21> [local count: 3888]:
  1005. # DEBUG BEGIN_STMT
  1006. vPortEnterCritical ();
  1007. # DEBUG BEGIN_STMT
  1008. uxReturn_43 = MEM[(struct EventGroup_t *)xEventGroup_23(D)].uxEventBits;
  1009. # DEBUG uxReturn => uxReturn_43
  1010. # DEBUG BEGIN_STMT
  1011. _11 = uxBitsToWaitFor_24(D) & uxReturn_43;
  1012. if (_11 == uxBitsToWaitFor_24(D))
  1013. goto <bb 22>; [34.00%]
  1014. else
  1015. goto <bb 23>; [66.00%]
  1016. <bb 22> [local count: 1322]:
  1017. # DEBUG BEGIN_STMT
  1018. _12 = ~uxBitsToWaitFor_24(D);
  1019. _13 = _12 & uxReturn_43;
  1020. MEM[(struct EventGroup_t *)xEventGroup_23(D)].uxEventBits = _13;
  1021. <bb 23> [local count: 3888]:
  1022. # DEBUG BEGIN_STMT
  1023. # DEBUG BEGIN_STMT
  1024. vPortExitCritical ();
  1025. # DEBUG BEGIN_STMT
  1026. # DEBUG xTimeoutOccurred => 1
  1027. <bb 24> [local count: 11782]:
  1028. # uxReturn_16 = PHI <uxReturn_41(20), uxReturn_43(23)>
  1029. # DEBUG uxReturn => uxReturn_16
  1030. # DEBUG BEGIN_STMT
  1031. # DEBUG BEGIN_STMT
  1032. uxReturn_46 = uxReturn_16 & 16777215;
  1033. # DEBUG uxReturn => uxReturn_46
  1034. <bb 25> [local count: 23563]:
  1035. # uxReturn_17 = PHI <uxReturn_15(17), uxReturn_46(24)>
  1036. # DEBUG uxReturn => uxReturn_17
  1037. # DEBUG BEGIN_STMT
  1038. # DEBUG BEGIN_STMT
  1039. # DEBUG BEGIN_STMT
  1040. return uxReturn_17;
  1041. }
  1042. xEventGroupCreate ()
  1043. {
  1044. struct EventGroup_t * pxEventBits;
  1045. struct List_t * _1;
  1046. <bb 2> [local count: 1073741824]:
  1047. # DEBUG BEGIN_STMT
  1048. # DEBUG BEGIN_STMT
  1049. pxEventBits_5 = pvPortMalloc (28);
  1050. # DEBUG pxEventBits => pxEventBits_5
  1051. # DEBUG BEGIN_STMT
  1052. if (pxEventBits_5 != 0B)
  1053. goto <bb 3>; [53.47%]
  1054. else
  1055. goto <bb 4>; [46.53%]
  1056. <bb 3> [local count: 574129754]:
  1057. # DEBUG BEGIN_STMT
  1058. pxEventBits_5->uxEventBits = 0;
  1059. # DEBUG BEGIN_STMT
  1060. _1 = &pxEventBits_5->xTasksWaitingForBits;
  1061. vListInitialise (_1);
  1062. # DEBUG BEGIN_STMT
  1063. <bb 4> [local count: 1073741824]:
  1064. # DEBUG BEGIN_STMT
  1065. # DEBUG BEGIN_STMT
  1066. return pxEventBits_5;
  1067. }