Power_Ip_SMC.c.076i.inline 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494
  1. IPA summary for Power_Ip_SMC_ModeConfig/2 is missing.
  2. IPA summary for Power_Ip_SMC_ModeCheckEntry/1 is missing.
  3. IPA summary for Power_Ip_SMC_AllowedModesConfig/0 is missing.
  4. Flattening functions:
  5. Overall time estimate: 0.000000 weighted by profile: 0.000000
  6. Deciding on inlining of small functions. Starting with size 0.
  7. Reclaiming functions:
  8. Reclaiming variables:
  9. Clearing address taken flags:
  10. Deciding on functions to be inlined into all callers and removing useless speculations:
  11. Overall time estimate: 0.000000 weighted by profile: 0.000000
  12. Why inlining failed?
  13. function body not available : 9 calls, 9.000000 freq, 0 count
  14. IPA summary for Power_Ip_SMC_ModeConfig/2 is missing.
  15. IPA summary for Power_Ip_SMC_ModeCheckEntry/1 is missing.
  16. IPA summary for Power_Ip_SMC_AllowedModesConfig/0 is missing.
  17. Symbol table:
  18. Power_Ip_CM4_EnableSleepOnExit/5 (Power_Ip_CM4_EnableSleepOnExit) @06aed1c0
  19. Type: function
  20. Visibility: external public
  21. References:
  22. Referring:
  23. Availability: not_available
  24. Function flags:
  25. Called by: Power_Ip_SMC_ModeConfig/2 Power_Ip_SMC_ModeConfig/2 Power_Ip_SMC_ModeConfig/2
  26. Calls:
  27. PowerTimeoutExpired/4 (PowerTimeoutExpired) @06aed0e0
  28. Type: function
  29. Visibility: external public
  30. References:
  31. Referring:
  32. Availability: not_available
  33. Function flags:
  34. Called by: Power_Ip_SMC_ModeConfig/2 Power_Ip_SMC_ModeConfig/2 Power_Ip_SMC_ModeConfig/2
  35. Calls:
  36. PowerStartTimeout/3 (PowerStartTimeout) @06aed000
  37. Type: function
  38. Visibility: external public
  39. References:
  40. Referring:
  41. Availability: not_available
  42. Function flags:
  43. Called by: Power_Ip_SMC_ModeConfig/2 Power_Ip_SMC_ModeConfig/2 Power_Ip_SMC_ModeConfig/2
  44. Calls:
  45. Power_Ip_SMC_ModeConfig/2 (Power_Ip_SMC_ModeConfig) @06acc9a0
  46. Type: function definition analyzed
  47. Visibility: force_output externally_visible no_reorder public
  48. References:
  49. Referring:
  50. Availability: available
  51. Function flags: body
  52. Called by:
  53. Calls: Power_Ip_CM4_EnableSleepOnExit/5 Power_Ip_CM4_EnableSleepOnExit/5 Power_Ip_CM4_EnableSleepOnExit/5 PowerTimeoutExpired/4 PowerStartTimeout/3 PowerTimeoutExpired/4 PowerStartTimeout/3 PowerTimeoutExpired/4 PowerStartTimeout/3
  54. Power_Ip_SMC_ModeCheckEntry/1 (Power_Ip_SMC_ModeCheckEntry) @06acc460
  55. Type: function definition analyzed
  56. Visibility: force_output externally_visible no_reorder public
  57. References:
  58. Referring:
  59. Availability: available
  60. Function flags: body
  61. Called by:
  62. Calls:
  63. Power_Ip_SMC_AllowedModesConfig/0 (Power_Ip_SMC_AllowedModesConfig) @06acc1c0
  64. Type: function definition analyzed
  65. Visibility: force_output externally_visible no_reorder public
  66. References:
  67. Referring:
  68. Availability: available
  69. Function flags: body
  70. Called by:
  71. Calls:
  72. ;; Function Power_Ip_SMC_AllowedModesConfig (Power_Ip_SMC_AllowedModesConfig, funcdef_no=0, decl_uid=5638, cgraph_uid=1, symbol_order=0)
  73. Power_Ip_SMC_AllowedModesConfig (const struct Power_Ip_SMC_ConfigType * pConfigPtr)
  74. {
  75. long unsigned int _1;
  76. struct SMC_Type * _2;
  77. long unsigned int _3;
  78. <bb 2> :
  79. _1 = pConfigPtr_5(D)->u32AllowedModes;
  80. _2 = 1074257920B;
  81. _3 = _1 & 160;
  82. _2->PMPROT ={v} _3;
  83. return;
  84. }
  85. ;; Function Power_Ip_SMC_ModeCheckEntry (Power_Ip_SMC_ModeCheckEntry, funcdef_no=1, decl_uid=5640, cgraph_uid=2, symbol_order=1)
  86. Power_Ip_SMC_ModeCheckEntry (Power_Ip_PowerModeType ePowerMode)
  87. {
  88. uint32 eCurrentPowerMode;
  89. Power_Ip_SMC_ModeStatusType ePowerModeCheck;
  90. Power_Ip_SMC_ModeStatusType D.5731;
  91. struct SMC_Type * _1;
  92. long unsigned int _2;
  93. Power_Ip_SMC_ModeStatusType _20;
  94. <bb 2> :
  95. ePowerModeCheck_9 = 1;
  96. eCurrentPowerMode_10 = 1;
  97. _1 = 1074257920B;
  98. _2 ={v} _1->PMSTAT;
  99. eCurrentPowerMode_12 = _2 & 255;
  100. switch (ePowerMode_13(D)) <default: <L18> [INV], case 0: <L0> [INV], case 1: <L1> [INV], case 2: <L4> [INV], case 3: <L8> [INV], case 4: <L12> [INV], case 5: <L15> [INV]>
  101. <bb 3> :
  102. <L0>:
  103. ePowerModeCheck_19 = 0;
  104. goto <bb 22>; [INV]
  105. <bb 4> :
  106. <L1>:
  107. if (eCurrentPowerMode_12 == 1)
  108. goto <bb 5>; [INV]
  109. else
  110. goto <bb 6>; [INV]
  111. <bb 5> :
  112. ePowerModeCheck_18 = 0;
  113. <bb 6> :
  114. # ePowerModeCheck_3 = PHI <ePowerModeCheck_9(4), ePowerModeCheck_18(5)>
  115. goto <bb 22>; [INV]
  116. <bb 7> :
  117. <L4>:
  118. if (eCurrentPowerMode_12 == 1)
  119. goto <bb 9>; [INV]
  120. else
  121. goto <bb 8>; [INV]
  122. <bb 8> :
  123. if (eCurrentPowerMode_12 == 16)
  124. goto <bb 9>; [INV]
  125. else
  126. goto <bb 10>; [INV]
  127. <bb 9> :
  128. ePowerModeCheck_17 = 0;
  129. <bb 10> :
  130. # ePowerModeCheck_4 = PHI <ePowerModeCheck_9(8), ePowerModeCheck_17(9)>
  131. goto <bb 22>; [INV]
  132. <bb 11> :
  133. <L8>:
  134. if (eCurrentPowerMode_12 == 1)
  135. goto <bb 13>; [INV]
  136. else
  137. goto <bb 12>; [INV]
  138. <bb 12> :
  139. if (eCurrentPowerMode_12 == 4)
  140. goto <bb 13>; [INV]
  141. else
  142. goto <bb 14>; [INV]
  143. <bb 13> :
  144. ePowerModeCheck_16 = 0;
  145. <bb 14> :
  146. # ePowerModeCheck_5 = PHI <ePowerModeCheck_9(12), ePowerModeCheck_16(13)>
  147. goto <bb 22>; [INV]
  148. <bb 15> :
  149. <L12>:
  150. if (eCurrentPowerMode_12 == 1)
  151. goto <bb 16>; [INV]
  152. else
  153. goto <bb 17>; [INV]
  154. <bb 16> :
  155. ePowerModeCheck_15 = 0;
  156. <bb 17> :
  157. # ePowerModeCheck_6 = PHI <ePowerModeCheck_9(15), ePowerModeCheck_15(16)>
  158. goto <bb 22>; [INV]
  159. <bb 18> :
  160. <L15>:
  161. if (eCurrentPowerMode_12 == 1)
  162. goto <bb 19>; [INV]
  163. else
  164. goto <bb 20>; [INV]
  165. <bb 19> :
  166. ePowerModeCheck_14 = 0;
  167. <bb 20> :
  168. # ePowerModeCheck_7 = PHI <ePowerModeCheck_9(18), ePowerModeCheck_14(19)>
  169. goto <bb 22>; [INV]
  170. <bb 21> :
  171. <L18>:
  172. <bb 22> :
  173. # ePowerModeCheck_8 = PHI <ePowerModeCheck_19(3), ePowerModeCheck_3(6), ePowerModeCheck_4(10), ePowerModeCheck_5(14), ePowerModeCheck_6(17), ePowerModeCheck_7(20), ePowerModeCheck_9(21)>
  174. _20 = ePowerModeCheck_8;
  175. <bb 23> :
  176. <L20>:
  177. return _20;
  178. }
  179. ;; Function Power_Ip_SMC_ModeConfig (Power_Ip_SMC_ModeConfig, funcdef_no=2, decl_uid=5642, cgraph_uid=3, symbol_order=2)
  180. Power_Ip_SMC_ModeConfig (const struct Power_Ip_ModeConfigType * pModeConfigPtr)
  181. {
  182. boolean TimeoutOccurred;
  183. uint32 TimeoutTicks;
  184. uint32 ElapsedTime;
  185. uint32 StartTime;
  186. uint32 u32RegValue;
  187. uint32 u32PowerModeStatus;
  188. uint32 u32TempValue;
  189. Power_Ip_PowerModeType ePowerMode;
  190. uint32 ePowerSwitchMode;
  191. uint32 D.5748;
  192. struct SMC_Type * _1;
  193. struct SMC_Type * _2;
  194. long unsigned int TimeoutTicks.0_3;
  195. struct SMC_Type * _4;
  196. long unsigned int _5;
  197. _Bool _6;
  198. struct SMC_Type * _7;
  199. struct SMC_Type * _8;
  200. long unsigned int TimeoutTicks.1_9;
  201. struct SMC_Type * _10;
  202. long unsigned int _11;
  203. _Bool _12;
  204. struct SMC_Type * _13;
  205. struct SMC_Type * _14;
  206. long unsigned int TimeoutTicks.2_15;
  207. struct SMC_Type * _16;
  208. long unsigned int _17;
  209. _Bool _18;
  210. struct SMC_Type * _19;
  211. struct SMC_Type * _20;
  212. struct SMC_Type * _21;
  213. unsigned char _22;
  214. struct SMC_Type * _23;
  215. struct SMC_Type * _24;
  216. struct SMC_Type * _25;
  217. struct SMC_Type * _26;
  218. unsigned char _27;
  219. struct SMC_Type * _28;
  220. struct SMC_Type * _29;
  221. struct SMC_Type * _30;
  222. struct SMC_Type * _31;
  223. unsigned char _32;
  224. uint32 _108;
  225. <bb 2> :
  226. ePowerSwitchMode_44 = 0;
  227. ePowerMode_45 = 0;
  228. u32RegValue_46 = 0;
  229. TimeoutOccurred_47 = 0;
  230. ePowerMode_50 = pModeConfigPtr_49(D)->Power_Ip_ePowerMode;
  231. switch (ePowerMode_50) <default: <L27> [INV], case 0: <L0> [INV], case 1: <L6> [INV], case 2: <L12> [INV], case 3: <L18> [INV], case 4: <L21> [INV], case 5: <L24> [INV]>
  232. <bb 3> :
  233. <L0>:
  234. _1 = 1074257920B;
  235. u32TempValue_98 ={v} _1->PMCTRL;
  236. u32TempValue_99 = u32TempValue_98 & 4294967199;
  237. u32TempValue_100 = u32TempValue_99;
  238. _2 = 1074257920B;
  239. _2->PMCTRL ={v} u32TempValue_100;
  240. PowerStartTimeout (&StartTime, &ElapsedTime, &TimeoutTicks, 50000);
  241. <bb 4> :
  242. TimeoutTicks.0_3 = TimeoutTicks;
  243. TimeoutOccurred_104 = PowerTimeoutExpired (&StartTime, &ElapsedTime, TimeoutTicks.0_3);
  244. _4 = 1074257920B;
  245. _5 ={v} _4->PMSTAT;
  246. u32PowerModeStatus_105 = _5 & 1;
  247. if (u32PowerModeStatus_105 != 1)
  248. goto <bb 5>; [INV]
  249. else
  250. goto <bb 6>; [INV]
  251. <bb 5> :
  252. _6 = ~TimeoutOccurred_104;
  253. if (_6 != 0)
  254. goto <bb 4>; [INV]
  255. else
  256. goto <bb 6>; [INV]
  257. <bb 6> :
  258. if (TimeoutOccurred_104 != 0)
  259. goto <bb 7>; [INV]
  260. else
  261. goto <bb 8>; [INV]
  262. <bb 7> :
  263. ePowerSwitchMode_106 = 1;
  264. <bb 8> :
  265. # ePowerSwitchMode_33 = PHI <ePowerSwitchMode_44(6), ePowerSwitchMode_106(7)>
  266. goto <bb 31>; [INV]
  267. <bb 9> :
  268. <L6>:
  269. _7 = 1074257920B;
  270. u32TempValue_89 ={v} _7->PMCTRL;
  271. u32TempValue_90 = u32TempValue_89 & 4294967199;
  272. u32TempValue_91 = u32TempValue_90 | 96;
  273. _8 = 1074257920B;
  274. _8->PMCTRL ={v} u32TempValue_91;
  275. PowerStartTimeout (&StartTime, &ElapsedTime, &TimeoutTicks, 50000);
  276. <bb 10> :
  277. TimeoutTicks.1_9 = TimeoutTicks;
  278. TimeoutOccurred_95 = PowerTimeoutExpired (&StartTime, &ElapsedTime, TimeoutTicks.1_9);
  279. _10 = 1074257920B;
  280. _11 ={v} _10->PMSTAT;
  281. u32PowerModeStatus_96 = _11 & 128;
  282. if (u32PowerModeStatus_96 != 128)
  283. goto <bb 11>; [INV]
  284. else
  285. goto <bb 12>; [INV]
  286. <bb 11> :
  287. _12 = ~TimeoutOccurred_95;
  288. if (_12 != 0)
  289. goto <bb 10>; [INV]
  290. else
  291. goto <bb 12>; [INV]
  292. <bb 12> :
  293. if (TimeoutOccurred_95 != 0)
  294. goto <bb 13>; [INV]
  295. else
  296. goto <bb 14>; [INV]
  297. <bb 13> :
  298. ePowerSwitchMode_97 = 1;
  299. <bb 14> :
  300. # ePowerSwitchMode_34 = PHI <ePowerSwitchMode_44(12), ePowerSwitchMode_97(13)>
  301. goto <bb 31>; [INV]
  302. <bb 15> :
  303. <L12>:
  304. _13 = 1074257920B;
  305. u32TempValue_80 ={v} _13->PMCTRL;
  306. u32TempValue_81 = u32TempValue_80 & 4294967199;
  307. u32TempValue_82 = u32TempValue_81 | 64;
  308. _14 = 1074257920B;
  309. _14->PMCTRL ={v} u32TempValue_82;
  310. PowerStartTimeout (&StartTime, &ElapsedTime, &TimeoutTicks, 50000);
  311. <bb 16> :
  312. TimeoutTicks.2_15 = TimeoutTicks;
  313. TimeoutOccurred_86 = PowerTimeoutExpired (&StartTime, &ElapsedTime, TimeoutTicks.2_15);
  314. _16 = 1074257920B;
  315. _17 ={v} _16->PMSTAT;
  316. u32PowerModeStatus_87 = _17 & 4;
  317. if (u32PowerModeStatus_87 != 4)
  318. goto <bb 17>; [INV]
  319. else
  320. goto <bb 18>; [INV]
  321. <bb 17> :
  322. _18 = ~TimeoutOccurred_86;
  323. if (_18 != 0)
  324. goto <bb 16>; [INV]
  325. else
  326. goto <bb 18>; [INV]
  327. <bb 18> :
  328. if (TimeoutOccurred_86 != 0)
  329. goto <bb 19>; [INV]
  330. else
  331. goto <bb 20>; [INV]
  332. <bb 19> :
  333. ePowerSwitchMode_88 = 1;
  334. <bb 20> :
  335. # ePowerSwitchMode_35 = PHI <ePowerSwitchMode_44(18), ePowerSwitchMode_88(19)>
  336. goto <bb 31>; [INV]
  337. <bb 21> :
  338. <L18>:
  339. _19 = 1074257920B;
  340. u32TempValue_71 ={v} _19->PMCTRL;
  341. u32TempValue_72 = u32TempValue_71 & 4294967288;
  342. u32TempValue_73 = u32TempValue_72 | 2;
  343. _20 = 1074257920B;
  344. _20->PMCTRL ={v} u32TempValue_73;
  345. _21 = 1074257920B;
  346. u32RegValue_75 ={v} _21->PMCTRL;
  347. _22 = pModeConfigPtr_49(D)->Power_Ip_SleepOnExit;
  348. if (_22 != 0)
  349. goto <bb 22>; [INV]
  350. else
  351. goto <bb 23>; [INV]
  352. <bb 22> :
  353. Power_Ip_CM4_EnableSleepOnExit ();
  354. <bb 23> :
  355. __asm__ __volatile__(" cpsie i");
  356. __asm__ __volatile__(" wfi");
  357. __asm__ __volatile__(" cpsid i");
  358. goto <bb 31>; [INV]
  359. <bb 24> :
  360. <L21>:
  361. _23 = 1074257920B;
  362. _23->STOPCTRL ={v} 64;
  363. _24 = 1074257920B;
  364. u32TempValue_62 ={v} _24->PMCTRL;
  365. u32TempValue_63 = u32TempValue_62 & 4294967288;
  366. u32TempValue_64 = u32TempValue_63;
  367. _25 = 1074257920B;
  368. _25->PMCTRL ={v} u32TempValue_64;
  369. _26 = 1074257920B;
  370. u32RegValue_66 ={v} _26->STOPCTRL;
  371. _27 = pModeConfigPtr_49(D)->Power_Ip_SleepOnExit;
  372. if (_27 != 0)
  373. goto <bb 25>; [INV]
  374. else
  375. goto <bb 26>; [INV]
  376. <bb 25> :
  377. Power_Ip_CM4_EnableSleepOnExit ();
  378. <bb 26> :
  379. __asm__ __volatile__(" cpsie i");
  380. __asm__ __volatile__(" wfi");
  381. __asm__ __volatile__(" cpsid i");
  382. goto <bb 31>; [INV]
  383. <bb 27> :
  384. <L24>:
  385. _28 = 1074257920B;
  386. _28->STOPCTRL ={v} 128;
  387. _29 = 1074257920B;
  388. u32TempValue_52 ={v} _29->PMCTRL;
  389. u32TempValue_53 = u32TempValue_52 & 4294967288;
  390. u32TempValue_54 = u32TempValue_53;
  391. _30 = 1074257920B;
  392. _30->PMCTRL ={v} u32TempValue_54;
  393. _31 = 1074257920B;
  394. u32RegValue_56 ={v} _31->STOPCTRL;
  395. _32 = pModeConfigPtr_49(D)->Power_Ip_SleepOnExit;
  396. if (_32 != 0)
  397. goto <bb 28>; [INV]
  398. else
  399. goto <bb 29>; [INV]
  400. <bb 28> :
  401. Power_Ip_CM4_EnableSleepOnExit ();
  402. <bb 29> :
  403. __asm__ __volatile__(" cpsie i");
  404. __asm__ __volatile__(" wfi");
  405. __asm__ __volatile__(" cpsid i");
  406. goto <bb 31>; [INV]
  407. <bb 30> :
  408. <L27>:
  409. ePowerSwitchMode_107 = 1;
  410. <bb 31> :
  411. # ePowerSwitchMode_36 = PHI <ePowerSwitchMode_33(8), ePowerSwitchMode_34(14), ePowerSwitchMode_35(20), ePowerSwitchMode_44(23), ePowerSwitchMode_44(26), ePowerSwitchMode_44(29), ePowerSwitchMode_107(30)>
  412. _108 = ePowerSwitchMode_36;
  413. StartTime ={v} {CLOBBER};
  414. ElapsedTime ={v} {CLOBBER};
  415. TimeoutTicks ={v} {CLOBBER};
  416. <bb 32> :
  417. <L30>:
  418. return _108;
  419. }