queue.c.070i.icf 104 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246
  1. Parsed function:vQueueUnregisterQueue.part.0
  2. Parsed function:xQueueGenericReset.part.0
  3. Parsed function:vQueueWaitForMessageRestricted
  4. Parsed function:vQueueUnregisterQueue
  5. Parsed function:pcQueueGetName
  6. Parsed function:vQueueAddToRegistry
  7. Parsed function:xQueueIsQueueFullFromISR
  8. Parsed function:prvIsQueueFull
  9. Parsed function:xQueueIsQueueEmptyFromISR
  10. Parsed function:prvIsQueueEmpty
  11. Parsed function:prvUnlockQueue
  12. Parsed function:prvCopyDataFromQueue
  13. Parsed function:prvCopyDataToQueue
  14. Parsed function:prvGetDisinheritPriorityAfterTimeout
  15. Parsed function:ucQueueGetQueueType
  16. Parsed function:vQueueSetQueueNumber
  17. Parsed function:uxQueueGetQueueNumber
  18. Parsed function:vQueueDelete
  19. Parsed function:uxQueueMessagesWaitingFromISR
  20. Parsed function:uxQueueSpacesAvailable
  21. Parsed function:uxQueueMessagesWaiting
  22. Parsed function:xQueuePeekFromISR
  23. Parsed function:xQueueReceiveFromISR
  24. Parsed function:xQueuePeek
  25. Parsed function:xQueueSemaphoreTake
  26. Parsed function:xQueueReceive
  27. Parsed function:xQueueGiveFromISR
  28. Parsed function:xQueueGenericSendFromISR
  29. Parsed function:xQueueGenericSend
  30. Parsed function:xQueueCreateCountingSemaphore
  31. Parsed function:xQueueTakeMutexRecursive
  32. Parsed function:xQueueGiveMutexRecursive
  33. Parsed function:xQueueGetMutexHolderFromISR
  34. Parsed function:xQueueGetMutexHolder
  35. Parsed function:xQueueCreateMutex
  36. Parsed function:prvInitialiseMutex
  37. Parsed function:prvInitialiseNewQueue
  38. Parsed function:xQueueGenericCreate
  39. Parsed function:xQueueGenericReset
  40. Dump after hash based groups
  41. Congruence classes: 39 (unique hash values: 39), with total: 39 items
  42. Class size histogram [num of members]: number of classe number of classess
  43. [1]: 39 classes
  44. Dump after WPA based types groups
  45. Congruence classes: 39 (unique hash values: 39), with total: 39 items
  46. Class size histogram [num of members]: number of classe number of classess
  47. [1]: 39 classes
  48. Worklist has been filled with: 15
  49. Address reference subdivision created: 0 new classes.
  50. Dump after callgraph-based congruence reduction
  51. Congruence classes: 39 (unique hash values: 39), with total: 39 items
  52. Class size histogram [num of members]: number of classe number of classess
  53. [1]: 39 classes
  54. Init called for 0 items (0.00%).
  55. Dump after full equality comparison of groups
  56. Congruence classes: 39 (unique hash values: 39), with total: 39 items
  57. Class size histogram [num of members]: number of classe number of classess
  58. [1]: 39 classes
  59. Worklist has been filled with: 15
  60. Address reference subdivision created: 0 new classes.
  61. Congruence classes: 39 (unique hash values: 39), with total: 39 items
  62. Class size histogram [num of members]: number of classe number of classess
  63. [1]: 39 classes
  64. Item count: 39
  65. Congruent classes before: 39, after: 39
  66. Average class size before: 1.00, after: 1.00
  67. Average non-singular class size: 0.00, count: 0
  68. Equal symbols: 0
  69. Fraction of visited symbols: 0.00%
  70. vQueueUnregisterQueue.part.0 ()
  71. {
  72. UBaseType_t ux;
  73. uint32_t ulNewBASEPRI;
  74. struct QueueDefinition * xQueue;
  75. <bb 5> [local count: 107374]:
  76. # DEBUG D#2 s=> xQueue
  77. # DEBUG xQueue => D#2
  78. <bb 2> [local count: 107374]:
  79. # DEBUG BEGIN_STMT
  80. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  81. # DEBUG BEGIN_STMT
  82. # DEBUG BEGIN_STMT
  83. __asm__ __volatile__(" mov %0, %1
  84. msr basepri, %0
  85. isb
  86. dsb
  87. " : "=r" ulNewBASEPRI_1 : "i" 16 : "memory");
  88. # DEBUG ulNewBASEPRI => ulNewBASEPRI_1
  89. <bb 3> [local count: 1073741824]:
  90. # DEBUG ulNewBASEPRI => NULL
  91. # DEBUG BEGIN_STMT
  92. # DEBUG BEGIN_STMT
  93. # DEBUG BEGIN_STMT
  94. <bb 4> [local count: 1073741824]:
  95. goto <bb 3>; [100.00%]
  96. }
  97. xQueueGenericReset.part.0 (struct QueueDefinition * xQueue, BaseType_t xNewQueue)
  98. {
  99. BaseType_t xReturn;
  100. struct Queue_t * const pxQueue;
  101. uint32_t ulNewBASEPRI;
  102. uint32_t ulNewBASEPRI;
  103. int8_t * _2;
  104. long unsigned int _3;
  105. long unsigned int _4;
  106. long unsigned int _5;
  107. int8_t * _6;
  108. long unsigned int _7;
  109. long unsigned int _8;
  110. int8_t * _9;
  111. long unsigned int _11;
  112. struct List_t * _12;
  113. long int _13;
  114. struct List_t * _14;
  115. struct List_t * _15;
  116. <bb 8> [local count: 1073741824]:
  117. <bb 2> [local count: 1073741824]:
  118. # DEBUG BEGIN_STMT
  119. vPortEnterCritical ();
  120. # DEBUG BEGIN_STMT
  121. _2 = MEM[(struct Queue_t *)xQueue_1(D)].pcHead;
  122. _3 = MEM[(struct Queue_t *)xQueue_1(D)].uxLength;
  123. _4 = MEM[(struct Queue_t *)xQueue_1(D)].uxItemSize;
  124. _5 = _3 * _4;
  125. _6 = _2 + _5;
  126. MEM[(struct Queue_t *)xQueue_1(D)].u.xQueue.pcTail = _6;
  127. # DEBUG BEGIN_STMT
  128. MEM[(struct Queue_t *)xQueue_1(D)].uxMessagesWaiting ={v} 0;
  129. # DEBUG BEGIN_STMT
  130. MEM[(struct Queue_t *)xQueue_1(D)].pcWriteTo = _2;
  131. # DEBUG BEGIN_STMT
  132. _7 = _3 + 4294967295;
  133. _8 = _4 * _7;
  134. _9 = _2 + _8;
  135. MEM[(struct Queue_t *)xQueue_1(D)].u.xQueue.pcReadFrom = _9;
  136. # DEBUG BEGIN_STMT
  137. MEM[(struct Queue_t *)xQueue_1(D)].cRxLock ={v} -1;
  138. # DEBUG BEGIN_STMT
  139. MEM[(struct Queue_t *)xQueue_1(D)].cTxLock ={v} -1;
  140. # DEBUG BEGIN_STMT
  141. if (xNewQueue_10(D) == 0)
  142. goto <bb 3>; [67.00%]
  143. else
  144. goto <bb 6>; [33.00%]
  145. <bb 3> [local count: 719407023]:
  146. # DEBUG BEGIN_STMT
  147. _11 ={v} MEM[(struct Queue_t *)xQueue_1(D)].xTasksWaitingToSend.uxNumberOfItems;
  148. if (_11 != 0)
  149. goto <bb 4>; [33.00%]
  150. else
  151. goto <bb 7>; [67.00%]
  152. <bb 4> [local count: 237404317]:
  153. # DEBUG BEGIN_STMT
  154. _12 = &MEM[(struct Queue_t *)xQueue_1(D)].xTasksWaitingToSend;
  155. _13 = xTaskRemoveFromEventList (_12);
  156. if (_13 != 0)
  157. goto <bb 5>; [50.00%]
  158. else
  159. goto <bb 7>; [50.00%]
  160. <bb 5> [local count: 118702159]:
  161. # DEBUG BEGIN_STMT
  162. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  163. # DEBUG BEGIN_STMT
  164. __asm__ __volatile__("dsb" : : : "memory");
  165. # DEBUG BEGIN_STMT
  166. __asm__ __volatile__("isb");
  167. # DEBUG BEGIN_STMT
  168. goto <bb 7>; [100.00%]
  169. <bb 6> [local count: 354334802]:
  170. # DEBUG BEGIN_STMT
  171. _14 = &MEM[(struct Queue_t *)xQueue_1(D)].xTasksWaitingToSend;
  172. vListInitialise (_14);
  173. # DEBUG BEGIN_STMT
  174. _15 = &MEM[(struct Queue_t *)xQueue_1(D)].xTasksWaitingToReceive;
  175. vListInitialise (_15);
  176. <bb 7> [local count: 1073741824]:
  177. # DEBUG BEGIN_STMT
  178. vPortExitCritical ();
  179. # DEBUG xReturn => 1
  180. # DEBUG BEGIN_STMT
  181. # DEBUG BEGIN_STMT
  182. # DEBUG BEGIN_STMT
  183. return 1;
  184. }
  185. vQueueWaitForMessageRestricted (struct QueueDefinition * xQueue, TickType_t xTicksToWait, const BaseType_t xWaitIndefinitely)
  186. {
  187. signed char _1;
  188. signed char _2;
  189. long unsigned int _3;
  190. struct List_t * _4;
  191. <bb 2> [local count: 1073741824]:
  192. # DEBUG BEGIN_STMT
  193. # DEBUG pxQueue => xQueue_8(D)
  194. # DEBUG BEGIN_STMT
  195. vPortEnterCritical ();
  196. # DEBUG BEGIN_STMT
  197. _1 ={v} MEM[(struct Queue_t *)xQueue_8(D)].cRxLock;
  198. if (_1 == -1)
  199. goto <bb 3>; [34.00%]
  200. else
  201. goto <bb 4>; [66.00%]
  202. <bb 3> [local count: 365072220]:
  203. # DEBUG BEGIN_STMT
  204. MEM[(struct Queue_t *)xQueue_8(D)].cRxLock ={v} 0;
  205. <bb 4> [local count: 1073741824]:
  206. # DEBUG BEGIN_STMT
  207. _2 ={v} MEM[(struct Queue_t *)xQueue_8(D)].cTxLock;
  208. if (_2 == -1)
  209. goto <bb 5>; [34.00%]
  210. else
  211. goto <bb 6>; [66.00%]
  212. <bb 5> [local count: 365072220]:
  213. # DEBUG BEGIN_STMT
  214. MEM[(struct Queue_t *)xQueue_8(D)].cTxLock ={v} 0;
  215. <bb 6> [local count: 1073741824]:
  216. # DEBUG BEGIN_STMT
  217. vPortExitCritical ();
  218. # DEBUG BEGIN_STMT
  219. _3 ={v} MEM[(struct Queue_t *)xQueue_8(D)].uxMessagesWaiting;
  220. if (_3 == 0)
  221. goto <bb 7>; [33.00%]
  222. else
  223. goto <bb 8>; [67.00%]
  224. <bb 7> [local count: 354334802]:
  225. # DEBUG BEGIN_STMT
  226. _4 = &MEM[(struct Queue_t *)xQueue_8(D)].xTasksWaitingToReceive;
  227. vTaskPlaceOnEventListRestricted (_4, xTicksToWait_14(D), xWaitIndefinitely_15(D));
  228. <bb 8> [local count: 1073741824]:
  229. # DEBUG BEGIN_STMT
  230. # DEBUG BEGIN_STMT
  231. prvUnlockQueue (xQueue_8(D));
  232. return;
  233. }
  234. vQueueUnregisterQueue (struct QueueDefinition * xQueue)
  235. {
  236. UBaseType_t ux;
  237. struct QueueDefinition * _1;
  238. <bb 2> [local count: 357913]:
  239. # DEBUG BEGIN_STMT
  240. # DEBUG BEGIN_STMT
  241. if (xQueue_3(D) == 0B)
  242. goto <bb 3>; [30.00%]
  243. else
  244. goto <bb 9>; [70.00%]
  245. <bb 9> [local count: 250539]:
  246. goto <bb 7>; [100.00%]
  247. <bb 3> [local count: 107374]:
  248. # DEBUG D#1 => xQueue_3(D)
  249. vQueueUnregisterQueue.part.0 ();
  250. <bb 4> [local count: 451483]:
  251. # DEBUG BEGIN_STMT
  252. _1 = xQueueRegistry[ux_2].xHandle;
  253. if (_1 == xQueue_3(D))
  254. goto <bb 5>; [5.50%]
  255. else
  256. goto <bb 6>; [94.50%]
  257. <bb 5> [local count: 24832]:
  258. # ux_4 = PHI <ux_2(4)>
  259. # DEBUG BEGIN_STMT
  260. xQueueRegistry[ux_4].pcQueueName = 0B;
  261. # DEBUG BEGIN_STMT
  262. xQueueRegistry[ux_4].xHandle = 0B;
  263. # DEBUG BEGIN_STMT
  264. goto <bb 8>; [100.00%]
  265. <bb 6> [local count: 426652]:
  266. # DEBUG BEGIN_STMT
  267. # DEBUG BEGIN_STMT
  268. ux_6 = ux_2 + 1;
  269. # DEBUG ux => ux_6
  270. <bb 7> [local count: 677191]:
  271. # ux_2 = PHI <ux_6(6), 0(9)>
  272. # DEBUG ux => ux_2
  273. # DEBUG BEGIN_STMT
  274. if (ux_2 != 2)
  275. goto <bb 4>; [66.67%]
  276. else
  277. goto <bb 8>; [33.33%]
  278. <bb 8> [local count: 250539]:
  279. return;
  280. }
  281. pcQueueGetName (struct QueueDefinition * xQueue)
  282. {
  283. uint32_t ulNewBASEPRI;
  284. const char * pcReturn;
  285. UBaseType_t ux;
  286. struct QueueDefinition * _1;
  287. <bb 2> [local count: 357913]:
  288. # DEBUG BEGIN_STMT
  289. # DEBUG BEGIN_STMT
  290. # DEBUG pcReturn => 0B
  291. # DEBUG BEGIN_STMT
  292. if (xQueue_5(D) == 0B)
  293. goto <bb 3>; [30.00%]
  294. else
  295. goto <bb 10>; [70.00%]
  296. <bb 10> [local count: 250539]:
  297. goto <bb 8>; [100.00%]
  298. <bb 3> [local count: 107374]:
  299. # DEBUG BEGIN_STMT
  300. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  301. # DEBUG BEGIN_STMT
  302. # DEBUG BEGIN_STMT
  303. __asm__ __volatile__(" mov %0, %1
  304. msr basepri, %0
  305. isb
  306. dsb
  307. " : "=r" ulNewBASEPRI_9 : "i" 16 : "memory");
  308. # DEBUG ulNewBASEPRI => ulNewBASEPRI_9
  309. <bb 4> [local count: 1073741824]:
  310. # DEBUG ulNewBASEPRI => NULL
  311. # DEBUG BEGIN_STMT
  312. # DEBUG BEGIN_STMT
  313. # DEBUG BEGIN_STMT
  314. <bb 11> [local count: 1073741824]:
  315. goto <bb 4>; [100.00%]
  316. <bb 5> [local count: 451483]:
  317. # DEBUG BEGIN_STMT
  318. _1 = xQueueRegistry[ux_2].xHandle;
  319. if (_1 == xQueue_5(D))
  320. goto <bb 6>; [5.50%]
  321. else
  322. goto <bb 7>; [94.50%]
  323. <bb 6> [local count: 24832]:
  324. # ux_4 = PHI <ux_2(5)>
  325. # DEBUG BEGIN_STMT
  326. pcReturn_8 = xQueueRegistry[ux_4].pcQueueName;
  327. # DEBUG pcReturn => pcReturn_8
  328. # DEBUG BEGIN_STMT
  329. goto <bb 9>; [100.00%]
  330. <bb 7> [local count: 426652]:
  331. # DEBUG BEGIN_STMT
  332. # DEBUG BEGIN_STMT
  333. ux_7 = ux_2 + 1;
  334. # DEBUG ux => ux_7
  335. <bb 8> [local count: 677191]:
  336. # ux_2 = PHI <ux_7(7), 0(10)>
  337. # DEBUG ux => ux_2
  338. # DEBUG BEGIN_STMT
  339. if (ux_2 != 2)
  340. goto <bb 5>; [66.67%]
  341. else
  342. goto <bb 9>; [33.33%]
  343. <bb 9> [local count: 250539]:
  344. # pcReturn_3 = PHI <pcReturn_8(6), 0B(8)>
  345. # DEBUG pcReturn => pcReturn_3
  346. # DEBUG BEGIN_STMT
  347. return pcReturn_3;
  348. }
  349. vQueueAddToRegistry (struct QueueDefinition * xQueue, const char * pcQueueName)
  350. {
  351. uint32_t ulNewBASEPRI;
  352. struct QueueRegistryItem_t * pxEntryToWrite;
  353. UBaseType_t ux;
  354. struct QueueDefinition * _1;
  355. const char * _2;
  356. <bb 2> [local count: 357913]:
  357. # DEBUG BEGIN_STMT
  358. # DEBUG BEGIN_STMT
  359. if (xQueue_8(D) == 0B)
  360. goto <bb 3>; [30.00%]
  361. else
  362. goto <bb 5>; [70.00%]
  363. <bb 3> [local count: 107374]:
  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_17 : "i" 16 : "memory");
  373. # DEBUG ulNewBASEPRI => ulNewBASEPRI_17
  374. <bb 4> [local count: 1073741824]:
  375. # DEBUG ulNewBASEPRI => NULL
  376. # DEBUG BEGIN_STMT
  377. # DEBUG BEGIN_STMT
  378. # DEBUG BEGIN_STMT
  379. <bb 17> [local count: 1073741824]:
  380. goto <bb 4>; [100.00%]
  381. <bb 5> [local count: 250539]:
  382. # DEBUG BEGIN_STMT
  383. # DEBUG BEGIN_STMT
  384. # DEBUG pxEntryToWrite => 0B
  385. # DEBUG BEGIN_STMT
  386. if (pcQueueName_10(D) != 0B)
  387. goto <bb 16>; [70.00%]
  388. else
  389. goto <bb 15>; [30.00%]
  390. <bb 16> [local count: 175378]:
  391. goto <bb 12>; [100.00%]
  392. <bb 6> [local count: 316038]:
  393. # DEBUG BEGIN_STMT
  394. _1 = xQueueRegistry[ux_3].xHandle;
  395. if (_1 == xQueue_8(D))
  396. goto <bb 7>; [5.50%]
  397. else
  398. goto <bb 8>; [94.50%]
  399. <bb 7> [local count: 17382]:
  400. # ux_9 = PHI <ux_3(6)>
  401. # DEBUG BEGIN_STMT
  402. pxEntryToWrite_14 = &xQueueRegistry[ux_9];
  403. # DEBUG pxEntryToWrite => pxEntryToWrite_14
  404. # DEBUG BEGIN_STMT
  405. goto <bb 13>; [100.00%]
  406. <bb 8> [local count: 298656]:
  407. # DEBUG BEGIN_STMT
  408. if (pxEntryToWrite_5 == 0B)
  409. goto <bb 9>; [30.00%]
  410. else
  411. goto <bb 11>; [70.00%]
  412. <bb 9> [local count: 89597]:
  413. _2 = xQueueRegistry[ux_3].pcQueueName;
  414. if (_2 == 0B)
  415. goto <bb 10>; [30.00%]
  416. else
  417. goto <bb 11>; [70.00%]
  418. <bb 10> [local count: 26879]:
  419. # DEBUG BEGIN_STMT
  420. pxEntryToWrite_12 = &xQueueRegistry[ux_3];
  421. # DEBUG pxEntryToWrite => pxEntryToWrite_12
  422. <bb 11> [local count: 298656]:
  423. # pxEntryToWrite_4 = PHI <pxEntryToWrite_5(8), 0B(9), pxEntryToWrite_12(10)>
  424. # DEBUG pxEntryToWrite => pxEntryToWrite_4
  425. # DEBUG BEGIN_STMT
  426. # DEBUG BEGIN_STMT
  427. ux_13 = ux_3 + 1;
  428. # DEBUG ux => ux_13
  429. <bb 12> [local count: 474034]:
  430. # ux_3 = PHI <ux_13(11), 0(16)>
  431. # pxEntryToWrite_5 = PHI <pxEntryToWrite_4(11), 0B(16)>
  432. # DEBUG pxEntryToWrite => pxEntryToWrite_5
  433. # DEBUG ux => ux_3
  434. # DEBUG BEGIN_STMT
  435. if (ux_3 != 2)
  436. goto <bb 6>; [66.67%]
  437. else
  438. goto <bb 13>; [33.33%]
  439. <bb 13> [local count: 175378]:
  440. # pxEntryToWrite_6 = PHI <pxEntryToWrite_5(12), pxEntryToWrite_14(7)>
  441. # DEBUG pxEntryToWrite => pxEntryToWrite_6
  442. # DEBUG BEGIN_STMT
  443. if (pxEntryToWrite_6 != 0B)
  444. goto <bb 14>; [70.00%]
  445. else
  446. goto <bb 15>; [30.00%]
  447. <bb 14> [local count: 122764]:
  448. # DEBUG BEGIN_STMT
  449. pxEntryToWrite_6->pcQueueName = pcQueueName_10(D);
  450. # DEBUG BEGIN_STMT
  451. pxEntryToWrite_6->xHandle = xQueue_8(D);
  452. <bb 15> [local count: 250539]:
  453. # DEBUG pxEntryToWrite => NULL
  454. # DEBUG BEGIN_STMT
  455. return;
  456. }
  457. xQueueIsQueueFullFromISR (struct QueueDefinition * const xQueue)
  458. {
  459. uint32_t ulNewBASEPRI;
  460. BaseType_t xReturn;
  461. long unsigned int _1;
  462. long unsigned int _2;
  463. <bb 2> [local count: 357913]:
  464. # DEBUG BEGIN_STMT
  465. # DEBUG BEGIN_STMT
  466. # DEBUG pxQueue => xQueue_4(D)
  467. # DEBUG BEGIN_STMT
  468. if (xQueue_4(D) == 0B)
  469. goto <bb 3>; [30.00%]
  470. else
  471. goto <bb 5>; [70.00%]
  472. <bb 3> [local count: 107374]:
  473. # DEBUG BEGIN_STMT
  474. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  475. # DEBUG BEGIN_STMT
  476. # DEBUG BEGIN_STMT
  477. __asm__ __volatile__(" mov %0, %1
  478. msr basepri, %0
  479. isb
  480. dsb
  481. " : "=r" ulNewBASEPRI_6 : "i" 16 : "memory");
  482. # DEBUG ulNewBASEPRI => ulNewBASEPRI_6
  483. <bb 4> [local count: 1073741824]:
  484. # DEBUG ulNewBASEPRI => NULL
  485. # DEBUG BEGIN_STMT
  486. # DEBUG BEGIN_STMT
  487. # DEBUG BEGIN_STMT
  488. <bb 8> [local count: 1073741824]:
  489. goto <bb 4>; [100.00%]
  490. <bb 5> [local count: 250539]:
  491. # DEBUG BEGIN_STMT
  492. # DEBUG BEGIN_STMT
  493. _1 ={v} MEM[(struct Queue_t *)xQueue_4(D)].uxMessagesWaiting;
  494. _2 = MEM[(struct Queue_t *)xQueue_4(D)].uxLength;
  495. if (_1 == _2)
  496. goto <bb 7>; [34.00%]
  497. else
  498. goto <bb 6>; [66.00%]
  499. <bb 6> [local count: 165356]:
  500. # DEBUG BEGIN_STMT
  501. # DEBUG xReturn => 0
  502. <bb 7> [local count: 250539]:
  503. # xReturn_3 = PHI <1(5), 0(6)>
  504. # DEBUG xReturn => xReturn_3
  505. # DEBUG BEGIN_STMT
  506. return xReturn_3;
  507. }
  508. prvIsQueueFull (const struct Queue_t * pxQueue)
  509. {
  510. BaseType_t xReturn;
  511. long unsigned int _1;
  512. long unsigned int _2;
  513. <bb 2> [local count: 1073741824]:
  514. # DEBUG BEGIN_STMT
  515. # DEBUG BEGIN_STMT
  516. vPortEnterCritical ();
  517. # DEBUG BEGIN_STMT
  518. _1 ={v} pxQueue_6(D)->uxMessagesWaiting;
  519. _2 = pxQueue_6(D)->uxLength;
  520. if (_1 == _2)
  521. goto <bb 4>; [34.00%]
  522. else
  523. goto <bb 3>; [66.00%]
  524. <bb 3> [local count: 708669605]:
  525. # DEBUG BEGIN_STMT
  526. # DEBUG xReturn => 0
  527. <bb 4> [local count: 1073741824]:
  528. # xReturn_3 = PHI <1(2), 0(3)>
  529. # DEBUG xReturn => xReturn_3
  530. # DEBUG BEGIN_STMT
  531. vPortExitCritical ();
  532. # DEBUG BEGIN_STMT
  533. return xReturn_3;
  534. }
  535. xQueueIsQueueEmptyFromISR (struct QueueDefinition * const xQueue)
  536. {
  537. uint32_t ulNewBASEPRI;
  538. BaseType_t xReturn;
  539. long unsigned int _1;
  540. <bb 2> [local count: 357913]:
  541. # DEBUG BEGIN_STMT
  542. # DEBUG BEGIN_STMT
  543. # DEBUG pxQueue => xQueue_3(D)
  544. # DEBUG BEGIN_STMT
  545. if (xQueue_3(D) == 0B)
  546. goto <bb 3>; [30.00%]
  547. else
  548. goto <bb 5>; [70.00%]
  549. <bb 3> [local count: 107374]:
  550. # DEBUG BEGIN_STMT
  551. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  552. # DEBUG BEGIN_STMT
  553. # DEBUG BEGIN_STMT
  554. __asm__ __volatile__(" mov %0, %1
  555. msr basepri, %0
  556. isb
  557. dsb
  558. " : "=r" ulNewBASEPRI_5 : "i" 16 : "memory");
  559. # DEBUG ulNewBASEPRI => ulNewBASEPRI_5
  560. <bb 4> [local count: 1073741824]:
  561. # DEBUG ulNewBASEPRI => NULL
  562. # DEBUG BEGIN_STMT
  563. # DEBUG BEGIN_STMT
  564. # DEBUG BEGIN_STMT
  565. <bb 8> [local count: 1073741824]:
  566. goto <bb 4>; [100.00%]
  567. <bb 5> [local count: 250539]:
  568. # DEBUG BEGIN_STMT
  569. # DEBUG BEGIN_STMT
  570. _1 ={v} MEM[(struct Queue_t *)xQueue_3(D)].uxMessagesWaiting;
  571. if (_1 == 0)
  572. goto <bb 7>; [50.00%]
  573. else
  574. goto <bb 6>; [50.00%]
  575. <bb 6> [local count: 125270]:
  576. # DEBUG BEGIN_STMT
  577. # DEBUG xReturn => 0
  578. <bb 7> [local count: 250539]:
  579. # xReturn_2 = PHI <1(5), 0(6)>
  580. # DEBUG xReturn => xReturn_2
  581. # DEBUG BEGIN_STMT
  582. return xReturn_2;
  583. }
  584. prvIsQueueEmpty (const struct Queue_t * pxQueue)
  585. {
  586. BaseType_t xReturn;
  587. long unsigned int _1;
  588. <bb 2> [local count: 1073741824]:
  589. # DEBUG BEGIN_STMT
  590. # DEBUG BEGIN_STMT
  591. vPortEnterCritical ();
  592. # DEBUG BEGIN_STMT
  593. _1 ={v} pxQueue_5(D)->uxMessagesWaiting;
  594. if (_1 == 0)
  595. goto <bb 4>; [50.00%]
  596. else
  597. goto <bb 3>; [50.00%]
  598. <bb 3> [local count: 536870913]:
  599. # DEBUG BEGIN_STMT
  600. # DEBUG xReturn => 0
  601. <bb 4> [local count: 1073741824]:
  602. # xReturn_2 = PHI <1(2), 0(3)>
  603. # DEBUG xReturn => xReturn_2
  604. # DEBUG BEGIN_STMT
  605. vPortExitCritical ();
  606. # DEBUG BEGIN_STMT
  607. return xReturn_2;
  608. }
  609. prvUnlockQueue (struct Queue_t * const pxQueue)
  610. {
  611. int8_t cRxLock;
  612. int8_t cTxLock;
  613. long unsigned int _1;
  614. struct List_t * _2;
  615. long int _3;
  616. unsigned char cTxLock.6_4;
  617. unsigned char _5;
  618. long unsigned int _6;
  619. struct List_t * _7;
  620. long int _8;
  621. unsigned char cRxLock.7_9;
  622. unsigned char _10;
  623. <bb 2> [local count: 114863534]:
  624. # DEBUG BEGIN_STMT
  625. vPortEnterCritical ();
  626. # DEBUG BEGIN_STMT
  627. cTxLock_20 ={v} pxQueue_19(D)->cTxLock;
  628. # DEBUG cTxLock => cTxLock_20
  629. # DEBUG BEGIN_STMT
  630. goto <bb 7>; [100.00%]
  631. <bb 3> [local count: 1014686025]:
  632. # DEBUG BEGIN_STMT
  633. _1 ={v} pxQueue_19(D)->xTasksWaitingToReceive.uxNumberOfItems;
  634. if (_1 != 0)
  635. goto <bb 4>; [94.50%]
  636. else
  637. goto <bb 8>; [5.50%]
  638. <bb 4> [local count: 958878293]:
  639. # DEBUG BEGIN_STMT
  640. _2 = &pxQueue_19(D)->xTasksWaitingToReceive;
  641. _3 = xTaskRemoveFromEventList (_2);
  642. if (_3 != 0)
  643. goto <bb 5>; [33.00%]
  644. else
  645. goto <bb 6>; [67.00%]
  646. <bb 5> [local count: 316429836]:
  647. # DEBUG BEGIN_STMT
  648. vTaskMissedYield ();
  649. <bb 6> [local count: 958878293]:
  650. # DEBUG BEGIN_STMT
  651. # DEBUG BEGIN_STMT
  652. cTxLock.6_4 = (unsigned char) cTxLock_11;
  653. _5 = cTxLock.6_4 + 255;
  654. cTxLock_23 = (int8_t) _5;
  655. # DEBUG cTxLock => cTxLock_23
  656. <bb 7> [local count: 1073741824]:
  657. # cTxLock_11 = PHI <cTxLock_20(2), cTxLock_23(6)>
  658. # DEBUG cTxLock => cTxLock_11
  659. # DEBUG BEGIN_STMT
  660. if (cTxLock_11 > 0)
  661. goto <bb 3>; [94.50%]
  662. else
  663. goto <bb 8>; [5.50%]
  664. <bb 8> [local count: 114863532]:
  665. # DEBUG BEGIN_STMT
  666. pxQueue_19(D)->cTxLock ={v} -1;
  667. # DEBUG BEGIN_STMT
  668. vPortExitCritical ();
  669. # DEBUG BEGIN_STMT
  670. vPortEnterCritical ();
  671. # DEBUG BEGIN_STMT
  672. cRxLock_27 ={v} pxQueue_19(D)->cRxLock;
  673. # DEBUG cRxLock => cRxLock_27
  674. # DEBUG BEGIN_STMT
  675. goto <bb 13>; [100.00%]
  676. <bb 9> [local count: 1014686003]:
  677. # DEBUG BEGIN_STMT
  678. _6 ={v} pxQueue_19(D)->xTasksWaitingToSend.uxNumberOfItems;
  679. if (_6 != 0)
  680. goto <bb 10>; [94.50%]
  681. else
  682. goto <bb 14>; [5.50%]
  683. <bb 10> [local count: 958878272]:
  684. # DEBUG BEGIN_STMT
  685. _7 = &pxQueue_19(D)->xTasksWaitingToSend;
  686. _8 = xTaskRemoveFromEventList (_7);
  687. if (_8 != 0)
  688. goto <bb 11>; [33.00%]
  689. else
  690. goto <bb 12>; [67.00%]
  691. <bb 11> [local count: 316429830]:
  692. # DEBUG BEGIN_STMT
  693. vTaskMissedYield ();
  694. <bb 12> [local count: 958878272]:
  695. # DEBUG BEGIN_STMT
  696. # DEBUG BEGIN_STMT
  697. cRxLock.7_9 = (unsigned char) cRxLock_12;
  698. _10 = cRxLock.7_9 + 255;
  699. cRxLock_30 = (int8_t) _10;
  700. # DEBUG cRxLock => cRxLock_30
  701. <bb 13> [local count: 1073741803]:
  702. # cRxLock_12 = PHI <cRxLock_27(8), cRxLock_30(12)>
  703. # DEBUG cRxLock => cRxLock_12
  704. # DEBUG BEGIN_STMT
  705. if (cRxLock_12 > 0)
  706. goto <bb 9>; [94.50%]
  707. else
  708. goto <bb 14>; [5.50%]
  709. <bb 14> [local count: 114863529]:
  710. # DEBUG BEGIN_STMT
  711. pxQueue_19(D)->cRxLock ={v} -1;
  712. # DEBUG BEGIN_STMT
  713. vPortExitCritical ();
  714. return;
  715. }
  716. prvCopyDataFromQueue (struct Queue_t * const pxQueue, void * const pvBuffer)
  717. {
  718. long unsigned int _1;
  719. int8_t * _2;
  720. int8_t * _3;
  721. int8_t * _4;
  722. int8_t * _5;
  723. int8_t * _6;
  724. <bb 2> [local count: 1073741824]:
  725. # DEBUG BEGIN_STMT
  726. _1 = pxQueue_10(D)->uxItemSize;
  727. if (_1 != 0)
  728. goto <bb 3>; [50.00%]
  729. else
  730. goto <bb 6>; [50.00%]
  731. <bb 3> [local count: 536870913]:
  732. # DEBUG BEGIN_STMT
  733. _2 = pxQueue_10(D)->u.xQueue.pcReadFrom;
  734. _3 = _2 + _1;
  735. pxQueue_10(D)->u.xQueue.pcReadFrom = _3;
  736. # DEBUG BEGIN_STMT
  737. _4 = pxQueue_10(D)->u.xQueue.pcTail;
  738. if (_3 >= _4)
  739. goto <bb 4>; [50.00%]
  740. else
  741. goto <bb 5>; [50.00%]
  742. <bb 4> [local count: 268435456]:
  743. # DEBUG BEGIN_STMT
  744. _5 = pxQueue_10(D)->pcHead;
  745. pxQueue_10(D)->u.xQueue.pcReadFrom = _5;
  746. <bb 5> [local count: 536870913]:
  747. # DEBUG BEGIN_STMT
  748. # DEBUG BEGIN_STMT
  749. _6 = pxQueue_10(D)->u.xQueue.pcReadFrom;
  750. memcpy (pvBuffer_13(D), _6, _1);
  751. <bb 6> [local count: 1073741824]:
  752. return;
  753. }
  754. prvCopyDataToQueue (struct Queue_t * const pxQueue, const void * pvItemToQueue, const BaseType_t xPosition)
  755. {
  756. UBaseType_t uxMessagesWaiting;
  757. BaseType_t xReturn;
  758. long unsigned int _1;
  759. int8_t * _2;
  760. struct tskTaskControlBlock * _3;
  761. int8_t * _4;
  762. int8_t * _5;
  763. long unsigned int _6;
  764. int8_t * _7;
  765. int8_t * _8;
  766. int8_t * _9;
  767. int8_t * _10;
  768. int8_t * _11;
  769. long unsigned int _12;
  770. sizetype _13;
  771. int8_t * _14;
  772. int8_t * _15;
  773. int8_t * _16;
  774. int8_t * _17;
  775. long unsigned int _18;
  776. <bb 2> [local count: 1073741823]:
  777. # DEBUG BEGIN_STMT
  778. # DEBUG xReturn => 0
  779. # DEBUG BEGIN_STMT
  780. # DEBUG BEGIN_STMT
  781. uxMessagesWaiting_25 ={v} pxQueue_24(D)->uxMessagesWaiting;
  782. # DEBUG uxMessagesWaiting => uxMessagesWaiting_25
  783. # DEBUG BEGIN_STMT
  784. _1 = pxQueue_24(D)->uxItemSize;
  785. if (_1 == 0)
  786. goto <bb 3>; [50.00%]
  787. else
  788. goto <bb 5>; [50.00%]
  789. <bb 3> [local count: 536870911]:
  790. # DEBUG BEGIN_STMT
  791. _2 = pxQueue_24(D)->pcHead;
  792. if (_2 == 0B)
  793. goto <bb 4>; [17.43%]
  794. else
  795. goto <bb 13>; [82.57%]
  796. <bb 4> [local count: 93576600]:
  797. # DEBUG BEGIN_STMT
  798. _3 = pxQueue_24(D)->u.xSemaphore.xMutexHolder;
  799. xReturn_36 = xTaskPriorityDisinherit (_3);
  800. # DEBUG xReturn => xReturn_36
  801. # DEBUG BEGIN_STMT
  802. pxQueue_24(D)->u.xSemaphore.xMutexHolder = 0B;
  803. goto <bb 13>; [100.00%]
  804. <bb 5> [local count: 536870911]:
  805. # DEBUG BEGIN_STMT
  806. if (xPosition_26(D) == 0)
  807. goto <bb 6>; [50.00%]
  808. else
  809. goto <bb 8>; [50.00%]
  810. <bb 6> [local count: 268435456]:
  811. # DEBUG BEGIN_STMT
  812. _4 = pxQueue_24(D)->pcWriteTo;
  813. memcpy (_4, pvItemToQueue_27(D), _1);
  814. # DEBUG BEGIN_STMT
  815. _5 = pxQueue_24(D)->pcWriteTo;
  816. _6 = pxQueue_24(D)->uxItemSize;
  817. _7 = _5 + _6;
  818. pxQueue_24(D)->pcWriteTo = _7;
  819. # DEBUG BEGIN_STMT
  820. _8 = pxQueue_24(D)->u.xQueue.pcTail;
  821. if (_7 >= _8)
  822. goto <bb 7>; [50.00%]
  823. else
  824. goto <bb 13>; [50.00%]
  825. <bb 7> [local count: 134217728]:
  826. # DEBUG BEGIN_STMT
  827. _9 = pxQueue_24(D)->pcHead;
  828. pxQueue_24(D)->pcWriteTo = _9;
  829. goto <bb 13>; [100.00%]
  830. <bb 8> [local count: 268435456]:
  831. # DEBUG BEGIN_STMT
  832. _10 = pxQueue_24(D)->u.xQueue.pcReadFrom;
  833. memcpy (_10, pvItemToQueue_27(D), _1);
  834. # DEBUG BEGIN_STMT
  835. _11 = pxQueue_24(D)->u.xQueue.pcReadFrom;
  836. _12 = pxQueue_24(D)->uxItemSize;
  837. _13 = -_12;
  838. _14 = _11 + _13;
  839. pxQueue_24(D)->u.xQueue.pcReadFrom = _14;
  840. # DEBUG BEGIN_STMT
  841. _15 = pxQueue_24(D)->pcHead;
  842. if (_14 < _15)
  843. goto <bb 9>; [50.00%]
  844. else
  845. goto <bb 10>; [50.00%]
  846. <bb 9> [local count: 134217728]:
  847. # DEBUG BEGIN_STMT
  848. _16 = pxQueue_24(D)->u.xQueue.pcTail;
  849. _17 = _16 + _13;
  850. pxQueue_24(D)->u.xQueue.pcReadFrom = _17;
  851. <bb 10> [local count: 268435456]:
  852. # DEBUG BEGIN_STMT
  853. # DEBUG BEGIN_STMT
  854. if (xPosition_26(D) == 2)
  855. goto <bb 11>; [34.00%]
  856. else
  857. goto <bb 13>; [66.00%]
  858. <bb 11> [local count: 91268055]:
  859. # DEBUG BEGIN_STMT
  860. if (uxMessagesWaiting_25 != 0)
  861. goto <bb 12>; [50.00%]
  862. else
  863. goto <bb 13>; [50.00%]
  864. <bb 12> [local count: 45634027]:
  865. # DEBUG BEGIN_STMT
  866. uxMessagesWaiting_31 = uxMessagesWaiting_25 + 4294967295;
  867. # DEBUG uxMessagesWaiting => uxMessagesWaiting_31
  868. <bb 13> [local count: 1073741824]:
  869. # xReturn_19 = PHI <xReturn_36(4), 0(7), 0(10), 0(12), 0(3), 0(6), 0(11)>
  870. # uxMessagesWaiting_20 = PHI <uxMessagesWaiting_25(4), uxMessagesWaiting_25(7), uxMessagesWaiting_25(10), uxMessagesWaiting_31(12), uxMessagesWaiting_25(3), uxMessagesWaiting_25(6), uxMessagesWaiting_25(11)>
  871. # DEBUG uxMessagesWaiting => uxMessagesWaiting_20
  872. # DEBUG xReturn => xReturn_19
  873. # DEBUG BEGIN_STMT
  874. # DEBUG BEGIN_STMT
  875. _18 = uxMessagesWaiting_20 + 1;
  876. pxQueue_24(D)->uxMessagesWaiting ={v} _18;
  877. # DEBUG BEGIN_STMT
  878. return xReturn_19;
  879. }
  880. prvGetDisinheritPriorityAfterTimeout (const struct Queue_t * const pxQueue)
  881. {
  882. UBaseType_t uxHighestPriorityOfWaitingTasks;
  883. long unsigned int _1;
  884. struct xLIST_ITEM * _2;
  885. long unsigned int _3;
  886. <bb 2> [local count: 1073741824]:
  887. # DEBUG BEGIN_STMT
  888. # DEBUG BEGIN_STMT
  889. _1 ={v} pxQueue_6(D)->xTasksWaitingToReceive.uxNumberOfItems;
  890. if (_1 != 0)
  891. goto <bb 3>; [50.00%]
  892. else
  893. goto <bb 4>; [50.00%]
  894. <bb 3> [local count: 536870913]:
  895. # DEBUG BEGIN_STMT
  896. _2 = pxQueue_6(D)->xTasksWaitingToReceive.xListEnd.pxNext;
  897. _3 = _2->xItemValue;
  898. uxHighestPriorityOfWaitingTasks_7 = 5 - _3;
  899. # DEBUG uxHighestPriorityOfWaitingTasks => uxHighestPriorityOfWaitingTasks_7
  900. <bb 4> [local count: 1073741824]:
  901. # uxHighestPriorityOfWaitingTasks_4 = PHI <uxHighestPriorityOfWaitingTasks_7(3), 0(2)>
  902. # DEBUG uxHighestPriorityOfWaitingTasks => uxHighestPriorityOfWaitingTasks_4
  903. # DEBUG BEGIN_STMT
  904. return uxHighestPriorityOfWaitingTasks_4;
  905. }
  906. ucQueueGetQueueType (struct QueueDefinition * xQueue)
  907. {
  908. uint8_t _3;
  909. <bb 2> [local count: 1073741824]:
  910. # DEBUG BEGIN_STMT
  911. _3 = MEM[(struct Queue_t *)xQueue_2(D)].ucQueueType;
  912. return _3;
  913. }
  914. vQueueSetQueueNumber (struct QueueDefinition * xQueue, UBaseType_t uxQueueNumber)
  915. {
  916. <bb 2> [local count: 1073741824]:
  917. # DEBUG BEGIN_STMT
  918. MEM[(struct Queue_t *)xQueue_2(D)].uxQueueNumber = uxQueueNumber_3(D);
  919. return;
  920. }
  921. uxQueueGetQueueNumber (struct QueueDefinition * xQueue)
  922. {
  923. UBaseType_t _3;
  924. <bb 2> [local count: 1073741824]:
  925. # DEBUG BEGIN_STMT
  926. _3 = MEM[(struct Queue_t *)xQueue_2(D)].uxQueueNumber;
  927. return _3;
  928. }
  929. vQueueDelete (struct QueueDefinition * xQueue)
  930. {
  931. uint32_t ulNewBASEPRI;
  932. <bb 2> [local count: 230763]:
  933. # DEBUG BEGIN_STMT
  934. # DEBUG pxQueue => xQueue_1(D)
  935. # DEBUG BEGIN_STMT
  936. if (xQueue_1(D) == 0B)
  937. goto <bb 3>; [46.53%]
  938. else
  939. goto <bb 5>; [53.47%]
  940. <bb 3> [local count: 107374]:
  941. # DEBUG BEGIN_STMT
  942. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  943. # DEBUG BEGIN_STMT
  944. # DEBUG BEGIN_STMT
  945. __asm__ __volatile__(" mov %0, %1
  946. msr basepri, %0
  947. isb
  948. dsb
  949. " : "=r" ulNewBASEPRI_5 : "i" 16 : "memory");
  950. # DEBUG ulNewBASEPRI => ulNewBASEPRI_5
  951. <bb 4> [local count: 1073741824]:
  952. # DEBUG ulNewBASEPRI => NULL
  953. # DEBUG BEGIN_STMT
  954. # DEBUG BEGIN_STMT
  955. # DEBUG BEGIN_STMT
  956. <bb 6> [local count: 1073741824]:
  957. goto <bb 4>; [100.00%]
  958. <bb 5> [local count: 123389]:
  959. # DEBUG BEGIN_STMT
  960. # DEBUG BEGIN_STMT
  961. # DEBUG BEGIN_STMT
  962. vQueueUnregisterQueue (xQueue_1(D));
  963. # DEBUG BEGIN_STMT
  964. vPortFree (xQueue_1(D));
  965. return;
  966. }
  967. uxQueueMessagesWaitingFromISR (struct QueueDefinition * const xQueue)
  968. {
  969. uint32_t ulNewBASEPRI;
  970. UBaseType_t uxReturn;
  971. <bb 2> [local count: 357913]:
  972. # DEBUG BEGIN_STMT
  973. # DEBUG BEGIN_STMT
  974. # DEBUG pxQueue => xQueue_1(D)
  975. # DEBUG BEGIN_STMT
  976. if (xQueue_1(D) == 0B)
  977. goto <bb 3>; [30.00%]
  978. else
  979. goto <bb 5>; [70.00%]
  980. <bb 3> [local count: 107374]:
  981. # DEBUG BEGIN_STMT
  982. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  983. # DEBUG BEGIN_STMT
  984. # DEBUG BEGIN_STMT
  985. __asm__ __volatile__(" mov %0, %1
  986. msr basepri, %0
  987. isb
  988. dsb
  989. " : "=r" ulNewBASEPRI_4 : "i" 16 : "memory");
  990. # DEBUG ulNewBASEPRI => ulNewBASEPRI_4
  991. <bb 4> [local count: 1073741824]:
  992. # DEBUG ulNewBASEPRI => NULL
  993. # DEBUG BEGIN_STMT
  994. # DEBUG BEGIN_STMT
  995. # DEBUG BEGIN_STMT
  996. <bb 6> [local count: 1073741824]:
  997. goto <bb 4>; [100.00%]
  998. <bb 5> [local count: 250539]:
  999. # DEBUG BEGIN_STMT
  1000. # DEBUG BEGIN_STMT
  1001. uxReturn_3 ={v} MEM[(struct Queue_t *)xQueue_1(D)].uxMessagesWaiting;
  1002. # DEBUG uxReturn => uxReturn_3
  1003. # DEBUG BEGIN_STMT
  1004. return uxReturn_3;
  1005. }
  1006. uxQueueSpacesAvailable (struct QueueDefinition * const xQueue)
  1007. {
  1008. uint32_t ulNewBASEPRI;
  1009. UBaseType_t uxReturn;
  1010. long unsigned int _1;
  1011. long unsigned int _2;
  1012. <bb 2> [local count: 230763]:
  1013. # DEBUG BEGIN_STMT
  1014. # DEBUG BEGIN_STMT
  1015. # DEBUG pxQueue => xQueue_3(D)
  1016. # DEBUG BEGIN_STMT
  1017. if (xQueue_3(D) == 0B)
  1018. goto <bb 3>; [46.53%]
  1019. else
  1020. goto <bb 5>; [53.47%]
  1021. <bb 3> [local count: 107374]:
  1022. # DEBUG BEGIN_STMT
  1023. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1024. # DEBUG BEGIN_STMT
  1025. # DEBUG BEGIN_STMT
  1026. __asm__ __volatile__(" mov %0, %1
  1027. msr basepri, %0
  1028. isb
  1029. dsb
  1030. " : "=r" ulNewBASEPRI_8 : "i" 16 : "memory");
  1031. # DEBUG ulNewBASEPRI => ulNewBASEPRI_8
  1032. <bb 4> [local count: 1073741824]:
  1033. # DEBUG ulNewBASEPRI => NULL
  1034. # DEBUG BEGIN_STMT
  1035. # DEBUG BEGIN_STMT
  1036. # DEBUG BEGIN_STMT
  1037. <bb 6> [local count: 1073741824]:
  1038. goto <bb 4>; [100.00%]
  1039. <bb 5> [local count: 123389]:
  1040. # DEBUG BEGIN_STMT
  1041. # DEBUG BEGIN_STMT
  1042. vPortEnterCritical ();
  1043. # DEBUG BEGIN_STMT
  1044. _1 = MEM[(struct Queue_t *)xQueue_3(D)].uxLength;
  1045. _2 ={v} MEM[(struct Queue_t *)xQueue_3(D)].uxMessagesWaiting;
  1046. uxReturn_6 = _1 - _2;
  1047. # DEBUG uxReturn => uxReturn_6
  1048. # DEBUG BEGIN_STMT
  1049. vPortExitCritical ();
  1050. # DEBUG BEGIN_STMT
  1051. return uxReturn_6;
  1052. }
  1053. uxQueueMessagesWaiting (struct QueueDefinition * const xQueue)
  1054. {
  1055. uint32_t ulNewBASEPRI;
  1056. UBaseType_t uxReturn;
  1057. <bb 2> [local count: 230763]:
  1058. # DEBUG BEGIN_STMT
  1059. # DEBUG BEGIN_STMT
  1060. if (xQueue_1(D) == 0B)
  1061. goto <bb 3>; [46.53%]
  1062. else
  1063. goto <bb 5>; [53.47%]
  1064. <bb 3> [local count: 107374]:
  1065. # DEBUG BEGIN_STMT
  1066. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1067. # DEBUG BEGIN_STMT
  1068. # DEBUG BEGIN_STMT
  1069. __asm__ __volatile__(" mov %0, %1
  1070. msr basepri, %0
  1071. isb
  1072. dsb
  1073. " : "=r" ulNewBASEPRI_6 : "i" 16 : "memory");
  1074. # DEBUG ulNewBASEPRI => ulNewBASEPRI_6
  1075. <bb 4> [local count: 1073741824]:
  1076. # DEBUG ulNewBASEPRI => NULL
  1077. # DEBUG BEGIN_STMT
  1078. # DEBUG BEGIN_STMT
  1079. # DEBUG BEGIN_STMT
  1080. <bb 6> [local count: 1073741824]:
  1081. goto <bb 4>; [100.00%]
  1082. <bb 5> [local count: 123389]:
  1083. # DEBUG BEGIN_STMT
  1084. # DEBUG BEGIN_STMT
  1085. vPortEnterCritical ();
  1086. # DEBUG BEGIN_STMT
  1087. uxReturn_4 ={v} MEM[(struct Queue_t *)xQueue_1(D)].uxMessagesWaiting;
  1088. # DEBUG uxReturn => uxReturn_4
  1089. # DEBUG BEGIN_STMT
  1090. vPortExitCritical ();
  1091. # DEBUG BEGIN_STMT
  1092. return uxReturn_4;
  1093. }
  1094. xQueuePeekFromISR (struct QueueDefinition * xQueue, void * const pvBuffer)
  1095. {
  1096. uint32_t ulOriginalBASEPRI;
  1097. uint32_t ulNewBASEPRI;
  1098. uint32_t ulNewBASEPRI;
  1099. uint32_t ulNewBASEPRI;
  1100. uint32_t ulNewBASEPRI;
  1101. int8_t * pcOriginalReadPosition;
  1102. BaseType_t xReturn;
  1103. long unsigned int _1;
  1104. long unsigned int _2;
  1105. long unsigned int _3;
  1106. <bb 2> [local count: 269344]:
  1107. # DEBUG BEGIN_STMT
  1108. # DEBUG BEGIN_STMT
  1109. # DEBUG BEGIN_STMT
  1110. # DEBUG BEGIN_STMT
  1111. # DEBUG pxQueue => xQueue_6(D)
  1112. # DEBUG BEGIN_STMT
  1113. if (xQueue_6(D) == 0B)
  1114. goto <bb 3>; [30.00%]
  1115. else
  1116. goto <bb 5>; [70.00%]
  1117. <bb 3> [local count: 80803]:
  1118. # DEBUG BEGIN_STMT
  1119. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1120. # DEBUG BEGIN_STMT
  1121. # DEBUG BEGIN_STMT
  1122. __asm__ __volatile__(" mov %0, %1
  1123. msr basepri, %0
  1124. isb
  1125. dsb
  1126. " : "=r" ulNewBASEPRI_13 : "i" 16 : "memory");
  1127. # DEBUG ulNewBASEPRI => ulNewBASEPRI_13
  1128. <bb 4> [local count: 808033481]:
  1129. # DEBUG ulNewBASEPRI => NULL
  1130. # DEBUG BEGIN_STMT
  1131. # DEBUG BEGIN_STMT
  1132. # DEBUG BEGIN_STMT
  1133. <bb 15> [local count: 808033481]:
  1134. goto <bb 4>; [100.00%]
  1135. <bb 5> [local count: 188541]:
  1136. # DEBUG BEGIN_STMT
  1137. # DEBUG BEGIN_STMT
  1138. if (pvBuffer_7(D) != 0B)
  1139. goto <bb 9>; [70.00%]
  1140. else
  1141. goto <bb 6>; [30.00%]
  1142. <bb 6> [local count: 56562]:
  1143. _1 = MEM[(struct Queue_t *)xQueue_6(D)].uxItemSize;
  1144. if (_1 == 0)
  1145. goto <bb 9>; [50.00%]
  1146. else
  1147. goto <bb 7>; [50.00%]
  1148. <bb 7> [local count: 28281]:
  1149. # DEBUG BEGIN_STMT
  1150. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1151. # DEBUG BEGIN_STMT
  1152. # DEBUG BEGIN_STMT
  1153. __asm__ __volatile__(" mov %0, %1
  1154. msr basepri, %0
  1155. isb
  1156. dsb
  1157. " : "=r" ulNewBASEPRI_14 : "i" 16 : "memory");
  1158. # DEBUG ulNewBASEPRI => ulNewBASEPRI_14
  1159. <bb 8> [local count: 282811719]:
  1160. # DEBUG ulNewBASEPRI => NULL
  1161. # DEBUG BEGIN_STMT
  1162. # DEBUG BEGIN_STMT
  1163. # DEBUG BEGIN_STMT
  1164. <bb 17> [local count: 282811719]:
  1165. goto <bb 8>; [100.00%]
  1166. <bb 9> [local count: 160260]:
  1167. # DEBUG BEGIN_STMT
  1168. # DEBUG BEGIN_STMT
  1169. _2 = MEM[(struct Queue_t *)xQueue_6(D)].uxItemSize;
  1170. if (_2 == 0)
  1171. goto <bb 10>; [67.00%]
  1172. else
  1173. goto <bb 12>; [33.00%]
  1174. <bb 10> [local count: 107374]:
  1175. # DEBUG BEGIN_STMT
  1176. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1177. # DEBUG BEGIN_STMT
  1178. # DEBUG BEGIN_STMT
  1179. __asm__ __volatile__(" mov %0, %1
  1180. msr basepri, %0
  1181. isb
  1182. dsb
  1183. " : "=r" ulNewBASEPRI_15 : "i" 16 : "memory");
  1184. # DEBUG ulNewBASEPRI => ulNewBASEPRI_15
  1185. <bb 11> [local count: 1073741824]:
  1186. # DEBUG ulNewBASEPRI => NULL
  1187. # DEBUG BEGIN_STMT
  1188. # DEBUG BEGIN_STMT
  1189. # DEBUG BEGIN_STMT
  1190. <bb 16> [local count: 1073741824]:
  1191. goto <bb 11>; [100.00%]
  1192. <bb 12> [local count: 52886]:
  1193. # DEBUG BEGIN_STMT
  1194. # DEBUG BEGIN_STMT
  1195. vPortValidateInterruptPriority ();
  1196. # DEBUG BEGIN_STMT
  1197. # DEBUG INLINE_ENTRY ulPortRaiseBASEPRI
  1198. # DEBUG BEGIN_STMT
  1199. # DEBUG BEGIN_STMT
  1200. __asm__ __volatile__(" mrs %0, basepri
  1201. mov %1, %2
  1202. msr basepri, %1
  1203. isb
  1204. dsb
  1205. " : "=r" ulOriginalBASEPRI_16, "=r" ulNewBASEPRI_17 : "i" 16 : "memory");
  1206. # DEBUG ulNewBASEPRI => ulNewBASEPRI_17
  1207. # DEBUG ulOriginalBASEPRI => ulOriginalBASEPRI_16
  1208. # DEBUG BEGIN_STMT
  1209. # DEBUG ulNewBASEPRI => NULL
  1210. # DEBUG ulOriginalBASEPRI => NULL
  1211. # DEBUG uxSavedInterruptStatus => ulOriginalBASEPRI_16
  1212. # DEBUG BEGIN_STMT
  1213. _3 ={v} MEM[(struct Queue_t *)xQueue_6(D)].uxMessagesWaiting;
  1214. if (_3 != 0)
  1215. goto <bb 13>; [33.00%]
  1216. else
  1217. goto <bb 14>; [67.00%]
  1218. <bb 13> [local count: 17452]:
  1219. # DEBUG BEGIN_STMT
  1220. # DEBUG BEGIN_STMT
  1221. pcOriginalReadPosition_10 = MEM[(struct Queue_t *)xQueue_6(D)].u.xQueue.pcReadFrom;
  1222. # DEBUG pcOriginalReadPosition => pcOriginalReadPosition_10
  1223. # DEBUG BEGIN_STMT
  1224. prvCopyDataFromQueue (xQueue_6(D), pvBuffer_7(D));
  1225. # DEBUG BEGIN_STMT
  1226. MEM[(struct Queue_t *)xQueue_6(D)].u.xQueue.pcReadFrom = pcOriginalReadPosition_10;
  1227. # DEBUG BEGIN_STMT
  1228. # DEBUG xReturn => 1
  1229. <bb 14> [local count: 52886]:
  1230. # xReturn_4 = PHI <1(13), 0(12)>
  1231. # DEBUG xReturn => xReturn_4
  1232. # DEBUG BEGIN_STMT
  1233. # DEBUG BEGIN_STMT
  1234. # DEBUG ulNewMaskValue => ulOriginalBASEPRI_16
  1235. # DEBUG INLINE_ENTRY vPortSetBASEPRI
  1236. # DEBUG BEGIN_STMT
  1237. __asm__ __volatile__(" msr basepri, %0 " : : "r" ulOriginalBASEPRI_16 : "memory");
  1238. # DEBUG ulNewMaskValue => NULL
  1239. # DEBUG BEGIN_STMT
  1240. return xReturn_4;
  1241. }
  1242. xQueueReceiveFromISR (struct QueueDefinition * xQueue, void * const pvBuffer, BaseType_t * const pxHigherPriorityTaskWoken)
  1243. {
  1244. uint32_t ulNewBASEPRI;
  1245. uint32_t ulOriginalBASEPRI;
  1246. uint32_t ulNewBASEPRI;
  1247. uint32_t ulNewBASEPRI;
  1248. uint32_t ulNewBASEPRI;
  1249. const int8_t cRxLock;
  1250. const UBaseType_t uxMessagesWaiting;
  1251. BaseType_t xReturn;
  1252. long unsigned int _1;
  1253. long unsigned int _2;
  1254. long unsigned int _3;
  1255. struct List_t * _4;
  1256. long int _5;
  1257. unsigned char cRxLock.28_6;
  1258. unsigned char _7;
  1259. signed char _8;
  1260. <bb 2> [local count: 357913]:
  1261. # DEBUG BEGIN_STMT
  1262. # DEBUG BEGIN_STMT
  1263. # DEBUG BEGIN_STMT
  1264. # DEBUG pxQueue => xQueue_11(D)
  1265. # DEBUG BEGIN_STMT
  1266. if (xQueue_11(D) == 0B)
  1267. goto <bb 3>; [30.00%]
  1268. else
  1269. goto <bb 5>; [70.00%]
  1270. <bb 3> [local count: 107374]:
  1271. # DEBUG BEGIN_STMT
  1272. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1273. # DEBUG BEGIN_STMT
  1274. # DEBUG BEGIN_STMT
  1275. __asm__ __volatile__(" mov %0, %1
  1276. msr basepri, %0
  1277. isb
  1278. dsb
  1279. " : "=r" ulNewBASEPRI_23 : "i" 16 : "memory");
  1280. # DEBUG ulNewBASEPRI => ulNewBASEPRI_23
  1281. <bb 4> [local count: 1073741824]:
  1282. # DEBUG ulNewBASEPRI => NULL
  1283. # DEBUG BEGIN_STMT
  1284. # DEBUG BEGIN_STMT
  1285. # DEBUG BEGIN_STMT
  1286. <bb 21> [local count: 1073741824]:
  1287. goto <bb 4>; [100.00%]
  1288. <bb 5> [local count: 250539]:
  1289. # DEBUG BEGIN_STMT
  1290. # DEBUG BEGIN_STMT
  1291. if (pvBuffer_12(D) != 0B)
  1292. goto <bb 9>; [53.47%]
  1293. else
  1294. goto <bb 6>; [46.53%]
  1295. <bb 6> [local count: 116576]:
  1296. _1 = MEM[(struct Queue_t *)xQueue_11(D)].uxItemSize;
  1297. if (_1 == 0)
  1298. goto <bb 9>; [50.00%]
  1299. else
  1300. goto <bb 7>; [50.00%]
  1301. <bb 7> [local count: 58288]:
  1302. # DEBUG BEGIN_STMT
  1303. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1304. # DEBUG BEGIN_STMT
  1305. # DEBUG BEGIN_STMT
  1306. __asm__ __volatile__(" mov %0, %1
  1307. msr basepri, %0
  1308. isb
  1309. dsb
  1310. " : "=r" ulNewBASEPRI_24 : "i" 16 : "memory");
  1311. # DEBUG ulNewBASEPRI => ulNewBASEPRI_24
  1312. <bb 8> [local count: 582880751]:
  1313. # DEBUG ulNewBASEPRI => NULL
  1314. # DEBUG BEGIN_STMT
  1315. # DEBUG BEGIN_STMT
  1316. # DEBUG BEGIN_STMT
  1317. <bb 23> [local count: 582880751]:
  1318. goto <bb 8>; [100.00%]
  1319. <bb 9> [local count: 192251]:
  1320. # DEBUG BEGIN_STMT
  1321. # DEBUG BEGIN_STMT
  1322. vPortValidateInterruptPriority ();
  1323. # DEBUG BEGIN_STMT
  1324. # DEBUG INLINE_ENTRY ulPortRaiseBASEPRI
  1325. # DEBUG BEGIN_STMT
  1326. # DEBUG BEGIN_STMT
  1327. __asm__ __volatile__(" mrs %0, basepri
  1328. mov %1, %2
  1329. msr basepri, %1
  1330. isb
  1331. dsb
  1332. " : "=r" ulOriginalBASEPRI_25, "=r" ulNewBASEPRI_26 : "i" 16 : "memory");
  1333. # DEBUG ulNewBASEPRI => ulNewBASEPRI_26
  1334. # DEBUG ulOriginalBASEPRI => ulOriginalBASEPRI_25
  1335. # DEBUG BEGIN_STMT
  1336. # DEBUG ulNewBASEPRI => NULL
  1337. # DEBUG ulOriginalBASEPRI => NULL
  1338. # DEBUG uxSavedInterruptStatus => ulOriginalBASEPRI_25
  1339. # DEBUG BEGIN_STMT
  1340. uxMessagesWaiting_15 ={v} MEM[(struct Queue_t *)xQueue_11(D)].uxMessagesWaiting;
  1341. # DEBUG uxMessagesWaiting => uxMessagesWaiting_15
  1342. # DEBUG BEGIN_STMT
  1343. if (uxMessagesWaiting_15 != 0)
  1344. goto <bb 10>; [33.00%]
  1345. else
  1346. goto <bb 20>; [67.00%]
  1347. <bb 10> [local count: 63443]:
  1348. # DEBUG BEGIN_STMT
  1349. cRxLock_16 ={v} MEM[(struct Queue_t *)xQueue_11(D)].cRxLock;
  1350. # DEBUG cRxLock => cRxLock_16
  1351. # DEBUG BEGIN_STMT
  1352. # DEBUG BEGIN_STMT
  1353. prvCopyDataFromQueue (xQueue_11(D), pvBuffer_12(D));
  1354. # DEBUG BEGIN_STMT
  1355. _2 = uxMessagesWaiting_15 + 4294967295;
  1356. MEM[(struct Queue_t *)xQueue_11(D)].uxMessagesWaiting ={v} _2;
  1357. # DEBUG BEGIN_STMT
  1358. if (cRxLock_16 == -1)
  1359. goto <bb 11>; [34.00%]
  1360. else
  1361. goto <bb 15>; [66.00%]
  1362. <bb 11> [local count: 21571]:
  1363. # DEBUG BEGIN_STMT
  1364. _3 ={v} MEM[(struct Queue_t *)xQueue_11(D)].xTasksWaitingToSend.uxNumberOfItems;
  1365. if (_3 != 0)
  1366. goto <bb 12>; [33.00%]
  1367. else
  1368. goto <bb 20>; [67.00%]
  1369. <bb 12> [local count: 7118]:
  1370. # DEBUG BEGIN_STMT
  1371. _4 = &MEM[(struct Queue_t *)xQueue_11(D)].xTasksWaitingToSend;
  1372. _5 = xTaskRemoveFromEventList (_4);
  1373. if (_5 != 0)
  1374. goto <bb 13>; [50.00%]
  1375. else
  1376. goto <bb 20>; [50.00%]
  1377. <bb 13> [local count: 3559]:
  1378. # DEBUG BEGIN_STMT
  1379. if (pxHigherPriorityTaskWoken_21(D) != 0B)
  1380. goto <bb 14>; [70.00%]
  1381. else
  1382. goto <bb 20>; [30.00%]
  1383. <bb 14> [local count: 2491]:
  1384. # DEBUG BEGIN_STMT
  1385. *pxHigherPriorityTaskWoken_21(D) = 1;
  1386. goto <bb 20>; [100.00%]
  1387. <bb 15> [local count: 41872]:
  1388. # DEBUG BEGIN_STMT
  1389. if (cRxLock_16 == 127)
  1390. goto <bb 16>; [34.00%]
  1391. else
  1392. goto <bb 18>; [66.00%]
  1393. <bb 16> [local count: 14237]:
  1394. # DEBUG BEGIN_STMT
  1395. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1396. # DEBUG BEGIN_STMT
  1397. # DEBUG BEGIN_STMT
  1398. __asm__ __volatile__(" mov %0, %1
  1399. msr basepri, %0
  1400. isb
  1401. dsb
  1402. " : "=r" ulNewBASEPRI_27 : "i" 16 : "memory");
  1403. # DEBUG ulNewBASEPRI => ulNewBASEPRI_27
  1404. <bb 17> [local count: 142366217]:
  1405. # DEBUG ulNewBASEPRI => NULL
  1406. # DEBUG BEGIN_STMT
  1407. # DEBUG BEGIN_STMT
  1408. # DEBUG BEGIN_STMT
  1409. <bb 22> [local count: 142366217]:
  1410. goto <bb 17>; [100.00%]
  1411. <bb 18> [local count: 27636]:
  1412. # DEBUG BEGIN_STMT
  1413. # DEBUG BEGIN_STMT
  1414. cRxLock.28_6 = (unsigned char) cRxLock_16;
  1415. _7 = cRxLock.28_6 + 1;
  1416. _8 = (signed char) _7;
  1417. MEM[(struct Queue_t *)xQueue_11(D)].cRxLock ={v} _8;
  1418. <bb 20> [local count: 178015]:
  1419. # xReturn_9 = PHI <1(18), 0(9), 1(14), 1(12), 1(13), 1(11)>
  1420. # DEBUG xReturn => xReturn_9
  1421. # DEBUG BEGIN_STMT
  1422. # DEBUG BEGIN_STMT
  1423. # DEBUG ulNewMaskValue => ulOriginalBASEPRI_25
  1424. # DEBUG INLINE_ENTRY vPortSetBASEPRI
  1425. # DEBUG BEGIN_STMT
  1426. __asm__ __volatile__(" msr basepri, %0 " : : "r" ulOriginalBASEPRI_25 : "memory");
  1427. # DEBUG ulNewMaskValue => NULL
  1428. # DEBUG BEGIN_STMT
  1429. return xReturn_9;
  1430. }
  1431. xQueuePeek (struct QueueDefinition * xQueue, void * const pvBuffer, TickType_t xTicksToWait)
  1432. {
  1433. uint32_t ulNewBASEPRI;
  1434. uint32_t ulNewBASEPRI;
  1435. uint32_t ulNewBASEPRI;
  1436. const UBaseType_t uxMessagesWaiting;
  1437. int8_t * pcOriginalReadPosition;
  1438. struct TimeOut_t xTimeOut;
  1439. BaseType_t xEntryTimeSet;
  1440. long unsigned int _1;
  1441. long int _2;
  1442. long unsigned int xTicksToWait.24_3;
  1443. long unsigned int _4;
  1444. struct List_t * _5;
  1445. long int _6;
  1446. long unsigned int xTicksToWait.25_7;
  1447. signed char _8;
  1448. signed char _9;
  1449. long int _10;
  1450. long int _11;
  1451. struct List_t * _12;
  1452. long unsigned int xTicksToWait.26_13;
  1453. long int _14;
  1454. long int _15;
  1455. BaseType_t _18;
  1456. <bb 2> [local count: 357913]:
  1457. # DEBUG BEGIN_STMT
  1458. # DEBUG xEntryTimeSet => 0
  1459. # DEBUG BEGIN_STMT
  1460. # DEBUG BEGIN_STMT
  1461. # DEBUG BEGIN_STMT
  1462. # DEBUG pxQueue => xQueue_26(D)
  1463. # DEBUG BEGIN_STMT
  1464. if (xQueue_26(D) == 0B)
  1465. goto <bb 3>; [30.00%]
  1466. else
  1467. goto <bb 5>; [70.00%]
  1468. <bb 3> [local count: 107374]:
  1469. # DEBUG BEGIN_STMT
  1470. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1471. # DEBUG BEGIN_STMT
  1472. # DEBUG BEGIN_STMT
  1473. __asm__ __volatile__(" mov %0, %1
  1474. msr basepri, %0
  1475. isb
  1476. dsb
  1477. " : "=r" ulNewBASEPRI_64 : "i" 16 : "memory");
  1478. # DEBUG ulNewBASEPRI => ulNewBASEPRI_64
  1479. <bb 4> [local count: 1073741824]:
  1480. # DEBUG ulNewBASEPRI => NULL
  1481. # DEBUG BEGIN_STMT
  1482. # DEBUG BEGIN_STMT
  1483. # DEBUG BEGIN_STMT
  1484. <bb 35> [local count: 1073741824]:
  1485. goto <bb 4>; [100.00%]
  1486. <bb 5> [local count: 250539]:
  1487. # DEBUG BEGIN_STMT
  1488. # DEBUG BEGIN_STMT
  1489. if (pvBuffer_27(D) != 0B)
  1490. goto <bb 9>; [53.47%]
  1491. else
  1492. goto <bb 6>; [46.53%]
  1493. <bb 6> [local count: 116576]:
  1494. _1 = MEM[(struct Queue_t *)xQueue_26(D)].uxItemSize;
  1495. if (_1 == 0)
  1496. goto <bb 9>; [50.00%]
  1497. else
  1498. goto <bb 7>; [50.00%]
  1499. <bb 7> [local count: 58288]:
  1500. # DEBUG BEGIN_STMT
  1501. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1502. # DEBUG BEGIN_STMT
  1503. # DEBUG BEGIN_STMT
  1504. __asm__ __volatile__(" mov %0, %1
  1505. msr basepri, %0
  1506. isb
  1507. dsb
  1508. " : "=r" ulNewBASEPRI_65 : "i" 16 : "memory");
  1509. # DEBUG ulNewBASEPRI => ulNewBASEPRI_65
  1510. <bb 8> [local count: 582880751]:
  1511. # DEBUG ulNewBASEPRI => NULL
  1512. # DEBUG BEGIN_STMT
  1513. # DEBUG BEGIN_STMT
  1514. # DEBUG BEGIN_STMT
  1515. <bb 37> [local count: 582880751]:
  1516. goto <bb 8>; [100.00%]
  1517. <bb 9> [local count: 192251]:
  1518. # DEBUG BEGIN_STMT
  1519. # DEBUG BEGIN_STMT
  1520. _2 = xTaskGetSchedulerState ();
  1521. if (_2 != 0)
  1522. goto <bb 10>; [50.00%]
  1523. else
  1524. goto <bb 11>; [50.00%]
  1525. <bb 10> [local count: 144189]:
  1526. # xEntryTimeSet_30 = PHI <0(9), 0(11)>
  1527. goto <bb 15>; [100.00%]
  1528. <bb 11> [local count: 96126]:
  1529. xTicksToWait.24_3 = xTicksToWait;
  1530. if (xTicksToWait.24_3 == 0)
  1531. goto <bb 10>; [50.00%]
  1532. else
  1533. goto <bb 12>; [50.00%]
  1534. <bb 12> [local count: 48063]:
  1535. # DEBUG BEGIN_STMT
  1536. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1537. # DEBUG BEGIN_STMT
  1538. # DEBUG BEGIN_STMT
  1539. __asm__ __volatile__(" mov %0, %1
  1540. msr basepri, %0
  1541. isb
  1542. dsb
  1543. " : "=r" ulNewBASEPRI_66 : "i" 16 : "memory");
  1544. # DEBUG ulNewBASEPRI => ulNewBASEPRI_66
  1545. <bb 13> [local count: 480629211]:
  1546. # DEBUG ulNewBASEPRI => NULL
  1547. # DEBUG BEGIN_STMT
  1548. # DEBUG BEGIN_STMT
  1549. # DEBUG BEGIN_STMT
  1550. <bb 36> [local count: 480629211]:
  1551. goto <bb 13>; [100.00%]
  1552. <bb 14> [local count: 1478726]:
  1553. # xEntryTimeSet_44 = PHI <xEntryTimeSet_17(33), xEntryTimeSet_17(32), xEntryTimeSet_17(31), xEntryTimeSet_17(30)>
  1554. <bb 15> [local count: 1622915]:
  1555. # xEntryTimeSet_16 = PHI <xEntryTimeSet_30(10), xEntryTimeSet_44(14)>
  1556. # DEBUG xEntryTimeSet => xEntryTimeSet_16
  1557. # DEBUG BEGIN_STMT
  1558. # DEBUG BEGIN_STMT
  1559. # DEBUG BEGIN_STMT
  1560. vPortEnterCritical ();
  1561. # DEBUG BEGIN_STMT
  1562. uxMessagesWaiting_32 ={v} MEM[(struct Queue_t *)xQueue_26(D)].uxMessagesWaiting;
  1563. # DEBUG uxMessagesWaiting => uxMessagesWaiting_32
  1564. # DEBUG BEGIN_STMT
  1565. if (uxMessagesWaiting_32 != 0)
  1566. goto <bb 16>; [3.66%]
  1567. else
  1568. goto <bb 20>; [96.34%]
  1569. <bb 16> [local count: 59399]:
  1570. # DEBUG BEGIN_STMT
  1571. pcOriginalReadPosition_55 = MEM[(struct Queue_t *)xQueue_26(D)].u.xQueue.pcReadFrom;
  1572. # DEBUG pcOriginalReadPosition => pcOriginalReadPosition_55
  1573. # DEBUG BEGIN_STMT
  1574. prvCopyDataFromQueue (xQueue_26(D), pvBuffer_27(D));
  1575. # DEBUG BEGIN_STMT
  1576. # DEBUG BEGIN_STMT
  1577. MEM[(struct Queue_t *)xQueue_26(D)].u.xQueue.pcReadFrom = pcOriginalReadPosition_55;
  1578. # DEBUG BEGIN_STMT
  1579. _4 ={v} MEM[(struct Queue_t *)xQueue_26(D)].xTasksWaitingToReceive.uxNumberOfItems;
  1580. if (_4 != 0)
  1581. goto <bb 17>; [33.00%]
  1582. else
  1583. goto <bb 19>; [67.00%]
  1584. <bb 17> [local count: 19602]:
  1585. # DEBUG BEGIN_STMT
  1586. _5 = &MEM[(struct Queue_t *)xQueue_26(D)].xTasksWaitingToReceive;
  1587. _6 = xTaskRemoveFromEventList (_5);
  1588. if (_6 != 0)
  1589. goto <bb 18>; [50.00%]
  1590. else
  1591. goto <bb 19>; [50.00%]
  1592. <bb 18> [local count: 9801]:
  1593. # DEBUG BEGIN_STMT
  1594. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  1595. # DEBUG BEGIN_STMT
  1596. __asm__ __volatile__("dsb" : : : "memory");
  1597. # DEBUG BEGIN_STMT
  1598. __asm__ __volatile__("isb");
  1599. # DEBUG BEGIN_STMT
  1600. <bb 19> [local count: 59399]:
  1601. # DEBUG BEGIN_STMT
  1602. # DEBUG BEGIN_STMT
  1603. vPortExitCritical ();
  1604. # DEBUG BEGIN_STMT
  1605. goto <bb 34>; [100.00%]
  1606. <bb 20> [local count: 1563516]:
  1607. # DEBUG BEGIN_STMT
  1608. xTicksToWait.25_7 = xTicksToWait;
  1609. if (xTicksToWait.25_7 == 0)
  1610. goto <bb 21>; [3.66%]
  1611. else
  1612. goto <bb 22>; [96.34%]
  1613. <bb 21> [local count: 57225]:
  1614. # DEBUG BEGIN_STMT
  1615. vPortExitCritical ();
  1616. # DEBUG BEGIN_STMT
  1617. # DEBUG BEGIN_STMT
  1618. goto <bb 34>; [100.00%]
  1619. <bb 22> [local count: 1506292]:
  1620. # DEBUG BEGIN_STMT
  1621. if (xEntryTimeSet_16 == 0)
  1622. goto <bb 23>; [33.00%]
  1623. else
  1624. goto <bb 24>; [67.00%]
  1625. <bb 23> [local count: 497076]:
  1626. # DEBUG BEGIN_STMT
  1627. vTaskInternalSetTimeOutState (&xTimeOut);
  1628. # DEBUG BEGIN_STMT
  1629. # DEBUG xEntryTimeSet => 1
  1630. <bb 24> [local count: 1506292]:
  1631. # xEntryTimeSet_17 = PHI <xEntryTimeSet_16(22), 1(23)>
  1632. # DEBUG xEntryTimeSet => xEntryTimeSet_17
  1633. # DEBUG BEGIN_STMT
  1634. # DEBUG BEGIN_STMT
  1635. vPortExitCritical ();
  1636. # DEBUG BEGIN_STMT
  1637. vTaskSuspendAll ();
  1638. # DEBUG BEGIN_STMT
  1639. vPortEnterCritical ();
  1640. # DEBUG BEGIN_STMT
  1641. _8 ={v} MEM[(struct Queue_t *)xQueue_26(D)].cRxLock;
  1642. if (_8 == -1)
  1643. goto <bb 25>; [34.00%]
  1644. else
  1645. goto <bb 26>; [66.00%]
  1646. <bb 25> [local count: 512139]:
  1647. # DEBUG BEGIN_STMT
  1648. MEM[(struct Queue_t *)xQueue_26(D)].cRxLock ={v} 0;
  1649. <bb 26> [local count: 1506292]:
  1650. # DEBUG BEGIN_STMT
  1651. _9 ={v} MEM[(struct Queue_t *)xQueue_26(D)].cTxLock;
  1652. if (_9 == -1)
  1653. goto <bb 27>; [34.00%]
  1654. else
  1655. goto <bb 28>; [66.00%]
  1656. <bb 27> [local count: 512139]:
  1657. # DEBUG BEGIN_STMT
  1658. MEM[(struct Queue_t *)xQueue_26(D)].cTxLock ={v} 0;
  1659. <bb 28> [local count: 1506292]:
  1660. # DEBUG BEGIN_STMT
  1661. vPortExitCritical ();
  1662. # DEBUG BEGIN_STMT
  1663. _10 = xTaskCheckForTimeOut (&xTimeOut, &xTicksToWait);
  1664. if (_10 == 0)
  1665. goto <bb 29>; [50.00%]
  1666. else
  1667. goto <bb 33>; [50.00%]
  1668. <bb 29> [local count: 753146]:
  1669. # DEBUG BEGIN_STMT
  1670. _11 = prvIsQueueEmpty (xQueue_26(D));
  1671. if (_11 != 0)
  1672. goto <bb 30>; [50.00%]
  1673. else
  1674. goto <bb 32>; [50.00%]
  1675. <bb 30> [local count: 376573]:
  1676. # DEBUG BEGIN_STMT
  1677. # DEBUG BEGIN_STMT
  1678. _12 = &MEM[(struct Queue_t *)xQueue_26(D)].xTasksWaitingToReceive;
  1679. xTicksToWait.26_13 = xTicksToWait;
  1680. vTaskPlaceOnEventList (_12, xTicksToWait.26_13);
  1681. # DEBUG BEGIN_STMT
  1682. prvUnlockQueue (xQueue_26(D));
  1683. # DEBUG BEGIN_STMT
  1684. _14 = xTaskResumeAll ();
  1685. if (_14 == 0)
  1686. goto <bb 31>; [50.00%]
  1687. else
  1688. goto <bb 14>; [50.00%]
  1689. <bb 31> [local count: 188286]:
  1690. # DEBUG BEGIN_STMT
  1691. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  1692. # DEBUG BEGIN_STMT
  1693. __asm__ __volatile__("dsb" : : : "memory");
  1694. # DEBUG BEGIN_STMT
  1695. __asm__ __volatile__("isb");
  1696. # DEBUG BEGIN_STMT
  1697. goto <bb 14>; [100.00%]
  1698. <bb 32> [local count: 376573]:
  1699. # DEBUG BEGIN_STMT
  1700. prvUnlockQueue (xQueue_26(D));
  1701. # DEBUG BEGIN_STMT
  1702. xTaskResumeAll ();
  1703. goto <bb 14>; [100.00%]
  1704. <bb 33> [local count: 753146]:
  1705. # DEBUG BEGIN_STMT
  1706. prvUnlockQueue (xQueue_26(D));
  1707. # DEBUG BEGIN_STMT
  1708. xTaskResumeAll ();
  1709. # DEBUG BEGIN_STMT
  1710. _15 = prvIsQueueEmpty (xQueue_26(D));
  1711. if (_15 != 0)
  1712. goto <bb 34>; [3.66%]
  1713. else
  1714. goto <bb 14>; [96.34%]
  1715. <bb 34> [local count: 144189]:
  1716. # _18 = PHI <1(19), 0(21), 0(33)>
  1717. xTimeOut ={v} {CLOBBER};
  1718. return _18;
  1719. }
  1720. xQueueSemaphoreTake (struct QueueDefinition * xQueue, TickType_t xTicksToWait)
  1721. {
  1722. uint32_t ulNewBASEPRI;
  1723. uint32_t ulNewBASEPRI;
  1724. uint32_t ulNewBASEPRI;
  1725. uint32_t ulNewBASEPRI;
  1726. UBaseType_t uxHighestWaitingPriority;
  1727. const UBaseType_t uxSemaphoreCount;
  1728. BaseType_t xInheritanceOccurred;
  1729. struct TimeOut_t xTimeOut;
  1730. BaseType_t xEntryTimeSet;
  1731. long unsigned int _1;
  1732. long int _2;
  1733. long unsigned int xTicksToWait.19_3;
  1734. long unsigned int _4;
  1735. int8_t * _5;
  1736. struct tskTaskControlBlock * _6;
  1737. long unsigned int _7;
  1738. struct List_t * _8;
  1739. long int _9;
  1740. long unsigned int xTicksToWait.20_10;
  1741. signed char _11;
  1742. signed char _12;
  1743. long int _13;
  1744. long int _14;
  1745. int8_t * _15;
  1746. struct tskTaskControlBlock * _16;
  1747. struct List_t * _17;
  1748. long unsigned int xTicksToWait.21_18;
  1749. long int _19;
  1750. long int _20;
  1751. struct tskTaskControlBlock * _21;
  1752. BaseType_t _27;
  1753. <bb 2> [local count: 228942]:
  1754. # DEBUG BEGIN_STMT
  1755. # DEBUG xEntryTimeSet => 0
  1756. # DEBUG BEGIN_STMT
  1757. # DEBUG BEGIN_STMT
  1758. # DEBUG pxQueue => xQueue_38(D)
  1759. # DEBUG BEGIN_STMT
  1760. # DEBUG xInheritanceOccurred => 0
  1761. # DEBUG BEGIN_STMT
  1762. if (xQueue_38(D) == 0B)
  1763. goto <bb 3>; [30.00%]
  1764. else
  1765. goto <bb 5>; [70.00%]
  1766. <bb 3> [local count: 68683]:
  1767. # DEBUG BEGIN_STMT
  1768. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1769. # DEBUG BEGIN_STMT
  1770. # DEBUG BEGIN_STMT
  1771. __asm__ __volatile__(" mov %0, %1
  1772. msr basepri, %0
  1773. isb
  1774. dsb
  1775. " : "=r" ulNewBASEPRI_88 : "i" 16 : "memory");
  1776. # DEBUG ulNewBASEPRI => ulNewBASEPRI_88
  1777. <bb 4> [local count: 686828460]:
  1778. # DEBUG ulNewBASEPRI => NULL
  1779. # DEBUG BEGIN_STMT
  1780. # DEBUG BEGIN_STMT
  1781. # DEBUG BEGIN_STMT
  1782. <bb 44> [local count: 686828460]:
  1783. goto <bb 4>; [100.00%]
  1784. <bb 5> [local count: 160260]:
  1785. # DEBUG BEGIN_STMT
  1786. # DEBUG BEGIN_STMT
  1787. _1 = MEM[(struct Queue_t *)xQueue_38(D)].uxItemSize;
  1788. if (_1 != 0)
  1789. goto <bb 6>; [67.00%]
  1790. else
  1791. goto <bb 8>; [33.00%]
  1792. <bb 6> [local count: 107374]:
  1793. # DEBUG BEGIN_STMT
  1794. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1795. # DEBUG BEGIN_STMT
  1796. # DEBUG BEGIN_STMT
  1797. __asm__ __volatile__(" mov %0, %1
  1798. msr basepri, %0
  1799. isb
  1800. dsb
  1801. " : "=r" ulNewBASEPRI_89 : "i" 16 : "memory");
  1802. # DEBUG ulNewBASEPRI => ulNewBASEPRI_89
  1803. <bb 7> [local count: 1073741824]:
  1804. # DEBUG ulNewBASEPRI => NULL
  1805. # DEBUG BEGIN_STMT
  1806. # DEBUG BEGIN_STMT
  1807. # DEBUG BEGIN_STMT
  1808. <bb 45> [local count: 1073741824]:
  1809. goto <bb 7>; [100.00%]
  1810. <bb 8> [local count: 52886]:
  1811. # DEBUG BEGIN_STMT
  1812. # DEBUG BEGIN_STMT
  1813. _2 = xTaskGetSchedulerState ();
  1814. if (_2 != 0)
  1815. goto <bb 10>; [50.00%]
  1816. else
  1817. goto <bb 9>; [50.00%]
  1818. <bb 9> [local count: 26443]:
  1819. xTicksToWait.19_3 = xTicksToWait;
  1820. if (xTicksToWait.19_3 == 0)
  1821. goto <bb 10>; [50.00%]
  1822. else
  1823. goto <bb 11>; [50.00%]
  1824. <bb 10> [local count: 39664]:
  1825. # xEntryTimeSet_40 = PHI <0(9), 0(8)>
  1826. # xInheritanceOccurred_64 = PHI <0(9), 0(8)>
  1827. goto <bb 14>; [100.00%]
  1828. <bb 11> [local count: 13221]:
  1829. # DEBUG BEGIN_STMT
  1830. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1831. # DEBUG BEGIN_STMT
  1832. # DEBUG BEGIN_STMT
  1833. __asm__ __volatile__(" mov %0, %1
  1834. msr basepri, %0
  1835. isb
  1836. dsb
  1837. " : "=r" ulNewBASEPRI_90 : "i" 16 : "memory");
  1838. # DEBUG ulNewBASEPRI => ulNewBASEPRI_90
  1839. <bb 12> [local count: 132214478]:
  1840. # DEBUG ulNewBASEPRI => NULL
  1841. # DEBUG BEGIN_STMT
  1842. # DEBUG BEGIN_STMT
  1843. # DEBUG BEGIN_STMT
  1844. <bb 47> [local count: 132214478]:
  1845. goto <bb 12>; [100.00%]
  1846. <bb 13> [local count: 406777]:
  1847. # xEntryTimeSet_48 = PHI <xEntryTimeSet_23(39), xEntryTimeSet_23(38), xEntryTimeSet_23(37), xEntryTimeSet_23(36)>
  1848. # xInheritanceOccurred_39 = PHI <xInheritanceOccurred_24(39), xInheritanceOccurred_24(38), xInheritanceOccurred_25(37), xInheritanceOccurred_25(36)>
  1849. <bb 14> [local count: 446442]:
  1850. # xEntryTimeSet_22 = PHI <xEntryTimeSet_40(10), xEntryTimeSet_48(13)>
  1851. # xInheritanceOccurred_24 = PHI <xInheritanceOccurred_64(10), xInheritanceOccurred_39(13)>
  1852. # DEBUG xInheritanceOccurred => xInheritanceOccurred_24
  1853. # DEBUG xEntryTimeSet => xEntryTimeSet_22
  1854. # DEBUG BEGIN_STMT
  1855. # DEBUG BEGIN_STMT
  1856. # DEBUG BEGIN_STMT
  1857. vPortEnterCritical ();
  1858. # DEBUG BEGIN_STMT
  1859. uxSemaphoreCount_46 ={v} MEM[(struct Queue_t *)xQueue_38(D)].uxMessagesWaiting;
  1860. # DEBUG uxSemaphoreCount => uxSemaphoreCount_46
  1861. # DEBUG BEGIN_STMT
  1862. if (uxSemaphoreCount_46 != 0)
  1863. goto <bb 15>; [3.66%]
  1864. else
  1865. goto <bb 21>; [96.34%]
  1866. <bb 15> [local count: 16340]:
  1867. # uxSemaphoreCount_26 = PHI <uxSemaphoreCount_46(14)>
  1868. # DEBUG BEGIN_STMT
  1869. # DEBUG BEGIN_STMT
  1870. _4 = uxSemaphoreCount_26 + 4294967295;
  1871. MEM[(struct Queue_t *)xQueue_38(D)].uxMessagesWaiting ={v} _4;
  1872. # DEBUG BEGIN_STMT
  1873. _5 = MEM[(struct Queue_t *)xQueue_38(D)].pcHead;
  1874. if (_5 == 0B)
  1875. goto <bb 16>; [17.43%]
  1876. else
  1877. goto <bb 17>; [82.57%]
  1878. <bb 16> [local count: 2848]:
  1879. # DEBUG BEGIN_STMT
  1880. _6 = pvTaskIncrementMutexHeldCount ();
  1881. MEM[(struct Queue_t *)xQueue_38(D)].u.xSemaphore.xMutexHolder = _6;
  1882. <bb 17> [local count: 16340]:
  1883. # DEBUG BEGIN_STMT
  1884. # DEBUG BEGIN_STMT
  1885. _7 ={v} MEM[(struct Queue_t *)xQueue_38(D)].xTasksWaitingToSend.uxNumberOfItems;
  1886. if (_7 != 0)
  1887. goto <bb 18>; [33.00%]
  1888. else
  1889. goto <bb 20>; [67.00%]
  1890. <bb 18> [local count: 5392]:
  1891. # DEBUG BEGIN_STMT
  1892. _8 = &MEM[(struct Queue_t *)xQueue_38(D)].xTasksWaitingToSend;
  1893. _9 = xTaskRemoveFromEventList (_8);
  1894. if (_9 != 0)
  1895. goto <bb 19>; [50.00%]
  1896. else
  1897. goto <bb 20>; [50.00%]
  1898. <bb 19> [local count: 2696]:
  1899. # DEBUG BEGIN_STMT
  1900. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  1901. # DEBUG BEGIN_STMT
  1902. __asm__ __volatile__("dsb" : : : "memory");
  1903. # DEBUG BEGIN_STMT
  1904. __asm__ __volatile__("isb");
  1905. # DEBUG BEGIN_STMT
  1906. <bb 20> [local count: 16340]:
  1907. # DEBUG BEGIN_STMT
  1908. # DEBUG BEGIN_STMT
  1909. vPortExitCritical ();
  1910. # DEBUG BEGIN_STMT
  1911. goto <bb 43>; [100.00%]
  1912. <bb 21> [local count: 430102]:
  1913. # DEBUG BEGIN_STMT
  1914. xTicksToWait.20_10 = xTicksToWait;
  1915. if (xTicksToWait.20_10 == 0)
  1916. goto <bb 22>; [3.66%]
  1917. else
  1918. goto <bb 26>; [96.34%]
  1919. <bb 22> [local count: 15742]:
  1920. # xInheritanceOccurred_43 = PHI <xInheritanceOccurred_24(21)>
  1921. # DEBUG BEGIN_STMT
  1922. if (xInheritanceOccurred_43 != 0)
  1923. goto <bb 23>; [79.76%]
  1924. else
  1925. goto <bb 25>; [20.24%]
  1926. <bb 23> [local count: 12556]:
  1927. # DEBUG BEGIN_STMT
  1928. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1929. # DEBUG BEGIN_STMT
  1930. # DEBUG BEGIN_STMT
  1931. __asm__ __volatile__(" mov %0, %1
  1932. msr basepri, %0
  1933. isb
  1934. dsb
  1935. " : "=r" ulNewBASEPRI_91 : "i" 16 : "memory");
  1936. # DEBUG ulNewBASEPRI => ulNewBASEPRI_91
  1937. <bb 24> [local count: 125556217]:
  1938. # DEBUG ulNewBASEPRI => NULL
  1939. # DEBUG BEGIN_STMT
  1940. # DEBUG BEGIN_STMT
  1941. # DEBUG BEGIN_STMT
  1942. <bb 46> [local count: 125556217]:
  1943. goto <bb 24>; [100.00%]
  1944. <bb 25> [local count: 3186]:
  1945. # DEBUG BEGIN_STMT
  1946. # DEBUG BEGIN_STMT
  1947. vPortExitCritical ();
  1948. # DEBUG BEGIN_STMT
  1949. # DEBUG BEGIN_STMT
  1950. goto <bb 43>; [100.00%]
  1951. <bb 26> [local count: 414360]:
  1952. # DEBUG BEGIN_STMT
  1953. if (xEntryTimeSet_22 == 0)
  1954. goto <bb 27>; [33.00%]
  1955. else
  1956. goto <bb 28>; [67.00%]
  1957. <bb 27> [local count: 136739]:
  1958. # DEBUG BEGIN_STMT
  1959. vTaskInternalSetTimeOutState (&xTimeOut);
  1960. # DEBUG BEGIN_STMT
  1961. # DEBUG xEntryTimeSet => 1
  1962. <bb 28> [local count: 414360]:
  1963. # xEntryTimeSet_23 = PHI <xEntryTimeSet_22(26), 1(27)>
  1964. # DEBUG xEntryTimeSet => xEntryTimeSet_23
  1965. # DEBUG BEGIN_STMT
  1966. # DEBUG BEGIN_STMT
  1967. vPortExitCritical ();
  1968. # DEBUG BEGIN_STMT
  1969. vTaskSuspendAll ();
  1970. # DEBUG BEGIN_STMT
  1971. vPortEnterCritical ();
  1972. # DEBUG BEGIN_STMT
  1973. _11 ={v} MEM[(struct Queue_t *)xQueue_38(D)].cRxLock;
  1974. if (_11 == -1)
  1975. goto <bb 29>; [34.00%]
  1976. else
  1977. goto <bb 30>; [66.00%]
  1978. <bb 29> [local count: 140882]:
  1979. # DEBUG BEGIN_STMT
  1980. MEM[(struct Queue_t *)xQueue_38(D)].cRxLock ={v} 0;
  1981. <bb 30> [local count: 414360]:
  1982. # DEBUG BEGIN_STMT
  1983. _12 ={v} MEM[(struct Queue_t *)xQueue_38(D)].cTxLock;
  1984. if (_12 == -1)
  1985. goto <bb 31>; [34.00%]
  1986. else
  1987. goto <bb 32>; [66.00%]
  1988. <bb 31> [local count: 140882]:
  1989. # DEBUG BEGIN_STMT
  1990. MEM[(struct Queue_t *)xQueue_38(D)].cTxLock ={v} 0;
  1991. <bb 32> [local count: 414360]:
  1992. # DEBUG BEGIN_STMT
  1993. vPortExitCritical ();
  1994. # DEBUG BEGIN_STMT
  1995. _13 = xTaskCheckForTimeOut (&xTimeOut, &xTicksToWait);
  1996. if (_13 == 0)
  1997. goto <bb 33>; [50.00%]
  1998. else
  1999. goto <bb 39>; [50.00%]
  2000. <bb 33> [local count: 207180]:
  2001. # DEBUG BEGIN_STMT
  2002. _14 = prvIsQueueEmpty (xQueue_38(D));
  2003. if (_14 != 0)
  2004. goto <bb 34>; [67.00%]
  2005. else
  2006. goto <bb 38>; [33.00%]
  2007. <bb 34> [local count: 138811]:
  2008. # DEBUG BEGIN_STMT
  2009. # DEBUG BEGIN_STMT
  2010. _15 = MEM[(struct Queue_t *)xQueue_38(D)].pcHead;
  2011. if (_15 == 0B)
  2012. goto <bb 35>; [17.43%]
  2013. else
  2014. goto <bb 36>; [82.57%]
  2015. <bb 35> [local count: 24195]:
  2016. # DEBUG BEGIN_STMT
  2017. vPortEnterCritical ();
  2018. # DEBUG BEGIN_STMT
  2019. _16 = MEM[(struct Queue_t *)xQueue_38(D)].u.xSemaphore.xMutexHolder;
  2020. xInheritanceOccurred_70 = xTaskPriorityInherit (_16);
  2021. # DEBUG xInheritanceOccurred => xInheritanceOccurred_70
  2022. # DEBUG BEGIN_STMT
  2023. vPortExitCritical ();
  2024. <bb 36> [local count: 138811]:
  2025. # xInheritanceOccurred_25 = PHI <xInheritanceOccurred_24(34), xInheritanceOccurred_70(35)>
  2026. # DEBUG xInheritanceOccurred => xInheritanceOccurred_25
  2027. # DEBUG BEGIN_STMT
  2028. # DEBUG BEGIN_STMT
  2029. _17 = &MEM[(struct Queue_t *)xQueue_38(D)].xTasksWaitingToReceive;
  2030. xTicksToWait.21_18 = xTicksToWait;
  2031. vTaskPlaceOnEventList (_17, xTicksToWait.21_18);
  2032. # DEBUG BEGIN_STMT
  2033. prvUnlockQueue (xQueue_38(D));
  2034. # DEBUG BEGIN_STMT
  2035. _19 = xTaskResumeAll ();
  2036. if (_19 == 0)
  2037. goto <bb 37>; [50.00%]
  2038. else
  2039. goto <bb 13>; [50.00%]
  2040. <bb 37> [local count: 69405]:
  2041. # DEBUG BEGIN_STMT
  2042. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  2043. # DEBUG BEGIN_STMT
  2044. __asm__ __volatile__("dsb" : : : "memory");
  2045. # DEBUG BEGIN_STMT
  2046. __asm__ __volatile__("isb");
  2047. # DEBUG BEGIN_STMT
  2048. goto <bb 13>; [100.00%]
  2049. <bb 38> [local count: 68369]:
  2050. # DEBUG BEGIN_STMT
  2051. prvUnlockQueue (xQueue_38(D));
  2052. # DEBUG BEGIN_STMT
  2053. xTaskResumeAll ();
  2054. goto <bb 13>; [100.00%]
  2055. <bb 39> [local count: 207180]:
  2056. # DEBUG BEGIN_STMT
  2057. prvUnlockQueue (xQueue_38(D));
  2058. # DEBUG BEGIN_STMT
  2059. xTaskResumeAll ();
  2060. # DEBUG BEGIN_STMT
  2061. _20 = prvIsQueueEmpty (xQueue_38(D));
  2062. if (_20 != 0)
  2063. goto <bb 40>; [3.66%]
  2064. else
  2065. goto <bb 13>; [96.34%]
  2066. <bb 40> [local count: 7583]:
  2067. # xInheritanceOccurred_44 = PHI <xInheritanceOccurred_24(39)>
  2068. # DEBUG BEGIN_STMT
  2069. if (xInheritanceOccurred_44 != 0)
  2070. goto <bb 41>; [33.00%]
  2071. else
  2072. goto <bb 42>; [67.00%]
  2073. <bb 41> [local count: 2502]:
  2074. # DEBUG BEGIN_STMT
  2075. vPortEnterCritical ();
  2076. # DEBUG BEGIN_STMT
  2077. # DEBUG BEGIN_STMT
  2078. uxHighestWaitingPriority_61 = prvGetDisinheritPriorityAfterTimeout (xQueue_38(D));
  2079. # DEBUG uxHighestWaitingPriority => uxHighestWaitingPriority_61
  2080. # DEBUG BEGIN_STMT
  2081. _21 = MEM[(struct Queue_t *)xQueue_38(D)].u.xSemaphore.xMutexHolder;
  2082. vTaskPriorityDisinheritAfterTimeout (_21, uxHighestWaitingPriority_61);
  2083. # DEBUG BEGIN_STMT
  2084. vPortExitCritical ();
  2085. <bb 42> [local count: 7583]:
  2086. # DEBUG BEGIN_STMT
  2087. # DEBUG BEGIN_STMT
  2088. <bb 43> [local count: 27109]:
  2089. # _27 = PHI <1(20), 0(25), 0(42)>
  2090. xTimeOut ={v} {CLOBBER};
  2091. return _27;
  2092. }
  2093. xQueueReceive (struct QueueDefinition * xQueue, void * const pvBuffer, TickType_t xTicksToWait)
  2094. {
  2095. uint32_t ulNewBASEPRI;
  2096. uint32_t ulNewBASEPRI;
  2097. uint32_t ulNewBASEPRI;
  2098. const UBaseType_t uxMessagesWaiting;
  2099. struct TimeOut_t xTimeOut;
  2100. BaseType_t xEntryTimeSet;
  2101. long unsigned int _1;
  2102. long int _2;
  2103. long unsigned int xTicksToWait.15_3;
  2104. long unsigned int _4;
  2105. long unsigned int _5;
  2106. struct List_t * _6;
  2107. long int _7;
  2108. long unsigned int xTicksToWait.16_8;
  2109. signed char _9;
  2110. signed char _10;
  2111. long int _11;
  2112. long int _12;
  2113. struct List_t * _13;
  2114. long unsigned int xTicksToWait.17_14;
  2115. long int _15;
  2116. long int _16;
  2117. BaseType_t _19;
  2118. <bb 2> [local count: 357913]:
  2119. # DEBUG BEGIN_STMT
  2120. # DEBUG xEntryTimeSet => 0
  2121. # DEBUG BEGIN_STMT
  2122. # DEBUG BEGIN_STMT
  2123. # DEBUG pxQueue => xQueue_27(D)
  2124. # DEBUG BEGIN_STMT
  2125. if (xQueue_27(D) == 0B)
  2126. goto <bb 3>; [30.00%]
  2127. else
  2128. goto <bb 5>; [70.00%]
  2129. <bb 3> [local count: 107374]:
  2130. # DEBUG BEGIN_STMT
  2131. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2132. # DEBUG BEGIN_STMT
  2133. # DEBUG BEGIN_STMT
  2134. __asm__ __volatile__(" mov %0, %1
  2135. msr basepri, %0
  2136. isb
  2137. dsb
  2138. " : "=r" ulNewBASEPRI_65 : "i" 16 : "memory");
  2139. # DEBUG ulNewBASEPRI => ulNewBASEPRI_65
  2140. <bb 4> [local count: 1073741824]:
  2141. # DEBUG ulNewBASEPRI => NULL
  2142. # DEBUG BEGIN_STMT
  2143. # DEBUG BEGIN_STMT
  2144. # DEBUG BEGIN_STMT
  2145. <bb 35> [local count: 1073741824]:
  2146. goto <bb 4>; [100.00%]
  2147. <bb 5> [local count: 250539]:
  2148. # DEBUG BEGIN_STMT
  2149. # DEBUG BEGIN_STMT
  2150. if (pvBuffer_28(D) != 0B)
  2151. goto <bb 9>; [53.47%]
  2152. else
  2153. goto <bb 6>; [46.53%]
  2154. <bb 6> [local count: 116576]:
  2155. _1 = MEM[(struct Queue_t *)xQueue_27(D)].uxItemSize;
  2156. if (_1 == 0)
  2157. goto <bb 9>; [50.00%]
  2158. else
  2159. goto <bb 7>; [50.00%]
  2160. <bb 7> [local count: 58288]:
  2161. # DEBUG BEGIN_STMT
  2162. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2163. # DEBUG BEGIN_STMT
  2164. # DEBUG BEGIN_STMT
  2165. __asm__ __volatile__(" mov %0, %1
  2166. msr basepri, %0
  2167. isb
  2168. dsb
  2169. " : "=r" ulNewBASEPRI_66 : "i" 16 : "memory");
  2170. # DEBUG ulNewBASEPRI => ulNewBASEPRI_66
  2171. <bb 8> [local count: 582880751]:
  2172. # DEBUG ulNewBASEPRI => NULL
  2173. # DEBUG BEGIN_STMT
  2174. # DEBUG BEGIN_STMT
  2175. # DEBUG BEGIN_STMT
  2176. <bb 37> [local count: 582880751]:
  2177. goto <bb 8>; [100.00%]
  2178. <bb 9> [local count: 192251]:
  2179. # DEBUG BEGIN_STMT
  2180. # DEBUG BEGIN_STMT
  2181. _2 = xTaskGetSchedulerState ();
  2182. if (_2 != 0)
  2183. goto <bb 10>; [50.00%]
  2184. else
  2185. goto <bb 11>; [50.00%]
  2186. <bb 10> [local count: 144189]:
  2187. # xEntryTimeSet_32 = PHI <0(9), 0(11)>
  2188. goto <bb 15>; [100.00%]
  2189. <bb 11> [local count: 96126]:
  2190. xTicksToWait.15_3 = xTicksToWait;
  2191. if (xTicksToWait.15_3 == 0)
  2192. goto <bb 10>; [50.00%]
  2193. else
  2194. goto <bb 12>; [50.00%]
  2195. <bb 12> [local count: 48063]:
  2196. # DEBUG BEGIN_STMT
  2197. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2198. # DEBUG BEGIN_STMT
  2199. # DEBUG BEGIN_STMT
  2200. __asm__ __volatile__(" mov %0, %1
  2201. msr basepri, %0
  2202. isb
  2203. dsb
  2204. " : "=r" ulNewBASEPRI_67 : "i" 16 : "memory");
  2205. # DEBUG ulNewBASEPRI => ulNewBASEPRI_67
  2206. <bb 13> [local count: 480629211]:
  2207. # DEBUG ulNewBASEPRI => NULL
  2208. # DEBUG BEGIN_STMT
  2209. # DEBUG BEGIN_STMT
  2210. # DEBUG BEGIN_STMT
  2211. <bb 36> [local count: 480629211]:
  2212. goto <bb 13>; [100.00%]
  2213. <bb 14> [local count: 1478726]:
  2214. # xEntryTimeSet_46 = PHI <xEntryTimeSet_18(33), xEntryTimeSet_18(32), xEntryTimeSet_18(31), xEntryTimeSet_18(30)>
  2215. <bb 15> [local count: 1622915]:
  2216. # xEntryTimeSet_17 = PHI <xEntryTimeSet_32(10), xEntryTimeSet_46(14)>
  2217. # DEBUG xEntryTimeSet => xEntryTimeSet_17
  2218. # DEBUG BEGIN_STMT
  2219. # DEBUG BEGIN_STMT
  2220. # DEBUG BEGIN_STMT
  2221. vPortEnterCritical ();
  2222. # DEBUG BEGIN_STMT
  2223. uxMessagesWaiting_34 ={v} MEM[(struct Queue_t *)xQueue_27(D)].uxMessagesWaiting;
  2224. # DEBUG uxMessagesWaiting => uxMessagesWaiting_34
  2225. # DEBUG BEGIN_STMT
  2226. if (uxMessagesWaiting_34 != 0)
  2227. goto <bb 16>; [3.66%]
  2228. else
  2229. goto <bb 20>; [96.34%]
  2230. <bb 16> [local count: 59399]:
  2231. # uxMessagesWaiting_31 = PHI <uxMessagesWaiting_34(15)>
  2232. # DEBUG BEGIN_STMT
  2233. prvCopyDataFromQueue (xQueue_27(D), pvBuffer_28(D));
  2234. # DEBUG BEGIN_STMT
  2235. # DEBUG BEGIN_STMT
  2236. _4 = uxMessagesWaiting_31 + 4294967295;
  2237. MEM[(struct Queue_t *)xQueue_27(D)].uxMessagesWaiting ={v} _4;
  2238. # DEBUG BEGIN_STMT
  2239. _5 ={v} MEM[(struct Queue_t *)xQueue_27(D)].xTasksWaitingToSend.uxNumberOfItems;
  2240. if (_5 != 0)
  2241. goto <bb 17>; [33.00%]
  2242. else
  2243. goto <bb 19>; [67.00%]
  2244. <bb 17> [local count: 19602]:
  2245. # DEBUG BEGIN_STMT
  2246. _6 = &MEM[(struct Queue_t *)xQueue_27(D)].xTasksWaitingToSend;
  2247. _7 = xTaskRemoveFromEventList (_6);
  2248. if (_7 != 0)
  2249. goto <bb 18>; [50.00%]
  2250. else
  2251. goto <bb 19>; [50.00%]
  2252. <bb 18> [local count: 9801]:
  2253. # DEBUG BEGIN_STMT
  2254. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  2255. # DEBUG BEGIN_STMT
  2256. __asm__ __volatile__("dsb" : : : "memory");
  2257. # DEBUG BEGIN_STMT
  2258. __asm__ __volatile__("isb");
  2259. # DEBUG BEGIN_STMT
  2260. <bb 19> [local count: 59399]:
  2261. # DEBUG BEGIN_STMT
  2262. # DEBUG BEGIN_STMT
  2263. vPortExitCritical ();
  2264. # DEBUG BEGIN_STMT
  2265. goto <bb 34>; [100.00%]
  2266. <bb 20> [local count: 1563516]:
  2267. # DEBUG BEGIN_STMT
  2268. xTicksToWait.16_8 = xTicksToWait;
  2269. if (xTicksToWait.16_8 == 0)
  2270. goto <bb 21>; [3.66%]
  2271. else
  2272. goto <bb 22>; [96.34%]
  2273. <bb 21> [local count: 57225]:
  2274. # DEBUG BEGIN_STMT
  2275. vPortExitCritical ();
  2276. # DEBUG BEGIN_STMT
  2277. # DEBUG BEGIN_STMT
  2278. goto <bb 34>; [100.00%]
  2279. <bb 22> [local count: 1506292]:
  2280. # DEBUG BEGIN_STMT
  2281. if (xEntryTimeSet_17 == 0)
  2282. goto <bb 23>; [33.00%]
  2283. else
  2284. goto <bb 24>; [67.00%]
  2285. <bb 23> [local count: 497076]:
  2286. # DEBUG BEGIN_STMT
  2287. vTaskInternalSetTimeOutState (&xTimeOut);
  2288. # DEBUG BEGIN_STMT
  2289. # DEBUG xEntryTimeSet => 1
  2290. <bb 24> [local count: 1506292]:
  2291. # xEntryTimeSet_18 = PHI <xEntryTimeSet_17(22), 1(23)>
  2292. # DEBUG xEntryTimeSet => xEntryTimeSet_18
  2293. # DEBUG BEGIN_STMT
  2294. # DEBUG BEGIN_STMT
  2295. vPortExitCritical ();
  2296. # DEBUG BEGIN_STMT
  2297. vTaskSuspendAll ();
  2298. # DEBUG BEGIN_STMT
  2299. vPortEnterCritical ();
  2300. # DEBUG BEGIN_STMT
  2301. _9 ={v} MEM[(struct Queue_t *)xQueue_27(D)].cRxLock;
  2302. if (_9 == -1)
  2303. goto <bb 25>; [34.00%]
  2304. else
  2305. goto <bb 26>; [66.00%]
  2306. <bb 25> [local count: 512139]:
  2307. # DEBUG BEGIN_STMT
  2308. MEM[(struct Queue_t *)xQueue_27(D)].cRxLock ={v} 0;
  2309. <bb 26> [local count: 1506292]:
  2310. # DEBUG BEGIN_STMT
  2311. _10 ={v} MEM[(struct Queue_t *)xQueue_27(D)].cTxLock;
  2312. if (_10 == -1)
  2313. goto <bb 27>; [34.00%]
  2314. else
  2315. goto <bb 28>; [66.00%]
  2316. <bb 27> [local count: 512139]:
  2317. # DEBUG BEGIN_STMT
  2318. MEM[(struct Queue_t *)xQueue_27(D)].cTxLock ={v} 0;
  2319. <bb 28> [local count: 1506292]:
  2320. # DEBUG BEGIN_STMT
  2321. vPortExitCritical ();
  2322. # DEBUG BEGIN_STMT
  2323. _11 = xTaskCheckForTimeOut (&xTimeOut, &xTicksToWait);
  2324. if (_11 == 0)
  2325. goto <bb 29>; [50.00%]
  2326. else
  2327. goto <bb 33>; [50.00%]
  2328. <bb 29> [local count: 753146]:
  2329. # DEBUG BEGIN_STMT
  2330. _12 = prvIsQueueEmpty (xQueue_27(D));
  2331. if (_12 != 0)
  2332. goto <bb 30>; [50.00%]
  2333. else
  2334. goto <bb 32>; [50.00%]
  2335. <bb 30> [local count: 376573]:
  2336. # DEBUG BEGIN_STMT
  2337. # DEBUG BEGIN_STMT
  2338. _13 = &MEM[(struct Queue_t *)xQueue_27(D)].xTasksWaitingToReceive;
  2339. xTicksToWait.17_14 = xTicksToWait;
  2340. vTaskPlaceOnEventList (_13, xTicksToWait.17_14);
  2341. # DEBUG BEGIN_STMT
  2342. prvUnlockQueue (xQueue_27(D));
  2343. # DEBUG BEGIN_STMT
  2344. _15 = xTaskResumeAll ();
  2345. if (_15 == 0)
  2346. goto <bb 31>; [50.00%]
  2347. else
  2348. goto <bb 14>; [50.00%]
  2349. <bb 31> [local count: 188286]:
  2350. # DEBUG BEGIN_STMT
  2351. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  2352. # DEBUG BEGIN_STMT
  2353. __asm__ __volatile__("dsb" : : : "memory");
  2354. # DEBUG BEGIN_STMT
  2355. __asm__ __volatile__("isb");
  2356. # DEBUG BEGIN_STMT
  2357. goto <bb 14>; [100.00%]
  2358. <bb 32> [local count: 376573]:
  2359. # DEBUG BEGIN_STMT
  2360. prvUnlockQueue (xQueue_27(D));
  2361. # DEBUG BEGIN_STMT
  2362. xTaskResumeAll ();
  2363. goto <bb 14>; [100.00%]
  2364. <bb 33> [local count: 753146]:
  2365. # DEBUG BEGIN_STMT
  2366. prvUnlockQueue (xQueue_27(D));
  2367. # DEBUG BEGIN_STMT
  2368. xTaskResumeAll ();
  2369. # DEBUG BEGIN_STMT
  2370. _16 = prvIsQueueEmpty (xQueue_27(D));
  2371. if (_16 != 0)
  2372. goto <bb 34>; [3.66%]
  2373. else
  2374. goto <bb 14>; [96.34%]
  2375. <bb 34> [local count: 144189]:
  2376. # _19 = PHI <1(19), 0(21), 0(33)>
  2377. xTimeOut ={v} {CLOBBER};
  2378. return _19;
  2379. }
  2380. xQueueGiveFromISR (struct QueueDefinition * xQueue, BaseType_t * const pxHigherPriorityTaskWoken)
  2381. {
  2382. uint32_t ulNewBASEPRI;
  2383. uint32_t ulOriginalBASEPRI;
  2384. uint32_t ulNewBASEPRI;
  2385. uint32_t ulNewBASEPRI;
  2386. uint32_t ulNewBASEPRI;
  2387. uint32_t ulNewBASEPRI;
  2388. const int8_t cTxLock;
  2389. const UBaseType_t uxMessagesWaiting;
  2390. BaseType_t xReturn;
  2391. long unsigned int _1;
  2392. int8_t * _2;
  2393. struct tskTaskControlBlock * _3;
  2394. long unsigned int _4;
  2395. long unsigned int _5;
  2396. long unsigned int _6;
  2397. struct List_t * _7;
  2398. long int _8;
  2399. unsigned char cTxLock.12_9;
  2400. unsigned char _10;
  2401. signed char _11;
  2402. <bb 2> [local count: 306783]:
  2403. # DEBUG BEGIN_STMT
  2404. # DEBUG BEGIN_STMT
  2405. # DEBUG BEGIN_STMT
  2406. # DEBUG pxQueue => xQueue_14(D)
  2407. # DEBUG BEGIN_STMT
  2408. if (xQueue_14(D) == 0B)
  2409. goto <bb 3>; [30.00%]
  2410. else
  2411. goto <bb 5>; [70.00%]
  2412. <bb 3> [local count: 92035]:
  2413. # DEBUG BEGIN_STMT
  2414. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2415. # DEBUG BEGIN_STMT
  2416. # DEBUG BEGIN_STMT
  2417. __asm__ __volatile__(" mov %0, %1
  2418. msr basepri, %0
  2419. isb
  2420. dsb
  2421. " : "=r" ulNewBASEPRI_24 : "i" 16 : "memory");
  2422. # DEBUG ulNewBASEPRI => ulNewBASEPRI_24
  2423. <bb 4> [local count: 920350133]:
  2424. # DEBUG ulNewBASEPRI => NULL
  2425. # DEBUG BEGIN_STMT
  2426. # DEBUG BEGIN_STMT
  2427. # DEBUG BEGIN_STMT
  2428. <bb 24> [local count: 920350133]:
  2429. goto <bb 4>; [100.00%]
  2430. <bb 5> [local count: 214748]:
  2431. # DEBUG BEGIN_STMT
  2432. # DEBUG BEGIN_STMT
  2433. _1 = MEM[(struct Queue_t *)xQueue_14(D)].uxItemSize;
  2434. if (_1 != 0)
  2435. goto <bb 6>; [50.00%]
  2436. else
  2437. goto <bb 8>; [50.00%]
  2438. <bb 6> [local count: 107374]:
  2439. # DEBUG BEGIN_STMT
  2440. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2441. # DEBUG BEGIN_STMT
  2442. # DEBUG BEGIN_STMT
  2443. __asm__ __volatile__(" mov %0, %1
  2444. msr basepri, %0
  2445. isb
  2446. dsb
  2447. " : "=r" ulNewBASEPRI_25 : "i" 16 : "memory");
  2448. # DEBUG ulNewBASEPRI => ulNewBASEPRI_25
  2449. <bb 7> [local count: 1073741823]:
  2450. # DEBUG ulNewBASEPRI => NULL
  2451. # DEBUG BEGIN_STMT
  2452. # DEBUG BEGIN_STMT
  2453. # DEBUG BEGIN_STMT
  2454. <bb 25> [local count: 1073741824]:
  2455. goto <bb 7>; [100.00%]
  2456. <bb 8> [local count: 107374]:
  2457. # DEBUG BEGIN_STMT
  2458. # DEBUG BEGIN_STMT
  2459. _2 = MEM[(struct Queue_t *)xQueue_14(D)].pcHead;
  2460. if (_2 != 0B)
  2461. goto <bb 12>; [53.47%]
  2462. else
  2463. goto <bb 9>; [46.53%]
  2464. <bb 9> [local count: 49961]:
  2465. _3 = MEM[(struct Queue_t *)xQueue_14(D)].u.xSemaphore.xMutexHolder;
  2466. if (_3 == 0B)
  2467. goto <bb 12>; [30.00%]
  2468. else
  2469. goto <bb 10>; [70.00%]
  2470. <bb 10> [local count: 34973]:
  2471. # DEBUG BEGIN_STMT
  2472. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2473. # DEBUG BEGIN_STMT
  2474. # DEBUG BEGIN_STMT
  2475. __asm__ __volatile__(" mov %0, %1
  2476. msr basepri, %0
  2477. isb
  2478. dsb
  2479. " : "=r" ulNewBASEPRI_26 : "i" 16 : "memory");
  2480. # DEBUG ulNewBASEPRI => ulNewBASEPRI_26
  2481. <bb 11> [local count: 349728449]:
  2482. # DEBUG ulNewBASEPRI => NULL
  2483. # DEBUG BEGIN_STMT
  2484. # DEBUG BEGIN_STMT
  2485. # DEBUG BEGIN_STMT
  2486. <bb 27> [local count: 349728449]:
  2487. goto <bb 11>; [100.00%]
  2488. <bb 12> [local count: 72401]:
  2489. # DEBUG BEGIN_STMT
  2490. # DEBUG BEGIN_STMT
  2491. vPortValidateInterruptPriority ();
  2492. # DEBUG BEGIN_STMT
  2493. # DEBUG INLINE_ENTRY ulPortRaiseBASEPRI
  2494. # DEBUG BEGIN_STMT
  2495. # DEBUG BEGIN_STMT
  2496. __asm__ __volatile__(" mrs %0, basepri
  2497. mov %1, %2
  2498. msr basepri, %1
  2499. isb
  2500. dsb
  2501. " : "=r" ulOriginalBASEPRI_27, "=r" ulNewBASEPRI_28 : "i" 16 : "memory");
  2502. # DEBUG ulNewBASEPRI => ulNewBASEPRI_28
  2503. # DEBUG ulOriginalBASEPRI => ulOriginalBASEPRI_27
  2504. # DEBUG BEGIN_STMT
  2505. # DEBUG ulNewBASEPRI => NULL
  2506. # DEBUG ulOriginalBASEPRI => NULL
  2507. # DEBUG uxSavedInterruptStatus => ulOriginalBASEPRI_27
  2508. # DEBUG BEGIN_STMT
  2509. uxMessagesWaiting_17 ={v} MEM[(struct Queue_t *)xQueue_14(D)].uxMessagesWaiting;
  2510. # DEBUG uxMessagesWaiting => uxMessagesWaiting_17
  2511. # DEBUG BEGIN_STMT
  2512. _4 = MEM[(struct Queue_t *)xQueue_14(D)].uxLength;
  2513. if (_4 > uxMessagesWaiting_17)
  2514. goto <bb 13>; [50.00%]
  2515. else
  2516. goto <bb 23>; [50.00%]
  2517. <bb 13> [local count: 36201]:
  2518. # DEBUG BEGIN_STMT
  2519. cTxLock_18 ={v} MEM[(struct Queue_t *)xQueue_14(D)].cTxLock;
  2520. # DEBUG cTxLock => cTxLock_18
  2521. # DEBUG BEGIN_STMT
  2522. # DEBUG BEGIN_STMT
  2523. _5 = uxMessagesWaiting_17 + 1;
  2524. MEM[(struct Queue_t *)xQueue_14(D)].uxMessagesWaiting ={v} _5;
  2525. # DEBUG BEGIN_STMT
  2526. if (cTxLock_18 == -1)
  2527. goto <bb 14>; [34.00%]
  2528. else
  2529. goto <bb 18>; [66.00%]
  2530. <bb 14> [local count: 12308]:
  2531. # DEBUG BEGIN_STMT
  2532. _6 ={v} MEM[(struct Queue_t *)xQueue_14(D)].xTasksWaitingToReceive.uxNumberOfItems;
  2533. if (_6 != 0)
  2534. goto <bb 15>; [33.00%]
  2535. else
  2536. goto <bb 23>; [67.00%]
  2537. <bb 15> [local count: 4062]:
  2538. # DEBUG BEGIN_STMT
  2539. _7 = &MEM[(struct Queue_t *)xQueue_14(D)].xTasksWaitingToReceive;
  2540. _8 = xTaskRemoveFromEventList (_7);
  2541. if (_8 != 0)
  2542. goto <bb 16>; [50.00%]
  2543. else
  2544. goto <bb 23>; [50.00%]
  2545. <bb 16> [local count: 2031]:
  2546. # DEBUG BEGIN_STMT
  2547. if (pxHigherPriorityTaskWoken_22(D) != 0B)
  2548. goto <bb 17>; [70.00%]
  2549. else
  2550. goto <bb 23>; [30.00%]
  2551. <bb 17> [local count: 1422]:
  2552. # DEBUG BEGIN_STMT
  2553. *pxHigherPriorityTaskWoken_22(D) = 1;
  2554. goto <bb 23>; [100.00%]
  2555. <bb 18> [local count: 23892]:
  2556. # DEBUG BEGIN_STMT
  2557. if (cTxLock_18 == 127)
  2558. goto <bb 19>; [34.00%]
  2559. else
  2560. goto <bb 21>; [66.00%]
  2561. <bb 19> [local count: 8123]:
  2562. # DEBUG BEGIN_STMT
  2563. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2564. # DEBUG BEGIN_STMT
  2565. # DEBUG BEGIN_STMT
  2566. __asm__ __volatile__(" mov %0, %1
  2567. msr basepri, %0
  2568. isb
  2569. dsb
  2570. " : "=r" ulNewBASEPRI_29 : "i" 16 : "memory");
  2571. # DEBUG ulNewBASEPRI => ulNewBASEPRI_29
  2572. <bb 20> [local count: 81234300]:
  2573. # DEBUG ulNewBASEPRI => NULL
  2574. # DEBUG BEGIN_STMT
  2575. # DEBUG BEGIN_STMT
  2576. # DEBUG BEGIN_STMT
  2577. <bb 26> [local count: 81234300]:
  2578. goto <bb 20>; [100.00%]
  2579. <bb 21> [local count: 15769]:
  2580. # DEBUG BEGIN_STMT
  2581. # DEBUG BEGIN_STMT
  2582. cTxLock.12_9 = (unsigned char) cTxLock_18;
  2583. _10 = cTxLock.12_9 + 1;
  2584. _11 = (signed char) _10;
  2585. MEM[(struct Queue_t *)xQueue_14(D)].cTxLock ={v} _11;
  2586. <bb 23> [local count: 64278]:
  2587. # xReturn_12 = PHI <1(21), 0(12), 1(17), 1(15), 1(16), 1(14)>
  2588. # DEBUG xReturn => xReturn_12
  2589. # DEBUG BEGIN_STMT
  2590. # DEBUG ulNewMaskValue => ulOriginalBASEPRI_27
  2591. # DEBUG INLINE_ENTRY vPortSetBASEPRI
  2592. # DEBUG BEGIN_STMT
  2593. __asm__ __volatile__(" msr basepri, %0 " : : "r" ulOriginalBASEPRI_27 : "memory");
  2594. # DEBUG ulNewMaskValue => NULL
  2595. # DEBUG BEGIN_STMT
  2596. return xReturn_12;
  2597. }
  2598. xQueueGenericSendFromISR (struct QueueDefinition * xQueue, const void * const pvItemToQueue, BaseType_t * const pxHigherPriorityTaskWoken, const BaseType_t xCopyPosition)
  2599. {
  2600. uint32_t ulNewBASEPRI;
  2601. uint32_t ulOriginalBASEPRI;
  2602. uint32_t ulNewBASEPRI;
  2603. uint32_t ulNewBASEPRI;
  2604. uint32_t ulNewBASEPRI;
  2605. uint32_t ulNewBASEPRI;
  2606. const UBaseType_t uxPreviousMessagesWaiting;
  2607. const int8_t cTxLock;
  2608. BaseType_t xReturn;
  2609. long unsigned int _1;
  2610. long unsigned int _2;
  2611. long unsigned int _3;
  2612. long unsigned int _4;
  2613. long unsigned int _5;
  2614. struct List_t * _6;
  2615. long int _7;
  2616. unsigned char cTxLock.10_8;
  2617. unsigned char _9;
  2618. signed char _10;
  2619. <bb 2> [local count: 357913]:
  2620. # DEBUG BEGIN_STMT
  2621. # DEBUG BEGIN_STMT
  2622. # DEBUG BEGIN_STMT
  2623. # DEBUG pxQueue => xQueue_13(D)
  2624. # DEBUG BEGIN_STMT
  2625. if (xQueue_13(D) == 0B)
  2626. goto <bb 3>; [30.00%]
  2627. else
  2628. goto <bb 5>; [70.00%]
  2629. <bb 3> [local count: 107374]:
  2630. # DEBUG BEGIN_STMT
  2631. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2632. # DEBUG BEGIN_STMT
  2633. # DEBUG BEGIN_STMT
  2634. __asm__ __volatile__(" mov %0, %1
  2635. msr basepri, %0
  2636. isb
  2637. dsb
  2638. " : "=r" ulNewBASEPRI_25 : "i" 16 : "memory");
  2639. # DEBUG ulNewBASEPRI => ulNewBASEPRI_25
  2640. <bb 4> [local count: 1073741824]:
  2641. # DEBUG ulNewBASEPRI => NULL
  2642. # DEBUG BEGIN_STMT
  2643. # DEBUG BEGIN_STMT
  2644. # DEBUG BEGIN_STMT
  2645. <bb 26> [local count: 1073741824]:
  2646. goto <bb 4>; [100.00%]
  2647. <bb 5> [local count: 250539]:
  2648. # DEBUG BEGIN_STMT
  2649. # DEBUG BEGIN_STMT
  2650. if (pvItemToQueue_14(D) != 0B)
  2651. goto <bb 9>; [70.00%]
  2652. else
  2653. goto <bb 6>; [30.00%]
  2654. <bb 6> [local count: 75162]:
  2655. _1 = MEM[(struct Queue_t *)xQueue_13(D)].uxItemSize;
  2656. if (_1 == 0)
  2657. goto <bb 9>; [50.00%]
  2658. else
  2659. goto <bb 7>; [50.00%]
  2660. <bb 7> [local count: 37581]:
  2661. # DEBUG BEGIN_STMT
  2662. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2663. # DEBUG BEGIN_STMT
  2664. # DEBUG BEGIN_STMT
  2665. __asm__ __volatile__(" mov %0, %1
  2666. msr basepri, %0
  2667. isb
  2668. dsb
  2669. " : "=r" ulNewBASEPRI_26 : "i" 16 : "memory");
  2670. # DEBUG ulNewBASEPRI => ulNewBASEPRI_26
  2671. <bb 8> [local count: 375809639]:
  2672. # DEBUG ulNewBASEPRI => NULL
  2673. # DEBUG BEGIN_STMT
  2674. # DEBUG BEGIN_STMT
  2675. # DEBUG BEGIN_STMT
  2676. <bb 29> [local count: 375809639]:
  2677. goto <bb 8>; [100.00%]
  2678. <bb 9> [local count: 212958]:
  2679. # DEBUG BEGIN_STMT
  2680. # DEBUG BEGIN_STMT
  2681. if (xCopyPosition_16(D) != 2)
  2682. goto <bb 13>; [48.88%]
  2683. else
  2684. goto <bb 10>; [51.12%]
  2685. <bb 10> [local count: 108864]:
  2686. _2 = MEM[(struct Queue_t *)xQueue_13(D)].uxLength;
  2687. if (_2 == 1)
  2688. goto <bb 13>; [34.00%]
  2689. else
  2690. goto <bb 11>; [66.00%]
  2691. <bb 11> [local count: 71850]:
  2692. # DEBUG BEGIN_STMT
  2693. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2694. # DEBUG BEGIN_STMT
  2695. # DEBUG BEGIN_STMT
  2696. __asm__ __volatile__(" mov %0, %1
  2697. msr basepri, %0
  2698. isb
  2699. dsb
  2700. " : "=r" ulNewBASEPRI_27 : "i" 16 : "memory");
  2701. # DEBUG ulNewBASEPRI => ulNewBASEPRI_27
  2702. <bb 12> [local count: 718505940]:
  2703. # DEBUG ulNewBASEPRI => NULL
  2704. # DEBUG BEGIN_STMT
  2705. # DEBUG BEGIN_STMT
  2706. # DEBUG BEGIN_STMT
  2707. <bb 28> [local count: 718505940]:
  2708. goto <bb 12>; [100.00%]
  2709. <bb 13> [local count: 141108]:
  2710. # DEBUG BEGIN_STMT
  2711. # DEBUG BEGIN_STMT
  2712. vPortValidateInterruptPriority ();
  2713. # DEBUG BEGIN_STMT
  2714. # DEBUG INLINE_ENTRY ulPortRaiseBASEPRI
  2715. # DEBUG BEGIN_STMT
  2716. # DEBUG BEGIN_STMT
  2717. __asm__ __volatile__(" mrs %0, basepri
  2718. mov %1, %2
  2719. msr basepri, %1
  2720. isb
  2721. dsb
  2722. " : "=r" ulOriginalBASEPRI_28, "=r" ulNewBASEPRI_29 : "i" 16 : "memory");
  2723. # DEBUG ulNewBASEPRI => ulNewBASEPRI_29
  2724. # DEBUG ulOriginalBASEPRI => ulOriginalBASEPRI_28
  2725. # DEBUG BEGIN_STMT
  2726. # DEBUG ulNewBASEPRI => NULL
  2727. # DEBUG ulOriginalBASEPRI => NULL
  2728. # DEBUG uxSavedInterruptStatus => ulOriginalBASEPRI_28
  2729. # DEBUG BEGIN_STMT
  2730. _3 ={v} MEM[(struct Queue_t *)xQueue_13(D)].uxMessagesWaiting;
  2731. _4 = MEM[(struct Queue_t *)xQueue_13(D)].uxLength;
  2732. if (_3 < _4)
  2733. goto <bb 15>; [33.00%]
  2734. else
  2735. goto <bb 14>; [67.00%]
  2736. <bb 14> [local count: 94542]:
  2737. if (xCopyPosition_16(D) == 2)
  2738. goto <bb 15>; [34.00%]
  2739. else
  2740. goto <bb 25>; [66.00%]
  2741. <bb 15> [local count: 78710]:
  2742. # DEBUG BEGIN_STMT
  2743. cTxLock_18 ={v} MEM[(struct Queue_t *)xQueue_13(D)].cTxLock;
  2744. # DEBUG cTxLock => cTxLock_18
  2745. # DEBUG BEGIN_STMT
  2746. uxPreviousMessagesWaiting_19 ={v} MEM[(struct Queue_t *)xQueue_13(D)].uxMessagesWaiting;
  2747. # DEBUG uxPreviousMessagesWaiting => uxPreviousMessagesWaiting_19
  2748. # DEBUG BEGIN_STMT
  2749. # DEBUG BEGIN_STMT
  2750. prvCopyDataToQueue (xQueue_13(D), pvItemToQueue_14(D), xCopyPosition_16(D));
  2751. # DEBUG BEGIN_STMT
  2752. if (cTxLock_18 == -1)
  2753. goto <bb 16>; [34.00%]
  2754. else
  2755. goto <bb 20>; [66.00%]
  2756. <bb 16> [local count: 26761]:
  2757. # DEBUG BEGIN_STMT
  2758. _5 ={v} MEM[(struct Queue_t *)xQueue_13(D)].xTasksWaitingToReceive.uxNumberOfItems;
  2759. if (_5 != 0)
  2760. goto <bb 17>; [33.00%]
  2761. else
  2762. goto <bb 25>; [67.00%]
  2763. <bb 17> [local count: 8831]:
  2764. # DEBUG BEGIN_STMT
  2765. _6 = &MEM[(struct Queue_t *)xQueue_13(D)].xTasksWaitingToReceive;
  2766. _7 = xTaskRemoveFromEventList (_6);
  2767. if (_7 != 0)
  2768. goto <bb 18>; [50.00%]
  2769. else
  2770. goto <bb 25>; [50.00%]
  2771. <bb 18> [local count: 4416]:
  2772. # DEBUG BEGIN_STMT
  2773. if (pxHigherPriorityTaskWoken_23(D) != 0B)
  2774. goto <bb 19>; [70.00%]
  2775. else
  2776. goto <bb 25>; [30.00%]
  2777. <bb 19> [local count: 3091]:
  2778. # DEBUG BEGIN_STMT
  2779. *pxHigherPriorityTaskWoken_23(D) = 1;
  2780. goto <bb 25>; [100.00%]
  2781. <bb 20> [local count: 51949]:
  2782. # DEBUG BEGIN_STMT
  2783. if (cTxLock_18 == 127)
  2784. goto <bb 21>; [34.00%]
  2785. else
  2786. goto <bb 23>; [66.00%]
  2787. <bb 21> [local count: 17663]:
  2788. # DEBUG BEGIN_STMT
  2789. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2790. # DEBUG BEGIN_STMT
  2791. # DEBUG BEGIN_STMT
  2792. __asm__ __volatile__(" mov %0, %1
  2793. msr basepri, %0
  2794. isb
  2795. dsb
  2796. " : "=r" ulNewBASEPRI_30 : "i" 16 : "memory");
  2797. # DEBUG ulNewBASEPRI => ulNewBASEPRI_30
  2798. <bb 22> [local count: 176625587]:
  2799. # DEBUG ulNewBASEPRI => NULL
  2800. # DEBUG BEGIN_STMT
  2801. # DEBUG BEGIN_STMT
  2802. # DEBUG BEGIN_STMT
  2803. <bb 27> [local count: 176625587]:
  2804. goto <bb 22>; [100.00%]
  2805. <bb 23> [local count: 34286]:
  2806. # DEBUG BEGIN_STMT
  2807. # DEBUG BEGIN_STMT
  2808. cTxLock.10_8 = (unsigned char) cTxLock_18;
  2809. _9 = cTxLock.10_8 + 1;
  2810. _10 = (signed char) _9;
  2811. MEM[(struct Queue_t *)xQueue_13(D)].cTxLock ={v} _10;
  2812. <bb 25> [local count: 123445]:
  2813. # xReturn_11 = PHI <1(23), 0(14), 1(19), 1(17), 1(18), 1(16)>
  2814. # DEBUG xReturn => xReturn_11
  2815. # DEBUG BEGIN_STMT
  2816. # DEBUG ulNewMaskValue => ulOriginalBASEPRI_28
  2817. # DEBUG INLINE_ENTRY vPortSetBASEPRI
  2818. # DEBUG BEGIN_STMT
  2819. __asm__ __volatile__(" msr basepri, %0 " : : "r" ulOriginalBASEPRI_28 : "memory");
  2820. # DEBUG ulNewMaskValue => NULL
  2821. # DEBUG BEGIN_STMT
  2822. return xReturn_11;
  2823. }
  2824. xQueueGenericSend (struct QueueDefinition * xQueue, const void * const pvItemToQueue, TickType_t xTicksToWait, const BaseType_t xCopyPosition)
  2825. {
  2826. uint32_t ulNewBASEPRI;
  2827. uint32_t ulNewBASEPRI;
  2828. uint32_t ulNewBASEPRI;
  2829. uint32_t ulNewBASEPRI;
  2830. struct TimeOut_t xTimeOut;
  2831. BaseType_t xYieldRequired;
  2832. BaseType_t xEntryTimeSet;
  2833. long unsigned int _1;
  2834. long unsigned int _2;
  2835. long int _3;
  2836. long unsigned int xTicksToWait.3_4;
  2837. long unsigned int _5;
  2838. long unsigned int _6;
  2839. long unsigned int _7;
  2840. struct List_t * _8;
  2841. long int _9;
  2842. long unsigned int xTicksToWait.4_10;
  2843. signed char _11;
  2844. signed char _12;
  2845. long int _13;
  2846. long int _14;
  2847. struct List_t * _15;
  2848. long unsigned int xTicksToWait.5_16;
  2849. long int _17;
  2850. BaseType_t _21;
  2851. <bb 2> [local count: 357913]:
  2852. # DEBUG BEGIN_STMT
  2853. # DEBUG xEntryTimeSet => 0
  2854. # DEBUG BEGIN_STMT
  2855. # DEBUG BEGIN_STMT
  2856. # DEBUG pxQueue => xQueue_29(D)
  2857. # DEBUG BEGIN_STMT
  2858. if (xQueue_29(D) == 0B)
  2859. goto <bb 3>; [30.00%]
  2860. else
  2861. goto <bb 5>; [70.00%]
  2862. <bb 3> [local count: 107374]:
  2863. # DEBUG BEGIN_STMT
  2864. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2865. # DEBUG BEGIN_STMT
  2866. # DEBUG BEGIN_STMT
  2867. __asm__ __volatile__(" mov %0, %1
  2868. msr basepri, %0
  2869. isb
  2870. dsb
  2871. " : "=r" ulNewBASEPRI_67 : "i" 16 : "memory");
  2872. # DEBUG ulNewBASEPRI => ulNewBASEPRI_67
  2873. <bb 4> [local count: 1073741824]:
  2874. # DEBUG ulNewBASEPRI => NULL
  2875. # DEBUG BEGIN_STMT
  2876. # DEBUG BEGIN_STMT
  2877. # DEBUG BEGIN_STMT
  2878. <bb 42> [local count: 1073741824]:
  2879. goto <bb 4>; [100.00%]
  2880. <bb 5> [local count: 250539]:
  2881. # DEBUG BEGIN_STMT
  2882. # DEBUG BEGIN_STMT
  2883. if (pvItemToQueue_30(D) != 0B)
  2884. goto <bb 9>; [70.00%]
  2885. else
  2886. goto <bb 6>; [30.00%]
  2887. <bb 6> [local count: 75162]:
  2888. _1 = MEM[(struct Queue_t *)xQueue_29(D)].uxItemSize;
  2889. if (_1 == 0)
  2890. goto <bb 9>; [50.00%]
  2891. else
  2892. goto <bb 7>; [50.00%]
  2893. <bb 7> [local count: 37581]:
  2894. # DEBUG BEGIN_STMT
  2895. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2896. # DEBUG BEGIN_STMT
  2897. # DEBUG BEGIN_STMT
  2898. __asm__ __volatile__(" mov %0, %1
  2899. msr basepri, %0
  2900. isb
  2901. dsb
  2902. " : "=r" ulNewBASEPRI_68 : "i" 16 : "memory");
  2903. # DEBUG ulNewBASEPRI => ulNewBASEPRI_68
  2904. <bb 8> [local count: 375809639]:
  2905. # DEBUG ulNewBASEPRI => NULL
  2906. # DEBUG BEGIN_STMT
  2907. # DEBUG BEGIN_STMT
  2908. # DEBUG BEGIN_STMT
  2909. <bb 45> [local count: 375809639]:
  2910. goto <bb 8>; [100.00%]
  2911. <bb 9> [local count: 212958]:
  2912. # DEBUG BEGIN_STMT
  2913. # DEBUG BEGIN_STMT
  2914. if (xCopyPosition_32(D) != 2)
  2915. goto <bb 13>; [48.88%]
  2916. else
  2917. goto <bb 10>; [51.12%]
  2918. <bb 10> [local count: 108864]:
  2919. _2 = MEM[(struct Queue_t *)xQueue_29(D)].uxLength;
  2920. if (_2 == 1)
  2921. goto <bb 13>; [34.00%]
  2922. else
  2923. goto <bb 11>; [66.00%]
  2924. <bb 11> [local count: 71850]:
  2925. # DEBUG BEGIN_STMT
  2926. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2927. # DEBUG BEGIN_STMT
  2928. # DEBUG BEGIN_STMT
  2929. __asm__ __volatile__(" mov %0, %1
  2930. msr basepri, %0
  2931. isb
  2932. dsb
  2933. " : "=r" ulNewBASEPRI_69 : "i" 16 : "memory");
  2934. # DEBUG ulNewBASEPRI => ulNewBASEPRI_69
  2935. <bb 12> [local count: 718505940]:
  2936. # DEBUG ulNewBASEPRI => NULL
  2937. # DEBUG BEGIN_STMT
  2938. # DEBUG BEGIN_STMT
  2939. # DEBUG BEGIN_STMT
  2940. <bb 44> [local count: 718505940]:
  2941. goto <bb 12>; [100.00%]
  2942. <bb 13> [local count: 141108]:
  2943. # DEBUG BEGIN_STMT
  2944. # DEBUG BEGIN_STMT
  2945. _3 = xTaskGetSchedulerState ();
  2946. if (_3 != 0)
  2947. goto <bb 14>; [50.00%]
  2948. else
  2949. goto <bb 15>; [50.00%]
  2950. <bb 14> [local count: 105831]:
  2951. # xEntryTimeSet_36 = PHI <0(13), 0(15)>
  2952. goto <bb 19>; [100.00%]
  2953. <bb 15> [local count: 70554]:
  2954. xTicksToWait.3_4 = xTicksToWait;
  2955. if (xTicksToWait.3_4 == 0)
  2956. goto <bb 14>; [50.00%]
  2957. else
  2958. goto <bb 16>; [50.00%]
  2959. <bb 16> [local count: 35277]:
  2960. # DEBUG BEGIN_STMT
  2961. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2962. # DEBUG BEGIN_STMT
  2963. # DEBUG BEGIN_STMT
  2964. __asm__ __volatile__(" mov %0, %1
  2965. msr basepri, %0
  2966. isb
  2967. dsb
  2968. " : "=r" ulNewBASEPRI_70 : "i" 16 : "memory");
  2969. # DEBUG ulNewBASEPRI => ulNewBASEPRI_70
  2970. <bb 17> [local count: 352770504]:
  2971. # DEBUG ulNewBASEPRI => NULL
  2972. # DEBUG BEGIN_STMT
  2973. # DEBUG BEGIN_STMT
  2974. # DEBUG BEGIN_STMT
  2975. <bb 43> [local count: 352770504]:
  2976. goto <bb 17>; [100.00%]
  2977. <bb 18> [local count: 896877]:
  2978. # xEntryTimeSet_18 = PHI <xEntryTimeSet_20(38), xEntryTimeSet_20(39), xEntryTimeSet_20(37)>
  2979. <bb 19> [local count: 1002708]:
  2980. # xEntryTimeSet_19 = PHI <xEntryTimeSet_36(14), xEntryTimeSet_18(18)>
  2981. # DEBUG xEntryTimeSet => xEntryTimeSet_19
  2982. # DEBUG BEGIN_STMT
  2983. # DEBUG BEGIN_STMT
  2984. # DEBUG BEGIN_STMT
  2985. vPortEnterCritical ();
  2986. # DEBUG BEGIN_STMT
  2987. _5 ={v} MEM[(struct Queue_t *)xQueue_29(D)].uxMessagesWaiting;
  2988. _6 = MEM[(struct Queue_t *)xQueue_29(D)].uxLength;
  2989. if (_5 < _6)
  2990. goto <bb 21>; [2.75%]
  2991. else
  2992. goto <bb 20>; [97.25%]
  2993. <bb 20> [local count: 975134]:
  2994. if (xCopyPosition_32(D) == 2)
  2995. goto <bb 21>; [2.75%]
  2996. else
  2997. goto <bb 27>; [97.25%]
  2998. <bb 21> [local count: 54391]:
  2999. # DEBUG BEGIN_STMT
  3000. # DEBUG BEGIN_STMT
  3001. xYieldRequired_57 = prvCopyDataToQueue (xQueue_29(D), pvItemToQueue_30(D), xCopyPosition_32(D));
  3002. # DEBUG xYieldRequired => xYieldRequired_57
  3003. # DEBUG BEGIN_STMT
  3004. _7 ={v} MEM[(struct Queue_t *)xQueue_29(D)].xTasksWaitingToReceive.uxNumberOfItems;
  3005. if (_7 != 0)
  3006. goto <bb 22>; [33.00%]
  3007. else
  3008. goto <bb 24>; [67.00%]
  3009. <bb 22> [local count: 17949]:
  3010. # DEBUG BEGIN_STMT
  3011. _8 = &MEM[(struct Queue_t *)xQueue_29(D)].xTasksWaitingToReceive;
  3012. _9 = xTaskRemoveFromEventList (_8);
  3013. if (_9 != 0)
  3014. goto <bb 23>; [50.00%]
  3015. else
  3016. goto <bb 26>; [50.00%]
  3017. <bb 23> [local count: 8974]:
  3018. # DEBUG BEGIN_STMT
  3019. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  3020. # DEBUG BEGIN_STMT
  3021. __asm__ __volatile__("dsb" : : : "memory");
  3022. # DEBUG BEGIN_STMT
  3023. __asm__ __volatile__("isb");
  3024. # DEBUG BEGIN_STMT
  3025. goto <bb 26>; [100.00%]
  3026. <bb 24> [local count: 36442]:
  3027. # DEBUG BEGIN_STMT
  3028. if (xYieldRequired_57 != 0)
  3029. goto <bb 25>; [50.00%]
  3030. else
  3031. goto <bb 26>; [50.00%]
  3032. <bb 25> [local count: 18221]:
  3033. # DEBUG BEGIN_STMT
  3034. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  3035. # DEBUG BEGIN_STMT
  3036. __asm__ __volatile__("dsb" : : : "memory");
  3037. # DEBUG BEGIN_STMT
  3038. __asm__ __volatile__("isb");
  3039. # DEBUG BEGIN_STMT
  3040. <bb 26> [local count: 54391]:
  3041. # DEBUG BEGIN_STMT
  3042. # DEBUG BEGIN_STMT
  3043. vPortExitCritical ();
  3044. # DEBUG BEGIN_STMT
  3045. goto <bb 41>; [100.00%]
  3046. <bb 27> [local count: 948318]:
  3047. # DEBUG BEGIN_STMT
  3048. xTicksToWait.4_10 = xTicksToWait;
  3049. if (xTicksToWait.4_10 == 0)
  3050. goto <bb 28>; [2.75%]
  3051. else
  3052. goto <bb 29>; [97.25%]
  3053. <bb 28> [local count: 26079]:
  3054. # DEBUG BEGIN_STMT
  3055. vPortExitCritical ();
  3056. # DEBUG BEGIN_STMT
  3057. # DEBUG BEGIN_STMT
  3058. goto <bb 41>; [100.00%]
  3059. <bb 29> [local count: 922239]:
  3060. # DEBUG BEGIN_STMT
  3061. if (xEntryTimeSet_19 == 0)
  3062. goto <bb 30>; [33.00%]
  3063. else
  3064. goto <bb 31>; [67.00%]
  3065. <bb 30> [local count: 304339]:
  3066. # DEBUG BEGIN_STMT
  3067. vTaskInternalSetTimeOutState (&xTimeOut);
  3068. # DEBUG BEGIN_STMT
  3069. # DEBUG xEntryTimeSet => 1
  3070. <bb 31> [local count: 922239]:
  3071. # xEntryTimeSet_20 = PHI <xEntryTimeSet_19(29), 1(30)>
  3072. # DEBUG xEntryTimeSet => xEntryTimeSet_20
  3073. # DEBUG BEGIN_STMT
  3074. # DEBUG BEGIN_STMT
  3075. vPortExitCritical ();
  3076. # DEBUG BEGIN_STMT
  3077. vTaskSuspendAll ();
  3078. # DEBUG BEGIN_STMT
  3079. vPortEnterCritical ();
  3080. # DEBUG BEGIN_STMT
  3081. _11 ={v} MEM[(struct Queue_t *)xQueue_29(D)].cRxLock;
  3082. if (_11 == -1)
  3083. goto <bb 32>; [34.00%]
  3084. else
  3085. goto <bb 33>; [66.00%]
  3086. <bb 32> [local count: 313561]:
  3087. # DEBUG BEGIN_STMT
  3088. MEM[(struct Queue_t *)xQueue_29(D)].cRxLock ={v} 0;
  3089. <bb 33> [local count: 922239]:
  3090. # DEBUG BEGIN_STMT
  3091. _12 ={v} MEM[(struct Queue_t *)xQueue_29(D)].cTxLock;
  3092. if (_12 == -1)
  3093. goto <bb 34>; [34.00%]
  3094. else
  3095. goto <bb 35>; [66.00%]
  3096. <bb 34> [local count: 313561]:
  3097. # DEBUG BEGIN_STMT
  3098. MEM[(struct Queue_t *)xQueue_29(D)].cTxLock ={v} 0;
  3099. <bb 35> [local count: 922239]:
  3100. # DEBUG BEGIN_STMT
  3101. vPortExitCritical ();
  3102. # DEBUG BEGIN_STMT
  3103. _13 = xTaskCheckForTimeOut (&xTimeOut, &xTicksToWait);
  3104. if (_13 == 0)
  3105. goto <bb 36>; [97.25%]
  3106. else
  3107. goto <bb 40>; [2.75%]
  3108. <bb 36> [local count: 896877]:
  3109. # DEBUG BEGIN_STMT
  3110. _14 = prvIsQueueFull (xQueue_29(D));
  3111. if (_14 != 0)
  3112. goto <bb 37>; [50.00%]
  3113. else
  3114. goto <bb 39>; [50.00%]
  3115. <bb 37> [local count: 448439]:
  3116. # DEBUG BEGIN_STMT
  3117. # DEBUG BEGIN_STMT
  3118. _15 = &MEM[(struct Queue_t *)xQueue_29(D)].xTasksWaitingToSend;
  3119. xTicksToWait.5_16 = xTicksToWait;
  3120. vTaskPlaceOnEventList (_15, xTicksToWait.5_16);
  3121. # DEBUG BEGIN_STMT
  3122. prvUnlockQueue (xQueue_29(D));
  3123. # DEBUG BEGIN_STMT
  3124. _17 = xTaskResumeAll ();
  3125. if (_17 == 0)
  3126. goto <bb 38>; [50.00%]
  3127. else
  3128. goto <bb 18>; [50.00%]
  3129. <bb 38> [local count: 224219]:
  3130. # DEBUG BEGIN_STMT
  3131. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  3132. # DEBUG BEGIN_STMT
  3133. __asm__ __volatile__("dsb" : : : "memory");
  3134. # DEBUG BEGIN_STMT
  3135. __asm__ __volatile__("isb");
  3136. goto <bb 18>; [100.00%]
  3137. <bb 39> [local count: 448439]:
  3138. # DEBUG BEGIN_STMT
  3139. prvUnlockQueue (xQueue_29(D));
  3140. # DEBUG BEGIN_STMT
  3141. xTaskResumeAll ();
  3142. goto <bb 18>; [100.00%]
  3143. <bb 40> [local count: 25362]:
  3144. # DEBUG BEGIN_STMT
  3145. prvUnlockQueue (xQueue_29(D));
  3146. # DEBUG BEGIN_STMT
  3147. xTaskResumeAll ();
  3148. # DEBUG BEGIN_STMT
  3149. # DEBUG BEGIN_STMT
  3150. <bb 41> [local count: 105831]:
  3151. # _21 = PHI <1(26), 0(28), 0(40)>
  3152. xTimeOut ={v} {CLOBBER};
  3153. return _21;
  3154. }
  3155. xQueueCreateCountingSemaphore (const UBaseType_t uxMaxCount, const UBaseType_t uxInitialCount)
  3156. {
  3157. uint32_t ulNewBASEPRI;
  3158. struct QueueDefinition * xHandle;
  3159. <bb 2> [local count: 128592]:
  3160. # DEBUG BEGIN_STMT
  3161. # DEBUG xHandle => 0B
  3162. # DEBUG BEGIN_STMT
  3163. if (uxMaxCount_2(D) != 0)
  3164. goto <bb 3>; [50.00%]
  3165. else
  3166. goto <bb 6>; [50.00%]
  3167. <bb 3> [local count: 64296]:
  3168. if (uxMaxCount_2(D) >= uxInitialCount_3(D))
  3169. goto <bb 4>; [33.00%]
  3170. else
  3171. goto <bb 6>; [67.00%]
  3172. <bb 4> [local count: 21218]:
  3173. # DEBUG BEGIN_STMT
  3174. xHandle_6 = xQueueGenericCreate (uxMaxCount_2(D), 0, 2);
  3175. # DEBUG xHandle => xHandle_6
  3176. # DEBUG BEGIN_STMT
  3177. if (xHandle_6 != 0B)
  3178. goto <bb 5>; [70.00%]
  3179. else
  3180. goto <bb 8>; [30.00%]
  3181. <bb 5> [local count: 14852]:
  3182. # DEBUG BEGIN_STMT
  3183. MEM[(struct Queue_t *)xHandle_6].uxMessagesWaiting ={v} uxInitialCount_3(D);
  3184. # DEBUG BEGIN_STMT
  3185. goto <bb 8>; [100.00%]
  3186. <bb 6> [local count: 107374]:
  3187. # DEBUG BEGIN_STMT
  3188. # DEBUG BEGIN_STMT
  3189. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  3190. # DEBUG BEGIN_STMT
  3191. # DEBUG BEGIN_STMT
  3192. __asm__ __volatile__(" mov %0, %1
  3193. msr basepri, %0
  3194. isb
  3195. dsb
  3196. " : "=r" ulNewBASEPRI_8 : "i" 16 : "memory");
  3197. # DEBUG ulNewBASEPRI => ulNewBASEPRI_8
  3198. <bb 7> [local count: 1073741824]:
  3199. # DEBUG ulNewBASEPRI => NULL
  3200. # DEBUG BEGIN_STMT
  3201. # DEBUG BEGIN_STMT
  3202. # DEBUG BEGIN_STMT
  3203. <bb 9> [local count: 1073741824]:
  3204. goto <bb 7>; [100.00%]
  3205. <bb 8> [local count: 21218]:
  3206. # DEBUG xHandle => xHandle_6
  3207. # DEBUG BEGIN_STMT
  3208. # DEBUG BEGIN_STMT
  3209. # DEBUG BEGIN_STMT
  3210. return xHandle_6;
  3211. }
  3212. xQueueTakeMutexRecursive (struct QueueDefinition * xMutex, TickType_t xTicksToWait)
  3213. {
  3214. uint32_t ulNewBASEPRI;
  3215. BaseType_t xReturn;
  3216. struct tskTaskControlBlock * _1;
  3217. struct tskTaskControlBlock * _2;
  3218. long unsigned int _3;
  3219. long unsigned int _4;
  3220. long unsigned int _5;
  3221. long unsigned int _6;
  3222. <bb 2> [local count: 230763]:
  3223. # DEBUG BEGIN_STMT
  3224. # DEBUG BEGIN_STMT
  3225. # DEBUG pxMutex => xMutex_9(D)
  3226. # DEBUG BEGIN_STMT
  3227. if (xMutex_9(D) == 0B)
  3228. goto <bb 3>; [46.53%]
  3229. else
  3230. goto <bb 5>; [53.47%]
  3231. <bb 3> [local count: 107374]:
  3232. # DEBUG BEGIN_STMT
  3233. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  3234. # DEBUG BEGIN_STMT
  3235. # DEBUG BEGIN_STMT
  3236. __asm__ __volatile__(" mov %0, %1
  3237. msr basepri, %0
  3238. isb
  3239. dsb
  3240. " : "=r" ulNewBASEPRI_17 : "i" 16 : "memory");
  3241. # DEBUG ulNewBASEPRI => ulNewBASEPRI_17
  3242. <bb 4> [local count: 1073741824]:
  3243. # DEBUG ulNewBASEPRI => NULL
  3244. # DEBUG BEGIN_STMT
  3245. # DEBUG BEGIN_STMT
  3246. # DEBUG BEGIN_STMT
  3247. <bb 10> [local count: 1073741824]:
  3248. goto <bb 4>; [100.00%]
  3249. <bb 5> [local count: 123389]:
  3250. # DEBUG BEGIN_STMT
  3251. # DEBUG BEGIN_STMT
  3252. # DEBUG BEGIN_STMT
  3253. _1 = MEM[(struct Queue_t *)xMutex_9(D)].u.xSemaphore.xMutexHolder;
  3254. _2 = xTaskGetCurrentTaskHandle ();
  3255. if (_1 == _2)
  3256. goto <bb 6>; [46.53%]
  3257. else
  3258. goto <bb 7>; [53.47%]
  3259. <bb 6> [local count: 57413]:
  3260. # DEBUG BEGIN_STMT
  3261. _3 = MEM[(struct Queue_t *)xMutex_9(D)].u.xSemaphore.uxRecursiveCallCount;
  3262. _4 = _3 + 1;
  3263. MEM[(struct Queue_t *)xMutex_9(D)].u.xSemaphore.uxRecursiveCallCount = _4;
  3264. # DEBUG BEGIN_STMT
  3265. # DEBUG xReturn => 1
  3266. goto <bb 9>; [100.00%]
  3267. <bb 7> [local count: 65976]:
  3268. # DEBUG BEGIN_STMT
  3269. xReturn_14 = xQueueSemaphoreTake (xMutex_9(D), xTicksToWait_12(D));
  3270. # DEBUG xReturn => xReturn_14
  3271. # DEBUG BEGIN_STMT
  3272. if (xReturn_14 != 0)
  3273. goto <bb 8>; [50.00%]
  3274. else
  3275. goto <bb 9>; [50.00%]
  3276. <bb 8> [local count: 32988]:
  3277. # DEBUG BEGIN_STMT
  3278. _5 = MEM[(struct Queue_t *)xMutex_9(D)].u.xSemaphore.uxRecursiveCallCount;
  3279. _6 = _5 + 1;
  3280. MEM[(struct Queue_t *)xMutex_9(D)].u.xSemaphore.uxRecursiveCallCount = _6;
  3281. <bb 9> [local count: 123389]:
  3282. # xReturn_7 = PHI <1(6), xReturn_14(7), xReturn_14(8)>
  3283. # DEBUG xReturn => xReturn_7
  3284. # DEBUG BEGIN_STMT
  3285. # DEBUG BEGIN_STMT
  3286. return xReturn_7;
  3287. }
  3288. xQueueGiveMutexRecursive (struct QueueDefinition * xMutex)
  3289. {
  3290. uint32_t ulNewBASEPRI;
  3291. BaseType_t xReturn;
  3292. struct tskTaskControlBlock * _1;
  3293. struct tskTaskControlBlock * _2;
  3294. long unsigned int _3;
  3295. long unsigned int _4;
  3296. <bb 2> [local count: 230763]:
  3297. # DEBUG BEGIN_STMT
  3298. # DEBUG BEGIN_STMT
  3299. # DEBUG pxMutex => xMutex_7(D)
  3300. # DEBUG BEGIN_STMT
  3301. if (xMutex_7(D) == 0B)
  3302. goto <bb 3>; [46.53%]
  3303. else
  3304. goto <bb 5>; [53.47%]
  3305. <bb 3> [local count: 107374]:
  3306. # DEBUG BEGIN_STMT
  3307. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  3308. # DEBUG BEGIN_STMT
  3309. # DEBUG BEGIN_STMT
  3310. __asm__ __volatile__(" mov %0, %1
  3311. msr basepri, %0
  3312. isb
  3313. dsb
  3314. " : "=r" ulNewBASEPRI_12 : "i" 16 : "memory");
  3315. # DEBUG ulNewBASEPRI => ulNewBASEPRI_12
  3316. <bb 4> [local count: 1073741824]:
  3317. # DEBUG ulNewBASEPRI => NULL
  3318. # DEBUG BEGIN_STMT
  3319. # DEBUG BEGIN_STMT
  3320. # DEBUG BEGIN_STMT
  3321. <bb 10> [local count: 1073741824]:
  3322. goto <bb 4>; [100.00%]
  3323. <bb 5> [local count: 123389]:
  3324. # DEBUG BEGIN_STMT
  3325. # DEBUG BEGIN_STMT
  3326. _1 = MEM[(struct Queue_t *)xMutex_7(D)].u.xSemaphore.xMutexHolder;
  3327. _2 = xTaskGetCurrentTaskHandle ();
  3328. if (_1 == _2)
  3329. goto <bb 6>; [30.00%]
  3330. else
  3331. goto <bb 9>; [70.00%]
  3332. <bb 6> [local count: 37017]:
  3333. # DEBUG BEGIN_STMT
  3334. # DEBUG BEGIN_STMT
  3335. _3 = MEM[(struct Queue_t *)xMutex_7(D)].u.xSemaphore.uxRecursiveCallCount;
  3336. _4 = _3 + 4294967295;
  3337. MEM[(struct Queue_t *)xMutex_7(D)].u.xSemaphore.uxRecursiveCallCount = _4;
  3338. # DEBUG BEGIN_STMT
  3339. if (_4 == 0)
  3340. goto <bb 7>; [33.00%]
  3341. else
  3342. goto <bb 9>; [67.00%]
  3343. <bb 7> [local count: 12216]:
  3344. # DEBUG BEGIN_STMT
  3345. xQueueGenericSend (xMutex_7(D), 0B, 0, 0);
  3346. <bb 9> [local count: 123389]:
  3347. # xReturn_5 = PHI <1(7), 0(5), 1(6)>
  3348. # DEBUG xReturn => xReturn_5
  3349. # DEBUG BEGIN_STMT
  3350. # DEBUG BEGIN_STMT
  3351. return xReturn_5;
  3352. }
  3353. xQueueGetMutexHolderFromISR (struct QueueDefinition * xSemaphore)
  3354. {
  3355. uint32_t ulNewBASEPRI;
  3356. struct tskTaskControlBlock * pxReturn;
  3357. int8_t * _1;
  3358. <bb 2> [local count: 357913]:
  3359. # DEBUG BEGIN_STMT
  3360. # DEBUG BEGIN_STMT
  3361. if (xSemaphore_3(D) == 0B)
  3362. goto <bb 3>; [30.00%]
  3363. else
  3364. goto <bb 5>; [70.00%]
  3365. <bb 3> [local count: 107374]:
  3366. # DEBUG BEGIN_STMT
  3367. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  3368. # DEBUG BEGIN_STMT
  3369. # DEBUG BEGIN_STMT
  3370. __asm__ __volatile__(" mov %0, %1
  3371. msr basepri, %0
  3372. isb
  3373. dsb
  3374. " : "=r" ulNewBASEPRI_6 : "i" 16 : "memory");
  3375. # DEBUG ulNewBASEPRI => ulNewBASEPRI_6
  3376. <bb 4> [local count: 1073741824]:
  3377. # DEBUG ulNewBASEPRI => NULL
  3378. # DEBUG BEGIN_STMT
  3379. # DEBUG BEGIN_STMT
  3380. # DEBUG BEGIN_STMT
  3381. <bb 8> [local count: 1073741824]:
  3382. goto <bb 4>; [100.00%]
  3383. <bb 5> [local count: 250539]:
  3384. # DEBUG BEGIN_STMT
  3385. # DEBUG BEGIN_STMT
  3386. _1 = MEM[(struct Queue_t *)xSemaphore_3(D)].pcHead;
  3387. if (_1 == 0B)
  3388. goto <bb 6>; [51.20%]
  3389. else
  3390. goto <bb 7>; [48.80%]
  3391. <bb 6> [local count: 128276]:
  3392. # DEBUG BEGIN_STMT
  3393. pxReturn_5 = MEM[(struct Queue_t *)xSemaphore_3(D)].u.xSemaphore.xMutexHolder;
  3394. # DEBUG pxReturn => pxReturn_5
  3395. <bb 7> [local count: 250539]:
  3396. # pxReturn_2 = PHI <pxReturn_5(6), 0B(5)>
  3397. # DEBUG pxReturn => pxReturn_2
  3398. # DEBUG BEGIN_STMT
  3399. return pxReturn_2;
  3400. }
  3401. xQueueGetMutexHolder (struct QueueDefinition * xSemaphore)
  3402. {
  3403. uint32_t ulNewBASEPRI;
  3404. struct tskTaskControlBlock * pxReturn;
  3405. int8_t * _1;
  3406. <bb 2> [local count: 230763]:
  3407. # DEBUG BEGIN_STMT
  3408. # DEBUG BEGIN_STMT
  3409. # DEBUG pxSemaphore => xSemaphore_3(D)
  3410. # DEBUG BEGIN_STMT
  3411. if (xSemaphore_3(D) == 0B)
  3412. goto <bb 3>; [46.53%]
  3413. else
  3414. goto <bb 5>; [53.47%]
  3415. <bb 3> [local count: 107374]:
  3416. # DEBUG BEGIN_STMT
  3417. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  3418. # DEBUG BEGIN_STMT
  3419. # DEBUG BEGIN_STMT
  3420. __asm__ __volatile__(" mov %0, %1
  3421. msr basepri, %0
  3422. isb
  3423. dsb
  3424. " : "=r" ulNewBASEPRI_8 : "i" 16 : "memory");
  3425. # DEBUG ulNewBASEPRI => ulNewBASEPRI_8
  3426. <bb 4> [local count: 1073741824]:
  3427. # DEBUG ulNewBASEPRI => NULL
  3428. # DEBUG BEGIN_STMT
  3429. # DEBUG BEGIN_STMT
  3430. # DEBUG BEGIN_STMT
  3431. <bb 8> [local count: 1073741824]:
  3432. goto <bb 4>; [100.00%]
  3433. <bb 5> [local count: 123389]:
  3434. # DEBUG BEGIN_STMT
  3435. # DEBUG BEGIN_STMT
  3436. vPortEnterCritical ();
  3437. # DEBUG BEGIN_STMT
  3438. _1 = MEM[(struct Queue_t *)xSemaphore_3(D)].pcHead;
  3439. if (_1 == 0B)
  3440. goto <bb 6>; [51.20%]
  3441. else
  3442. goto <bb 7>; [48.80%]
  3443. <bb 6> [local count: 63175]:
  3444. # DEBUG BEGIN_STMT
  3445. pxReturn_6 = MEM[(struct Queue_t *)xSemaphore_3(D)].u.xSemaphore.xMutexHolder;
  3446. # DEBUG pxReturn => pxReturn_6
  3447. <bb 7> [local count: 123389]:
  3448. # pxReturn_2 = PHI <pxReturn_6(6), 0B(5)>
  3449. # DEBUG pxReturn => pxReturn_2
  3450. # DEBUG BEGIN_STMT
  3451. vPortExitCritical ();
  3452. # DEBUG BEGIN_STMT
  3453. return pxReturn_2;
  3454. }
  3455. xQueueCreateMutex (const uint8_t ucQueueType)
  3456. {
  3457. struct QueueDefinition * xNewQueue;
  3458. <bb 2> [local count: 1073741824]:
  3459. # DEBUG BEGIN_STMT
  3460. # DEBUG BEGIN_STMT
  3461. # DEBUG uxMutexLength => 1
  3462. # DEBUG uxMutexSize => 0
  3463. # DEBUG BEGIN_STMT
  3464. xNewQueue_4 = xQueueGenericCreate (1, 0, ucQueueType_2(D));
  3465. # DEBUG xNewQueue => xNewQueue_4
  3466. # DEBUG BEGIN_STMT
  3467. prvInitialiseMutex (xNewQueue_4);
  3468. # DEBUG BEGIN_STMT
  3469. return xNewQueue_4;
  3470. }
  3471. prvInitialiseMutex (struct Queue_t * pxNewQueue)
  3472. {
  3473. <bb 2> [local count: 1073741824]:
  3474. # DEBUG BEGIN_STMT
  3475. if (pxNewQueue_2(D) != 0B)
  3476. goto <bb 3>; [53.47%]
  3477. else
  3478. goto <bb 4>; [46.53%]
  3479. <bb 3> [local count: 574129754]:
  3480. # DEBUG BEGIN_STMT
  3481. pxNewQueue_2(D)->u.xSemaphore.xMutexHolder = 0B;
  3482. # DEBUG BEGIN_STMT
  3483. pxNewQueue_2(D)->pcHead = 0B;
  3484. # DEBUG BEGIN_STMT
  3485. pxNewQueue_2(D)->u.xSemaphore.uxRecursiveCallCount = 0;
  3486. # DEBUG BEGIN_STMT
  3487. # DEBUG BEGIN_STMT
  3488. xQueueGenericSend (pxNewQueue_2(D), 0B, 0, 0);
  3489. <bb 4> [local count: 1073741824]:
  3490. # DEBUG BEGIN_STMT
  3491. return;
  3492. }
  3493. prvInitialiseNewQueue (const UBaseType_t uxQueueLength, const UBaseType_t uxItemSize, uint8_t * pucQueueStorage, const uint8_t ucQueueType, struct Queue_t * pxNewQueue)
  3494. {
  3495. <bb 2> [local count: 1073741824]:
  3496. # DEBUG BEGIN_STMT
  3497. # DEBUG BEGIN_STMT
  3498. if (uxItemSize_2(D) == 0)
  3499. goto <bb 3>; [50.00%]
  3500. else
  3501. goto <bb 4>; [50.00%]
  3502. <bb 3> [local count: 536870913]:
  3503. # DEBUG BEGIN_STMT
  3504. pxNewQueue_4(D)->pcHead = pxNewQueue_4(D);
  3505. goto <bb 5>; [100.00%]
  3506. <bb 4> [local count: 536870913]:
  3507. # DEBUG BEGIN_STMT
  3508. pxNewQueue_4(D)->pcHead = pucQueueStorage_5(D);
  3509. <bb 5> [local count: 1073741824]:
  3510. # DEBUG BEGIN_STMT
  3511. pxNewQueue_4(D)->uxLength = uxQueueLength_8(D);
  3512. # DEBUG BEGIN_STMT
  3513. pxNewQueue_4(D)->uxItemSize = uxItemSize_2(D);
  3514. # DEBUG BEGIN_STMT
  3515. xQueueGenericReset (pxNewQueue_4(D), 1);
  3516. # DEBUG BEGIN_STMT
  3517. pxNewQueue_4(D)->ucQueueType = ucQueueType_12(D);
  3518. # DEBUG BEGIN_STMT
  3519. return;
  3520. }
  3521. xQueueGenericCreate (const UBaseType_t uxQueueLength, const UBaseType_t uxItemSize, const uint8_t ucQueueType)
  3522. {
  3523. uint32_t ulNewBASEPRI;
  3524. uint8_t * pucQueueStorage;
  3525. struct Queue_t * pxNewQueue;
  3526. __complex__ long unsigned int _1;
  3527. long unsigned int _2;
  3528. long unsigned int _3;
  3529. unsigned int _4;
  3530. <bb 2> [local count: 117029]:
  3531. # DEBUG BEGIN_STMT
  3532. # DEBUG pxNewQueue => 0B
  3533. # DEBUG BEGIN_STMT
  3534. # DEBUG BEGIN_STMT
  3535. # DEBUG BEGIN_STMT
  3536. if (uxQueueLength_6(D) != 0)
  3537. goto <bb 3>; [50.00%]
  3538. else
  3539. goto <bb 7>; [50.00%]
  3540. <bb 3> [local count: 58514]:
  3541. _1 = .MUL_OVERFLOW (uxItemSize_7(D), uxQueueLength_6(D));
  3542. _2 = IMAGPART_EXPR <_1>;
  3543. if (_2 == 0)
  3544. goto <bb 4>; [50.00%]
  3545. else
  3546. goto <bb 7>; [50.00%]
  3547. <bb 4> [local count: 29257]:
  3548. _3 = uxQueueLength_6(D) * uxItemSize_7(D);
  3549. if (_3 <= 4294967215)
  3550. goto <bb 5>; [33.00%]
  3551. else
  3552. goto <bb 7>; [67.00%]
  3553. <bb 5> [local count: 9655]:
  3554. # DEBUG BEGIN_STMT
  3555. # DEBUG xQueueSizeInBytes => _3
  3556. # DEBUG BEGIN_STMT
  3557. _4 = _3 + 80;
  3558. pxNewQueue_10 = pvPortMalloc (_4);
  3559. # DEBUG pxNewQueue => pxNewQueue_10
  3560. # DEBUG BEGIN_STMT
  3561. if (pxNewQueue_10 != 0B)
  3562. goto <bb 6>; [53.47%]
  3563. else
  3564. goto <bb 9>; [46.53%]
  3565. <bb 6> [local count: 5162]:
  3566. # DEBUG BEGIN_STMT
  3567. # DEBUG pucQueueStorage => pxNewQueue_10
  3568. # DEBUG BEGIN_STMT
  3569. pucQueueStorage_11 = pxNewQueue_10 + 80;
  3570. # DEBUG pucQueueStorage => pucQueueStorage_11
  3571. # DEBUG BEGIN_STMT
  3572. prvInitialiseNewQueue (uxQueueLength_6(D), uxItemSize_7(D), pucQueueStorage_11, ucQueueType_12(D), pxNewQueue_10);
  3573. goto <bb 9>; [100.00%]
  3574. <bb 7> [local count: 107374]:
  3575. # DEBUG BEGIN_STMT
  3576. # DEBUG BEGIN_STMT
  3577. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  3578. # DEBUG BEGIN_STMT
  3579. # DEBUG BEGIN_STMT
  3580. __asm__ __volatile__(" mov %0, %1
  3581. msr basepri, %0
  3582. isb
  3583. dsb
  3584. " : "=r" ulNewBASEPRI_14 : "i" 16 : "memory");
  3585. # DEBUG ulNewBASEPRI => ulNewBASEPRI_14
  3586. <bb 8> [local count: 1073741824]:
  3587. # DEBUG ulNewBASEPRI => NULL
  3588. # DEBUG BEGIN_STMT
  3589. # DEBUG BEGIN_STMT
  3590. # DEBUG BEGIN_STMT
  3591. <bb 10> [local count: 1073741824]:
  3592. goto <bb 8>; [100.00%]
  3593. <bb 9> [local count: 9655]:
  3594. # DEBUG pxNewQueue => pxNewQueue_10
  3595. # DEBUG BEGIN_STMT
  3596. # DEBUG BEGIN_STMT
  3597. # DEBUG BEGIN_STMT
  3598. return pxNewQueue_10;
  3599. }
  3600. xQueueGenericReset (struct QueueDefinition * xQueue, BaseType_t xNewQueue)
  3601. {
  3602. BaseType_t D.7333;
  3603. uint32_t ulNewBASEPRI;
  3604. uint32_t ulNewBASEPRI;
  3605. long unsigned int _1;
  3606. __complex__ long unsigned int _2;
  3607. long unsigned int _3;
  3608. long unsigned int _4;
  3609. <bb 2> [local count: 183702]:
  3610. # DEBUG BEGIN_STMT
  3611. # DEBUG xReturn => 1
  3612. # DEBUG BEGIN_STMT
  3613. # DEBUG pxQueue => xQueue_5(D)
  3614. # DEBUG BEGIN_STMT
  3615. if (xQueue_5(D) == 0B)
  3616. goto <bb 3>; [30.00%]
  3617. else
  3618. goto <bb 5>; [70.00%]
  3619. <bb 3> [local count: 55111]:
  3620. # DEBUG BEGIN_STMT
  3621. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  3622. # DEBUG BEGIN_STMT
  3623. # DEBUG BEGIN_STMT
  3624. __asm__ __volatile__(" mov %0, %1
  3625. msr basepri, %0
  3626. isb
  3627. dsb
  3628. " : "=r" ulNewBASEPRI_9 : "i" 16 : "memory");
  3629. # DEBUG ulNewBASEPRI => ulNewBASEPRI_9
  3630. <bb 4> [local count: 551107865]:
  3631. # DEBUG ulNewBASEPRI => NULL
  3632. # DEBUG BEGIN_STMT
  3633. # DEBUG BEGIN_STMT
  3634. # DEBUG BEGIN_STMT
  3635. <bb 10> [local count: 551107865]:
  3636. goto <bb 4>; [100.00%]
  3637. <bb 5> [local count: 128592]:
  3638. # DEBUG BEGIN_STMT
  3639. # DEBUG BEGIN_STMT
  3640. _1 = MEM[(struct Queue_t *)xQueue_5(D)].uxLength;
  3641. if (_1 != 0)
  3642. goto <bb 6>; [50.00%]
  3643. else
  3644. goto <bb 8>; [50.00%]
  3645. <bb 6> [local count: 64296]:
  3646. _3 = MEM[(struct Queue_t *)xQueue_5(D)].uxItemSize;
  3647. _2 = .MUL_OVERFLOW (_3, _1);
  3648. _4 = IMAGPART_EXPR <_2>;
  3649. if (_4 == 0)
  3650. goto <bb 7>; [33.00%]
  3651. else
  3652. goto <bb 8>; [67.00%]
  3653. <bb 7> [local count: 21218]:
  3654. _13 = xQueueGenericReset.part.0 (xQueue_5(D), xNewQueue_7(D));
  3655. return _13;
  3656. <bb 8> [local count: 107374]:
  3657. # DEBUG xReturn => NULL
  3658. # DEBUG BEGIN_STMT
  3659. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  3660. # DEBUG BEGIN_STMT
  3661. # DEBUG BEGIN_STMT
  3662. __asm__ __volatile__(" mov %0, %1
  3663. msr basepri, %0
  3664. isb
  3665. dsb
  3666. " : "=r" ulNewBASEPRI_10 : "i" 16 : "memory");
  3667. # DEBUG ulNewBASEPRI => ulNewBASEPRI_10
  3668. <bb 9> [local count: 1073741824]:
  3669. # DEBUG ulNewBASEPRI => NULL
  3670. # DEBUG BEGIN_STMT
  3671. # DEBUG BEGIN_STMT
  3672. # DEBUG BEGIN_STMT
  3673. <bb 11> [local count: 1073741824]:
  3674. goto <bb 9>; [100.00%]
  3675. }