
Reclaiming functions:
Reclaiming variables:
Clearing address taken flags:
Symbol table:

Power_Ip_CM4_EnableSleepOnExit/5 (Power_Ip_CM4_EnableSleepOnExit) @05e151c0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Power_Ip_SMC_ModeConfig/2 (37904966 (estimated locally),0.05 per call) Power_Ip_SMC_ModeConfig/2 (37904966 (estimated locally),0.05 per call) Power_Ip_SMC_ModeConfig/2 (37904966 (estimated locally),0.05 per call) 
  Calls: 
PowerTimeoutExpired/4 (PowerTimeoutExpired) @05e150e0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Power_Ip_SMC_ModeConfig/2 (1073741824 (estimated locally),1.34 per call) Power_Ip_SMC_ModeConfig/2 (1073741824 (estimated locally),1.34 per call) Power_Ip_SMC_ModeConfig/2 (1073741824 (estimated locally),1.34 per call) 
  Calls: 
PowerStartTimeout/3 (PowerStartTimeout) @05e15000
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Power_Ip_SMC_ModeConfig/2 (114863532 (estimated locally),0.14 per call) Power_Ip_SMC_ModeConfig/2 (114863532 (estimated locally),0.14 per call) Power_Ip_SMC_ModeConfig/2 (114863532 (estimated locally),0.14 per call) 
  Calls: 
Power_Ip_SMC_ModeConfig/2 (Power_Ip_SMC_ModeConfig) @05df19a0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:803803585 (estimated locally) body optimize_size
  Called by: 
  Calls: Power_Ip_CM4_EnableSleepOnExit/5 (37904966 (estimated locally),0.05 per call) Power_Ip_CM4_EnableSleepOnExit/5 (37904966 (estimated locally),0.05 per call) Power_Ip_CM4_EnableSleepOnExit/5 (37904966 (estimated locally),0.05 per call) PowerTimeoutExpired/4 (1073741824 (estimated locally),1.34 per call) PowerStartTimeout/3 (114863532 (estimated locally),0.14 per call) PowerTimeoutExpired/4 (1073741824 (estimated locally),1.34 per call) PowerStartTimeout/3 (114863532 (estimated locally),0.14 per call) PowerTimeoutExpired/4 (1073741824 (estimated locally),1.34 per call) PowerStartTimeout/3 (114863532 (estimated locally),0.14 per call) 
Power_Ip_SMC_ModeCheckEntry/1 (Power_Ip_SMC_ModeCheckEntry) @05df1460
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073419800 (estimated locally) body optimize_size
  Called by: 
  Calls: 
Power_Ip_SMC_AllowedModesConfig/0 (Power_Ip_SMC_AllowedModesConfig) @05df11c0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 
Power_Ip_SMC_ModeConfig (const struct Power_Ip_ModeConfigType * pModeConfigPtr)
{
  boolean TimeoutOccurred;
  uint32 TimeoutTicks;
  uint32 ElapsedTime;
  uint32 StartTime;
  uint32 u32RegValue;
  uint32 u32PowerModeStatus;
  uint32 u32TempValue;
  Power_Ip_PowerModeType ePowerMode;
  uint32 ePowerSwitchMode;
  long unsigned int TimeoutTicks.0_1;
  long unsigned int _2;
  long unsigned int TimeoutTicks.1_3;
  long unsigned int _4;
  long unsigned int TimeoutTicks.2_5;
  long unsigned int _6;
  unsigned char _7;
  unsigned char _8;
  unsigned char _9;

  <bb 2> [local count: 803803585]:
  # DEBUG BEGIN_STMT
  # DEBUG ePowerSwitchMode => 0
  # DEBUG BEGIN_STMT
  # DEBUG ePowerMode => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG u32RegValue => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG TimeoutOccurred => 0
  # DEBUG BEGIN_STMT
  ePowerMode_20 = pModeConfigPtr_19(D)->Power_Ip_ePowerMode;
  # DEBUG ePowerMode => ePowerMode_20
  # DEBUG BEGIN_STMT
  switch (ePowerMode_20) <default: <L31> [14.29%], case 0: <L0> [14.29%], case 1: <L6> [14.29%], case 2: <L12> [14.29%], case 3: <L18> [14.29%], case 4: <L21> [14.29%], case 5: <L24> [14.29%]>

  <bb 3> [local count: 114863532]:
<L0>:
  # DEBUG BEGIN_STMT
  u32TempValue_66 ={v} MEM[(struct SMC_Type *)1074257920B].PMCTRL;
  # DEBUG u32TempValue => u32TempValue_66
  # DEBUG BEGIN_STMT
  u32TempValue_67 = u32TempValue_66 & 4294967199;
  # DEBUG u32TempValue => u32TempValue_67
  # DEBUG BEGIN_STMT
  # DEBUG u32TempValue => u32TempValue_67
  # DEBUG BEGIN_STMT
  MEM[(struct SMC_Type *)1074257920B].PMCTRL ={v} u32TempValue_67;
  # DEBUG BEGIN_STMT
  PowerStartTimeout (&StartTime, &ElapsedTime, &TimeoutTicks, 50000);

  <bb 4> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  TimeoutTicks.0_1 = TimeoutTicks;
  TimeoutOccurred_72 = PowerTimeoutExpired (&StartTime, &ElapsedTime, TimeoutTicks.0_1);
  # DEBUG TimeoutOccurred => TimeoutOccurred_72
  # DEBUG BEGIN_STMT
  _2 ={v} MEM[(struct SMC_Type *)1074257920B].PMSTAT;
  u32PowerModeStatus_73 = _2 & 1;
  # DEBUG u32PowerModeStatus => u32PowerModeStatus_73
  # DEBUG BEGIN_STMT
  if (u32PowerModeStatus_73 == 0)
    goto <bb 5>; [94.50%]
  else
    goto <bb 6>; [5.50%]

  <bb 5> [local count: 1014686024]:
  if (TimeoutOccurred_72 != 0)
    goto <bb 6>; [5.50%]
  else
    goto <bb 28>; [94.50%]

  <bb 28> [local count: 958878293]:
  goto <bb 4>; [100.00%]

  <bb 6> [local count: 114863532]:
  # TimeoutOccurred_68 = PHI <TimeoutOccurred_72(4), TimeoutOccurred_72(5)>
  # DEBUG BEGIN_STMT
  if (TimeoutOccurred_68 != 0)
    goto <bb 7>; [50.00%]
  else
    goto <bb 27>; [50.00%]

  <bb 7> [local count: 57431766]:
  # DEBUG BEGIN_STMT
  # DEBUG ePowerSwitchMode => 1
  goto <bb 27>; [100.00%]

  <bb 8> [local count: 114863532]:
<L6>:
  # DEBUG BEGIN_STMT
  u32TempValue_58 ={v} MEM[(struct SMC_Type *)1074257920B].PMCTRL;
  # DEBUG u32TempValue => u32TempValue_58
  # DEBUG BEGIN_STMT
  u32TempValue_59 = u32TempValue_58 & 4294967199;
  # DEBUG u32TempValue => u32TempValue_59
  # DEBUG BEGIN_STMT
  u32TempValue_60 = u32TempValue_59 | 96;
  # DEBUG u32TempValue => u32TempValue_60
  # DEBUG BEGIN_STMT
  MEM[(struct SMC_Type *)1074257920B].PMCTRL ={v} u32TempValue_60;
  # DEBUG BEGIN_STMT
  PowerStartTimeout (&StartTime, &ElapsedTime, &TimeoutTicks, 50000);

  <bb 9> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  TimeoutTicks.1_3 = TimeoutTicks;
  TimeoutOccurred_64 = PowerTimeoutExpired (&StartTime, &ElapsedTime, TimeoutTicks.1_3);
  # DEBUG TimeoutOccurred => TimeoutOccurred_64
  # DEBUG BEGIN_STMT
  _4 ={v} MEM[(struct SMC_Type *)1074257920B].PMSTAT;
  u32PowerModeStatus_65 = _4 & 128;
  # DEBUG u32PowerModeStatus => u32PowerModeStatus_65
  # DEBUG BEGIN_STMT
  if (u32PowerModeStatus_65 == 0)
    goto <bb 10>; [94.50%]
  else
    goto <bb 11>; [5.50%]

  <bb 10> [local count: 1014686024]:
  if (TimeoutOccurred_64 != 0)
    goto <bb 11>; [5.50%]
  else
    goto <bb 29>; [94.50%]

  <bb 29> [local count: 958878293]:
  goto <bb 9>; [100.00%]

  <bb 11> [local count: 114863532]:
  # TimeoutOccurred_34 = PHI <TimeoutOccurred_64(9), TimeoutOccurred_64(10)>
  # DEBUG BEGIN_STMT
  if (TimeoutOccurred_34 != 0)
    goto <bb 12>; [50.00%]
  else
    goto <bb 27>; [50.00%]

  <bb 12> [local count: 57431766]:
  # DEBUG BEGIN_STMT
  # DEBUG ePowerSwitchMode => 1
  goto <bb 27>; [100.00%]

  <bb 13> [local count: 114863532]:
<L12>:
  # DEBUG BEGIN_STMT
  u32TempValue_50 ={v} MEM[(struct SMC_Type *)1074257920B].PMCTRL;
  # DEBUG u32TempValue => u32TempValue_50
  # DEBUG BEGIN_STMT
  u32TempValue_51 = u32TempValue_50 & 4294967199;
  # DEBUG u32TempValue => u32TempValue_51
  # DEBUG BEGIN_STMT
  u32TempValue_52 = u32TempValue_51 | 64;
  # DEBUG u32TempValue => u32TempValue_52
  # DEBUG BEGIN_STMT
  MEM[(struct SMC_Type *)1074257920B].PMCTRL ={v} u32TempValue_52;
  # DEBUG BEGIN_STMT
  PowerStartTimeout (&StartTime, &ElapsedTime, &TimeoutTicks, 50000);

  <bb 14> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  TimeoutTicks.2_5 = TimeoutTicks;
  TimeoutOccurred_56 = PowerTimeoutExpired (&StartTime, &ElapsedTime, TimeoutTicks.2_5);
  # DEBUG TimeoutOccurred => TimeoutOccurred_56
  # DEBUG BEGIN_STMT
  _6 ={v} MEM[(struct SMC_Type *)1074257920B].PMSTAT;
  u32PowerModeStatus_57 = _6 & 4;
  # DEBUG u32PowerModeStatus => u32PowerModeStatus_57
  # DEBUG BEGIN_STMT
  if (u32PowerModeStatus_57 == 0)
    goto <bb 15>; [94.50%]
  else
    goto <bb 16>; [5.50%]

  <bb 15> [local count: 1014686024]:
  if (TimeoutOccurred_56 != 0)
    goto <bb 16>; [5.50%]
  else
    goto <bb 30>; [94.50%]

  <bb 30> [local count: 958878293]:
  goto <bb 14>; [100.00%]

  <bb 16> [local count: 114863532]:
  # TimeoutOccurred_24 = PHI <TimeoutOccurred_56(14), TimeoutOccurred_56(15)>
  # DEBUG BEGIN_STMT
  if (TimeoutOccurred_24 != 0)
    goto <bb 17>; [50.00%]
  else
    goto <bb 27>; [50.00%]

  <bb 17> [local count: 57431766]:
  # DEBUG BEGIN_STMT
  # DEBUG ePowerSwitchMode => 1
  goto <bb 27>; [100.00%]

  <bb 18> [local count: 114863532]:
<L18>:
  # DEBUG BEGIN_STMT
  u32TempValue_41 ={v} MEM[(struct SMC_Type *)1074257920B].PMCTRL;
  # DEBUG u32TempValue => u32TempValue_41
  # DEBUG BEGIN_STMT
  u32TempValue_42 = u32TempValue_41 & 4294967288;
  # DEBUG u32TempValue => u32TempValue_42
  # DEBUG BEGIN_STMT
  u32TempValue_43 = u32TempValue_42 | 2;
  # DEBUG u32TempValue => u32TempValue_43
  # DEBUG BEGIN_STMT
  MEM[(struct SMC_Type *)1074257920B].PMCTRL ={v} u32TempValue_43;
  # DEBUG BEGIN_STMT
  u32RegValue_45 ={v} MEM[(struct SMC_Type *)1074257920B].PMCTRL;
  # DEBUG u32RegValue => u32RegValue_45
  # DEBUG BEGIN_STMT
  _7 = pModeConfigPtr_19(D)->Power_Ip_SleepOnExit;
  if (_7 != 0)
    goto <bb 19>; [33.00%]
  else
    goto <bb 20>; [67.00%]

  <bb 19> [local count: 37904966]:
  # DEBUG BEGIN_STMT
  Power_Ip_CM4_EnableSleepOnExit ();

  <bb 20> [local count: 114863532]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  __asm__ __volatile__(" cpsie i");
  # DEBUG BEGIN_STMT
  __asm__ __volatile__("  wfi");
  # DEBUG BEGIN_STMT
  __asm__ __volatile__(" cpsid i");
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  goto <bb 27>; [100.00%]

  <bb 21> [local count: 114863532]:
<L21>:
  # DEBUG BEGIN_STMT
  MEM[(struct SMC_Type *)1074257920B].STOPCTRL ={v} 64;
  # DEBUG BEGIN_STMT
  u32TempValue_32 ={v} MEM[(struct SMC_Type *)1074257920B].PMCTRL;
  # DEBUG u32TempValue => u32TempValue_32
  # DEBUG BEGIN_STMT
  u32TempValue_33 = u32TempValue_32 & 4294967288;
  # DEBUG u32TempValue => u32TempValue_33
  # DEBUG BEGIN_STMT
  # DEBUG u32TempValue => u32TempValue_33
  # DEBUG BEGIN_STMT
  MEM[(struct SMC_Type *)1074257920B].PMCTRL ={v} u32TempValue_33;
  # DEBUG BEGIN_STMT
  u32RegValue_36 ={v} MEM[(struct SMC_Type *)1074257920B].STOPCTRL;
  # DEBUG u32RegValue => u32RegValue_36
  # DEBUG BEGIN_STMT
  _8 = pModeConfigPtr_19(D)->Power_Ip_SleepOnExit;
  if (_8 != 0)
    goto <bb 22>; [33.00%]
  else
    goto <bb 23>; [67.00%]

  <bb 22> [local count: 37904966]:
  # DEBUG BEGIN_STMT
  Power_Ip_CM4_EnableSleepOnExit ();

  <bb 23> [local count: 114863532]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  __asm__ __volatile__(" cpsie i");
  # DEBUG BEGIN_STMT
  __asm__ __volatile__("  wfi");
  # DEBUG BEGIN_STMT
  __asm__ __volatile__(" cpsid i");
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  goto <bb 27>; [100.00%]

  <bb 24> [local count: 114863532]:
<L24>:
  # DEBUG BEGIN_STMT
  MEM[(struct SMC_Type *)1074257920B].STOPCTRL ={v} 128;
  # DEBUG BEGIN_STMT
  u32TempValue_22 ={v} MEM[(struct SMC_Type *)1074257920B].PMCTRL;
  # DEBUG u32TempValue => u32TempValue_22
  # DEBUG BEGIN_STMT
  u32TempValue_23 = u32TempValue_22 & 4294967288;
  # DEBUG u32TempValue => u32TempValue_23
  # DEBUG BEGIN_STMT
  # DEBUG u32TempValue => u32TempValue_23
  # DEBUG BEGIN_STMT
  MEM[(struct SMC_Type *)1074257920B].PMCTRL ={v} u32TempValue_23;
  # DEBUG BEGIN_STMT
  u32RegValue_26 ={v} MEM[(struct SMC_Type *)1074257920B].STOPCTRL;
  # DEBUG u32RegValue => u32RegValue_26
  # DEBUG BEGIN_STMT
  _9 = pModeConfigPtr_19(D)->Power_Ip_SleepOnExit;
  if (_9 != 0)
    goto <bb 25>; [33.00%]
  else
    goto <bb 26>; [67.00%]

  <bb 25> [local count: 37904966]:
  # DEBUG BEGIN_STMT
  Power_Ip_CM4_EnableSleepOnExit ();

  <bb 26> [local count: 114863532]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  __asm__ __volatile__(" cpsie i");
  # DEBUG BEGIN_STMT
  __asm__ __volatile__("  wfi");
  # DEBUG BEGIN_STMT
  __asm__ __volatile__(" cpsid i");
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT

  <bb 27> [local count: 804044726]:
  # ePowerSwitchMode_10 = PHI <1(7), 1(12), 1(17), 0(20), 0(23), 0(26), 1(2), 0(6), 0(11), 0(16)>
<L31>:
  # DEBUG ePowerSwitchMode => ePowerSwitchMode_10
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  StartTime ={v} {CLOBBER};
  ElapsedTime ={v} {CLOBBER};
  TimeoutTicks ={v} {CLOBBER};
  return ePowerSwitchMode_10;

}


Power_Ip_SMC_ModeCheckEntry (Power_Ip_PowerModeType ePowerMode)
{
  uint32 eCurrentPowerMode;
  Power_Ip_SMC_ModeStatusType ePowerModeCheck;
  long unsigned int _1;

  <bb 2> [local count: 1073419800]:
  # DEBUG BEGIN_STMT
  # DEBUG ePowerModeCheck => 1
  # DEBUG BEGIN_STMT
  # DEBUG eCurrentPowerMode => 1
  # DEBUG BEGIN_STMT
  _1 ={v} MEM[(struct SMC_Type *)1074257920B].PMSTAT;
  eCurrentPowerMode_4 = _1 & 255;
  # DEBUG eCurrentPowerMode => eCurrentPowerMode_4
  # DEBUG BEGIN_STMT
  switch (ePowerMode_5(D)) <default: <L21> [14.29%], case 0: <L0> [14.29%], case 1: <L1> [14.29%], case 2: <L4> [14.29%], case 3: <L8> [14.29%], case 4: <L12> [14.29%], case 5: <L15> [14.29%]>

  <bb 3> [local count: 153391689]:
<L0>:
  # DEBUG BEGIN_STMT
  # DEBUG ePowerModeCheck => 0
  # DEBUG BEGIN_STMT
  goto <bb 16>; [100.00%]

  <bb 4> [local count: 153391689]:
<L1>:
  # DEBUG BEGIN_STMT
  if (eCurrentPowerMode_4 == 1)
    goto <bb 5>; [34.00%]
  else
    goto <bb 16>; [66.00%]

  <bb 5> [local count: 52153174]:
  # DEBUG BEGIN_STMT
  # DEBUG ePowerModeCheck => 0
  goto <bb 16>; [100.00%]

  <bb 6> [local count: 153391689]:
<L4>:
  # DEBUG BEGIN_STMT
  if (eCurrentPowerMode_4 == 1)
    goto <bb 8>; [34.00%]
  else
    goto <bb 7>; [66.00%]

  <bb 7> [local count: 101238515]:
  if (eCurrentPowerMode_4 == 16)
    goto <bb 8>; [34.00%]
  else
    goto <bb 16>; [66.00%]

  <bb 8> [local count: 86574269]:
  # DEBUG BEGIN_STMT
  # DEBUG ePowerModeCheck => 0
  goto <bb 16>; [100.00%]

  <bb 9> [local count: 153391689]:
<L8>:
  # DEBUG BEGIN_STMT
  if (eCurrentPowerMode_4 == 1)
    goto <bb 11>; [34.00%]
  else
    goto <bb 10>; [66.00%]

  <bb 10> [local count: 101238515]:
  if (eCurrentPowerMode_4 == 4)
    goto <bb 11>; [34.00%]
  else
    goto <bb 16>; [66.00%]

  <bb 11> [local count: 86574269]:
  # DEBUG BEGIN_STMT
  # DEBUG ePowerModeCheck => 0
  goto <bb 16>; [100.00%]

  <bb 12> [local count: 153391689]:
<L12>:
  # DEBUG BEGIN_STMT
  if (eCurrentPowerMode_4 == 1)
    goto <bb 13>; [34.00%]
  else
    goto <bb 16>; [66.00%]

  <bb 13> [local count: 52153174]:
  # DEBUG BEGIN_STMT
  # DEBUG ePowerModeCheck => 0
  goto <bb 16>; [100.00%]

  <bb 14> [local count: 153391689]:
<L15>:
  # DEBUG BEGIN_STMT
  if (eCurrentPowerMode_4 == 1)
    goto <bb 15>; [34.00%]
  else
    goto <bb 16>; [66.00%]

  <bb 15> [local count: 52153174]:
  # DEBUG BEGIN_STMT
  # DEBUG ePowerModeCheck => 0

  <bb 16> [local count: 1073741824]:
  # ePowerModeCheck_2 = PHI <0(3), 0(5), 0(8), 0(11), 0(13), 0(15), 1(2), 1(4), 1(7), 1(10), 1(12), 1(14)>
<L21>:
  # DEBUG ePowerModeCheck => ePowerModeCheck_2
  # DEBUG BEGIN_STMT
  return ePowerModeCheck_2;

}


Power_Ip_SMC_AllowedModesConfig (const struct Power_Ip_SMC_ConfigType * pConfigPtr)
{
  long unsigned int _1;
  long unsigned int _2;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  _1 = pConfigPtr_4(D)->u32AllowedModes;
  _2 = _1 & 160;
  MEM[(struct SMC_Type *)1074257920B].PMPROT ={v} _2;
  return;

}


