Histogram:
Mpu_Configuration ()
{
  long unsigned int _1;
  long unsigned int _2;
  long unsigned int _3;
  long unsigned int _4;
  long unsigned int _5;
  long unsigned int _6;
  long unsigned int _7;
  long unsigned int _8;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  __asm__ __volatile__(" DSB");
  # DEBUG BEGIN_STMT
  __asm__ __volatile__(" ISB");
  # DEBUG BEGIN_STMT
  _1 ={v} MEM[(struct S32_SCB_Type *)3758153728B].CCR;
  _2 = _1 & 131072;
  if (_2 != 0)
    goto <bb 4>; [33.00%]
  else
    goto <bb 3>; [67.00%]

  <bb 3> [local count: 719407023]:
  _3 ={v} MEM[(struct S32_SCB_Type *)3758153728B].CCR;
  _4 = _3 & 65536;
  if (_4 != 0)
    goto <bb 4>; [50.00%]
  else
    goto <bb 5>; [50.00%]

  <bb 4> [local count: 714038314]:
  # DEBUG BEGIN_STMT
  sys_m7_cache_disable ();

  <bb 5> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  _5 ={v} MEM[(struct S32_MPU_Type *)3758153728B].CTRL;
  _6 = _5 & 4294967294;
  MEM[(struct S32_MPU_Type *)3758153728B].CTRL ={v} _6;
  # DEBUG BEGIN_STMT
  MEM[(struct S32_MPU_Type *)3758153728B].RNR ={v} 7;
  # DEBUG BEGIN_STMT
  MEM[(struct S32_MPU_Type *)3758153728B].RBAR ={v} 877658112;
  # DEBUG BEGIN_STMT
  MEM[(struct S32_MPU_Type *)3758153728B].RASR ={v} 319553579;
  # DEBUG BEGIN_STMT
  _7 ={v} MEM[(struct S32_MPU_Type *)3758153728B].CTRL;
  _8 = _7 | 1;
  MEM[(struct S32_MPU_Type *)3758153728B].CTRL ={v} _8;
  # DEBUG BEGIN_STMT
  __asm__ __volatile__(" ISB");
  # DEBUG BEGIN_STMT
  __asm__ __volatile__(" DSB");
  # DEBUG BEGIN_STMT
  sys_m7_cache_init ();
  return;

}


sys_m7_cache_init ()
{
  uint32 ways;
  uint32 sets;
  uint32 ccsidr;
  long unsigned int _1;
  long unsigned int _2;
  long unsigned int _3;
  long unsigned int _4;
  long unsigned int _5;
  long unsigned int _6;
  long unsigned int _7;
  long unsigned int _8;
  long unsigned int _9;
  long unsigned int _10;

  <bb 2> [local count: 12992276]:
  # DEBUG BEGIN_STMT
  # DEBUG ccsidr => 0
  # DEBUG BEGIN_STMT
  # DEBUG sets => 0
  # DEBUG BEGIN_STMT
  # DEBUG ways => 0
  # DEBUG BEGIN_STMT
  MEM[(struct S32_SCB_Type *)3758153728B].CSSELR ={v} 0;
  # DEBUG BEGIN_STMT
  __asm__ __volatile__(" DSB");
  # DEBUG BEGIN_STMT
  ccsidr_18 ={v} MEM[(struct S32_SCB_Type *)3758153728B].CCSIDR;
  # DEBUG ccsidr => ccsidr_18
  # DEBUG BEGIN_STMT
  _1 = ccsidr_18 >> 13;
  sets_19 = _1 & 32767;
  # DEBUG sets => sets_19

  <bb 3> [local count: 118111600]:
  # sets_11 = PHI <sets_19(2), sets_24(7)>
  # DEBUG sets => sets_11
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _2 = ccsidr_18 >> 3;
  ways_20 = _2 & 1023;
  # DEBUG ways => ways_20

  <bb 4> [local count: 1073741824]:
  # ways_12 = PHI <ways_20(3), ways_23(8)>
  # DEBUG ways => ways_12
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _3 = sets_11 << 5;
  _4 = _3 & 16352;
  _5 = ways_12 << 30;
  _6 = _4 | _5;
  MEM[(struct S32_SCB_Type *)3758153728B].DCISW ={v} _6;
  # DEBUG BEGIN_STMT
  __asm__ __volatile__(" DSB");
  # DEBUG BEGIN_STMT
  ways_23 = ways_12 + 4294967295;
  # DEBUG ways => ways_23
  if (ways_12 != 0)
    goto <bb 8>; [89.00%]
  else
    goto <bb 5>; [11.00%]

  <bb 8> [local count: 955630224]:
  goto <bb 4>; [100.00%]

  <bb 5> [local count: 118111601]:
  # DEBUG BEGIN_STMT
  sets_24 = sets_11 + 4294967295;
  # DEBUG sets => sets_24
  if (sets_11 != 0)
    goto <bb 7>; [89.00%]
  else
    goto <bb 6>; [11.00%]

  <bb 7> [local count: 105119325]:
  goto <bb 3>; [100.00%]

  <bb 6> [local count: 12992276]:
  # DEBUG BEGIN_STMT
  __asm__ __volatile__(" DSB");
  # DEBUG BEGIN_STMT
  _7 ={v} MEM[(struct S32_SCB_Type *)3758153728B].CCR;
  _8 = _7 | 65536;
  MEM[(struct S32_SCB_Type *)3758153728B].CCR ={v} _8;
  # DEBUG BEGIN_STMT
  __asm__ __volatile__(" DSB");
  # DEBUG BEGIN_STMT
  __asm__ __volatile__(" ISB");
  # DEBUG BEGIN_STMT
  MEM[(struct S32_SCB_Type *)3758153728B].ICIALLU ={v} 0;
  # DEBUG BEGIN_STMT
  _9 ={v} MEM[(struct S32_SCB_Type *)3758153728B].CCR;
  _10 = _9 | 131072;
  MEM[(struct S32_SCB_Type *)3758153728B].CCR ={v} _10;
  # DEBUG BEGIN_STMT
  __asm__ __volatile__(" DSB");
  # DEBUG BEGIN_STMT
  __asm__ __volatile__(" ISB");
  return;

}


sys_m7_cache_disable ()
{
  long unsigned int _1;
  long unsigned int _2;
  long unsigned int _3;
  long unsigned int _4;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  sys_m7_cache_clean ();
  # DEBUG BEGIN_STMT
  _1 ={v} MEM[(struct S32_SCB_Type *)3758153728B].CCR;
  _2 = _1 & 4294836223;
  MEM[(struct S32_SCB_Type *)3758153728B].CCR ={v} _2;
  # DEBUG BEGIN_STMT
  __asm__ __volatile__(" DSB");
  # DEBUG BEGIN_STMT
  __asm__ __volatile__(" ISB");
  # DEBUG BEGIN_STMT
  _3 ={v} MEM[(struct S32_SCB_Type *)3758153728B].CCR;
  _4 = _3 & 4294901759;
  MEM[(struct S32_SCB_Type *)3758153728B].CCR ={v} _4;
  # DEBUG BEGIN_STMT
  __asm__ __volatile__(" DSB");
  # DEBUG BEGIN_STMT
  __asm__ __volatile__(" ISB");
  return;

}


sys_m7_cache_clean ()
{
  uint32 ways;
  uint32 sets;
  uint32 ccsidr;
  long unsigned int _1;
  long unsigned int _2;
  long unsigned int _3;
  long unsigned int _4;
  long unsigned int _5;
  long unsigned int _6;
  long unsigned int _7;
  long unsigned int _8;

  <bb 2> [local count: 12992276]:
  # DEBUG BEGIN_STMT
  # DEBUG ccsidr => 0
  # DEBUG BEGIN_STMT
  # DEBUG sets => 0
  # DEBUG BEGIN_STMT
  # DEBUG ways => 0
  # DEBUG BEGIN_STMT
  MEM[(struct S32_SCB_Type *)3758153728B].CSSELR ={v} 0;
  # DEBUG BEGIN_STMT
  __asm__ __volatile__(" DSB");
  # DEBUG BEGIN_STMT
  ccsidr_16 ={v} MEM[(struct S32_SCB_Type *)3758153728B].CCSIDR;
  # DEBUG ccsidr => ccsidr_16
  # DEBUG BEGIN_STMT
  _1 = ccsidr_16 >> 13;
  sets_17 = _1 & 32767;
  # DEBUG sets => sets_17

  <bb 3> [local count: 118111600]:
  # sets_9 = PHI <sets_17(2), sets_22(7)>
  # DEBUG sets => sets_9
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _2 = ccsidr_16 >> 3;
  ways_18 = _2 & 1023;
  # DEBUG ways => ways_18

  <bb 4> [local count: 1073741824]:
  # ways_10 = PHI <ways_18(3), ways_21(8)>
  # DEBUG ways => ways_10
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _3 = sets_9 << 5;
  _4 = _3 & 16352;
  _5 = ways_10 << 30;
  _6 = _4 | _5;
  MEM[(struct S32_SCB_Type *)3758153728B].DCCISW ={v} _6;
  # DEBUG BEGIN_STMT
  __asm__ __volatile__(" DSB");
  # DEBUG BEGIN_STMT
  ways_21 = ways_10 + 4294967295;
  # DEBUG ways => ways_21
  if (ways_10 != 0)
    goto <bb 8>; [89.00%]
  else
    goto <bb 5>; [11.00%]

  <bb 8> [local count: 955630224]:
  goto <bb 4>; [100.00%]

  <bb 5> [local count: 118111601]:
  # DEBUG BEGIN_STMT
  sets_22 = sets_9 + 4294967295;
  # DEBUG sets => sets_22
  if (sets_9 != 0)
    goto <bb 7>; [89.00%]
  else
    goto <bb 6>; [11.00%]

  <bb 7> [local count: 105119325]:
  goto <bb 3>; [100.00%]

  <bb 6> [local count: 12992276]:
  # DEBUG BEGIN_STMT
  __asm__ __volatile__(" DSB");
  # DEBUG BEGIN_STMT
  _7 ={v} MEM[(struct S32_SCB_Type *)3758153728B].CSSELR;
  _8 = _7 | 1;
  MEM[(struct S32_SCB_Type *)3758153728B].CSSELR ={v} _8;
  # DEBUG BEGIN_STMT
  __asm__ __volatile__(" DSB");
  # DEBUG BEGIN_STMT
  __asm__ __volatile__(" ISB");
  # DEBUG BEGIN_STMT
  MEM[(struct S32_SCB_Type *)3758153728B].ICIALLU ={v} 0;
  # DEBUG BEGIN_STMT
  __asm__ __volatile__(" DSB");
  return;

}


