SchM_Mcu.c.017i.build_ssa_passes 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  1. SchM_Exit_Mcu_MCU_EXCLUSIVE_AREA_02 ()
  2. {
  3. uint32 u32CoreId;
  4. <bb 2> :
  5. u32CoreId = 0;
  6. _1 = reentry_guard_MCU_EXCLUSIVE_AREA_02[u32CoreId];
  7. _2 = _1 + 4294967295;
  8. reentry_guard_MCU_EXCLUSIVE_AREA_02[u32CoreId] = _2;
  9. _3 = msr_MCU_EXCLUSIVE_AREA_02[u32CoreId];
  10. _4 = _3 & 1;
  11. if (_4 == 0)
  12. goto <bb 3>; [INV]
  13. else
  14. goto <bb 5>; [INV]
  15. <bb 3> :
  16. _5 = reentry_guard_MCU_EXCLUSIVE_AREA_02[u32CoreId];
  17. if (_5 == 0)
  18. goto <bb 4>; [INV]
  19. else
  20. goto <bb 5>; [INV]
  21. <bb 4> :
  22. __asm__ __volatile__(" cpsie i");
  23. <bb 5> :
  24. return;
  25. }
  26. SchM_Enter_Mcu_MCU_EXCLUSIVE_AREA_02 ()
  27. {
  28. uint32 u32CoreId;
  29. <bb 2> :
  30. u32CoreId = 0;
  31. _1 = reentry_guard_MCU_EXCLUSIVE_AREA_02[u32CoreId];
  32. if (_1 == 0)
  33. goto <bb 3>; [INV]
  34. else
  35. goto <bb 5>; [INV]
  36. <bb 3> :
  37. _2 = Mcu_schm_read_msr ();
  38. msr_MCU_EXCLUSIVE_AREA_02[u32CoreId] = _2;
  39. _3 = msr_MCU_EXCLUSIVE_AREA_02[u32CoreId];
  40. _4 = _3 & 1;
  41. if (_4 == 0)
  42. goto <bb 4>; [INV]
  43. else
  44. goto <bb 5>; [INV]
  45. <bb 4> :
  46. __asm__ __volatile__(" cpsid i");
  47. <bb 5> :
  48. _5 = reentry_guard_MCU_EXCLUSIVE_AREA_02[u32CoreId];
  49. _6 = _5 + 1;
  50. reentry_guard_MCU_EXCLUSIVE_AREA_02[u32CoreId] = _6;
  51. return;
  52. }
  53. SchM_Exit_Mcu_MCU_EXCLUSIVE_AREA_01 ()
  54. {
  55. uint32 u32CoreId;
  56. <bb 2> :
  57. u32CoreId = 0;
  58. _1 = reentry_guard_MCU_EXCLUSIVE_AREA_01[u32CoreId];
  59. _2 = _1 + 4294967295;
  60. reentry_guard_MCU_EXCLUSIVE_AREA_01[u32CoreId] = _2;
  61. _3 = msr_MCU_EXCLUSIVE_AREA_01[u32CoreId];
  62. _4 = _3 & 1;
  63. if (_4 == 0)
  64. goto <bb 3>; [INV]
  65. else
  66. goto <bb 5>; [INV]
  67. <bb 3> :
  68. _5 = reentry_guard_MCU_EXCLUSIVE_AREA_01[u32CoreId];
  69. if (_5 == 0)
  70. goto <bb 4>; [INV]
  71. else
  72. goto <bb 5>; [INV]
  73. <bb 4> :
  74. __asm__ __volatile__(" cpsie i");
  75. <bb 5> :
  76. return;
  77. }
  78. SchM_Enter_Mcu_MCU_EXCLUSIVE_AREA_01 ()
  79. {
  80. uint32 u32CoreId;
  81. <bb 2> :
  82. u32CoreId = 0;
  83. _1 = reentry_guard_MCU_EXCLUSIVE_AREA_01[u32CoreId];
  84. if (_1 == 0)
  85. goto <bb 3>; [INV]
  86. else
  87. goto <bb 5>; [INV]
  88. <bb 3> :
  89. _2 = Mcu_schm_read_msr ();
  90. msr_MCU_EXCLUSIVE_AREA_01[u32CoreId] = _2;
  91. _3 = msr_MCU_EXCLUSIVE_AREA_01[u32CoreId];
  92. _4 = _3 & 1;
  93. if (_4 == 0)
  94. goto <bb 4>; [INV]
  95. else
  96. goto <bb 5>; [INV]
  97. <bb 4> :
  98. __asm__ __volatile__(" cpsid i");
  99. <bb 5> :
  100. _5 = reentry_guard_MCU_EXCLUSIVE_AREA_01[u32CoreId];
  101. _6 = _5 + 1;
  102. reentry_guard_MCU_EXCLUSIVE_AREA_01[u32CoreId] = _6;
  103. return;
  104. }
  105. SchM_Exit_Mcu_MCU_EXCLUSIVE_AREA_00 ()
  106. {
  107. uint32 u32CoreId;
  108. <bb 2> :
  109. u32CoreId = 0;
  110. _1 = reentry_guard_MCU_EXCLUSIVE_AREA_00[u32CoreId];
  111. _2 = _1 + 4294967295;
  112. reentry_guard_MCU_EXCLUSIVE_AREA_00[u32CoreId] = _2;
  113. _3 = msr_MCU_EXCLUSIVE_AREA_00[u32CoreId];
  114. _4 = _3 & 1;
  115. if (_4 == 0)
  116. goto <bb 3>; [INV]
  117. else
  118. goto <bb 5>; [INV]
  119. <bb 3> :
  120. _5 = reentry_guard_MCU_EXCLUSIVE_AREA_00[u32CoreId];
  121. if (_5 == 0)
  122. goto <bb 4>; [INV]
  123. else
  124. goto <bb 5>; [INV]
  125. <bb 4> :
  126. __asm__ __volatile__(" cpsie i");
  127. <bb 5> :
  128. return;
  129. }
  130. SchM_Enter_Mcu_MCU_EXCLUSIVE_AREA_00 ()
  131. {
  132. uint32 u32CoreId;
  133. <bb 2> :
  134. u32CoreId = 0;
  135. _1 = reentry_guard_MCU_EXCLUSIVE_AREA_00[u32CoreId];
  136. if (_1 == 0)
  137. goto <bb 3>; [INV]
  138. else
  139. goto <bb 5>; [INV]
  140. <bb 3> :
  141. _2 = Mcu_schm_read_msr ();
  142. msr_MCU_EXCLUSIVE_AREA_00[u32CoreId] = _2;
  143. _3 = msr_MCU_EXCLUSIVE_AREA_00[u32CoreId];
  144. _4 = _3 & 1;
  145. if (_4 == 0)
  146. goto <bb 4>; [INV]
  147. else
  148. goto <bb 5>; [INV]
  149. <bb 4> :
  150. __asm__ __volatile__(" cpsid i");
  151. <bb 5> :
  152. _5 = reentry_guard_MCU_EXCLUSIVE_AREA_00[u32CoreId];
  153. _6 = _5 + 1;
  154. reentry_guard_MCU_EXCLUSIVE_AREA_00[u32CoreId] = _6;
  155. return;
  156. }
  157. Mcu_schm_read_msr ()
  158. {
  159. register uint32 reg_tmp;
  160. uint32 D.5590;
  161. <bb 2> :
  162. __asm__ __volatile__(" mrs %0, primask " : "=r" reg_tmp);
  163. D.5590 = reg_tmp;
  164. <bb 3> :
  165. <L0>:
  166. return D.5590;
  167. }