
Marking local functions: Emios_Pwm_Ip_IrqDaocHandler Emios_Pwm_Ip_ClearFlagEvent Emios_Pwm_Ip_GetOutputPinState Emios_Pwm_Ip_GetPwmMode Emios_Pwm_Ip_GetEdgePolarity Emios_Pwm_Ip_GetUCRegB Emios_Pwm_Ip_SetUCRegB Emios_Pwm_Ip_GetUCRegA Emios_Pwm_Ip_SetUCRegA


Marking externally visible functions: Emios_Pwm_Ip_IrqHandler


Marking externally visible variables:


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

Emios_Pwm_Ip_aDaocDuty/47 (Emios_Pwm_Ip_aDaocDuty) @06bf00d8
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: Emios_Pwm_Ip_IrqDaocHandler/41 (read)Emios_Pwm_Ip_IrqDaocHandler/41 (read)
  Availability: not_available
  Varpool flags:
Emios_Pwm_Ip_aPeriod/46 (Emios_Pwm_Ip_aPeriod) @06bf0090
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: Emios_Pwm_Ip_IrqDaocHandler/41 (read)Emios_Pwm_Ip_IrqDaocHandler/41 (read)Emios_Pwm_Ip_IrqDaocHandler/41 (read)
  Availability: not_available
  Varpool flags:
Emios_Pwm_Ip_GetMasterBusChannel/45 (Emios_Pwm_Ip_GetMasterBusChannel) @06be7540
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Emios_Pwm_Ip_IrqDaocHandler/41 
  Calls: 
Emios_Pwm_Ip_aNotificationPtr/44 (Emios_Pwm_Ip_aNotificationPtr) @06be44c8
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: Emios_Pwm_Ip_IrqHandler/42 (read)Emios_Pwm_Ip_IrqHandler/42 (read)Emios_Pwm_Ip_IrqHandler/42 (read)
  Availability: not_available
  Varpool flags:
Emios_Pwm_Ip_aBasePtr/43 (Emios_Pwm_Ip_aBasePtr) @06be43f0
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: Emios_Pwm_Ip_IrqHandler/42 (read)Emios_Pwm_Ip_IrqDaocHandler/41 (read)Emios_Pwm_Ip_IrqDaocHandler/41 (read)Emios_Pwm_Ip_IrqDaocHandler/41 (read)Emios_Pwm_Ip_IrqDaocHandler/41 (read)Emios_Pwm_Ip_IrqDaocHandler/41 (read)Emios_Pwm_Ip_IrqDaocHandler/41 (read)Emios_Pwm_Ip_IrqDaocHandler/41 (read)Emios_Pwm_Ip_IrqDaocHandler/41 (read)Emios_Pwm_Ip_IrqDaocHandler/41 (read)Emios_Pwm_Ip_IrqDaocHandler/41 (read)Emios_Pwm_Ip_IrqDaocHandler/41 (read)Emios_Pwm_Ip_IrqDaocHandler/41 (read)Emios_Pwm_Ip_IrqDaocHandler/41 (read)
  Availability: not_available
  Varpool flags: read-only
Emios_Pwm_Ip_IrqHandler/42 (Emios_Pwm_Ip_IrqHandler) @06bddc40
  Type: function definition analyzed
  Visibility: externally_visible public
  References: Emios_Pwm_Ip_aBasePtr/43 (read)Emios_Pwm_Ip_aNotificationPtr/44 (read)Emios_Pwm_Ip_aNotificationPtr/44 (read)Emios_Pwm_Ip_aNotificationPtr/44 (read)
  Referring: 
  Availability: available
  Function flags: body optimize_size
  Called by: 
  Calls: Emios_Pwm_Ip_IrqDaocHandler/41 Emios_Pwm_Ip_ClearFlagEvent/35 
   Indirect call
Emios_Pwm_Ip_IrqDaocHandler/41 (Emios_Pwm_Ip_IrqDaocHandler) @06bdd2a0
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: Emios_Pwm_Ip_aBasePtr/43 (read)Emios_Pwm_Ip_aBasePtr/43 (read)Emios_Pwm_Ip_aBasePtr/43 (read)Emios_Pwm_Ip_aBasePtr/43 (read)Emios_Pwm_Ip_aPeriod/46 (read)Emios_Pwm_Ip_aDaocDuty/47 (read)Emios_Pwm_Ip_aBasePtr/43 (read)Emios_Pwm_Ip_aBasePtr/43 (read)Emios_Pwm_Ip_aPeriod/46 (read)Emios_Pwm_Ip_aBasePtr/43 (read)Emios_Pwm_Ip_aBasePtr/43 (read)Emios_Pwm_Ip_aBasePtr/43 (read)Emios_Pwm_Ip_aPeriod/46 (read)Emios_Pwm_Ip_aBasePtr/43 (read)Emios_Pwm_Ip_aBasePtr/43 (read)Emios_Pwm_Ip_aDaocDuty/47 (read)Emios_Pwm_Ip_aBasePtr/43 (read)Emios_Pwm_Ip_aBasePtr/43 (read)
  Referring: 
  Availability: local
  Function flags: body local optimize_size
  Called by: Emios_Pwm_Ip_IrqHandler/42 
  Calls: Emios_Pwm_Ip_SetUCRegB/9 Emios_Pwm_Ip_GetUCRegA/8 Emios_Pwm_Ip_SetUCRegA/7 Emios_Pwm_Ip_GetUCRegA/8 Emios_Pwm_Ip_GetPwmMode/27 Emios_Pwm_Ip_SetUCRegB/9 Emios_Pwm_Ip_GetUCRegB/10 Emios_Pwm_Ip_SetUCRegA/7 Emios_Pwm_Ip_GetUCRegB/10 Emios_Pwm_Ip_GetPwmMode/27 Emios_Pwm_Ip_GetOutputPinState/34 Emios_Pwm_Ip_GetEdgePolarity/25 Emios_Pwm_Ip_GetUCRegA/8 Emios_Pwm_Ip_GetMasterBusChannel/45 
Emios_Pwm_Ip_ClearFlagEvent/35 (Emios_Pwm_Ip_ClearFlagEvent) @06bd4d20
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: 
  Availability: local
  Function flags: body local optimize_size
  Called by: Emios_Pwm_Ip_IrqHandler/42 
  Calls: 
Emios_Pwm_Ip_GetOutputPinState/34 (Emios_Pwm_Ip_GetOutputPinState) @06bd49a0
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: 
  Availability: local
  Function flags: body local optimize_size
  Called by: Emios_Pwm_Ip_IrqDaocHandler/41 
  Calls: 
Emios_Pwm_Ip_GetPwmMode/27 (Emios_Pwm_Ip_GetPwmMode) @06bcd380
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: 
  Availability: local
  Function flags: body local optimize_size
  Called by: Emios_Pwm_Ip_IrqDaocHandler/41 Emios_Pwm_Ip_IrqDaocHandler/41 
  Calls: 
Emios_Pwm_Ip_GetEdgePolarity/25 (Emios_Pwm_Ip_GetEdgePolarity) @06bc8d20
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: 
  Availability: local
  Function flags: body local optimize_size
  Called by: Emios_Pwm_Ip_IrqDaocHandler/41 
  Calls: 
Emios_Pwm_Ip_GetUCRegB/10 (Emios_Pwm_Ip_GetUCRegB) @06bb9c40
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: 
  Availability: local
  Function flags: body local optimize_size
  Called by: Emios_Pwm_Ip_IrqDaocHandler/41 Emios_Pwm_Ip_IrqDaocHandler/41 
  Calls: 
Emios_Pwm_Ip_SetUCRegB/9 (Emios_Pwm_Ip_SetUCRegB) @06bb99a0
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: 
  Availability: local
  Function flags: body local optimize_size
  Called by: Emios_Pwm_Ip_IrqDaocHandler/41 Emios_Pwm_Ip_IrqDaocHandler/41 
  Calls: 
Emios_Pwm_Ip_GetUCRegA/8 (Emios_Pwm_Ip_GetUCRegA) @06bb9620
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: 
  Availability: local
  Function flags: body local optimize_size
  Called by: Emios_Pwm_Ip_IrqDaocHandler/41 Emios_Pwm_Ip_IrqDaocHandler/41 Emios_Pwm_Ip_IrqDaocHandler/41 
  Calls: 
Emios_Pwm_Ip_SetUCRegA/7 (Emios_Pwm_Ip_SetUCRegA) @06bb9380
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: 
  Availability: local
  Function flags: body local optimize_size
  Called by: Emios_Pwm_Ip_IrqDaocHandler/41 Emios_Pwm_Ip_IrqDaocHandler/41 
  Calls: 
Emios_Pwm_Ip_IrqHandler (uint8 instance, uint8 channel)
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  _1 = (int) instance;
  _2 = Emios_Pwm_Ip_aBasePtr[_1];
  Emios_Pwm_Ip_ClearFlagEvent (_2, channel);
  # DEBUG BEGIN_STMT
  Emios_Pwm_Ip_IrqDaocHandler (instance, channel);
  # DEBUG BEGIN_STMT
  _3 = (int) instance;
  _4 = (int) channel;
  _5 = Emios_Pwm_Ip_aNotificationPtr[_3][_4];
  if (_5 != 0B)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  _6 = (int) instance;
  _7 = (int) channel;
  _8 = Emios_Pwm_Ip_aNotificationPtr[_6][_7];
  _9 = _8->cbFunction;
  _10 = (int) instance;
  _11 = (int) channel;
  _12 = Emios_Pwm_Ip_aNotificationPtr[_10][_11];
  _13 = _12->cbParameter;
  _9 (_13);

  <bb 4> :
  return;

}


Emios_Pwm_Ip_IrqDaocHandler (uint8 instance, uint8 channel)
{
  boolean outputPin;
  Emios_Pwm_Ip_PolarityType polarity;
  uint16 counterMax;
  uint16 daocRegB;
  uint16 daocRegA;
  uint16 daocDuty;
  uint16 iftmp.3;
  uint16 iftmp.2;
  uint16 iftmp.1;
  uint16 iftmp.0;

  <bb 2> :
  # DEBUG BEGIN_STMT
  daocDuty = 0;
  # DEBUG BEGIN_STMT
  daocRegA = 0;
  # DEBUG BEGIN_STMT
  daocRegB = 0;
  # DEBUG BEGIN_STMT
  _1 = (int) instance;
  _2 = Emios_Pwm_Ip_aBasePtr[_1];
  _3 = Emios_Pwm_Ip_GetMasterBusChannel (instance, channel);
  counterMax = Emios_Pwm_Ip_GetUCRegA (_2, _3);
  # DEBUG BEGIN_STMT
  _4 = (int) instance;
  _5 = Emios_Pwm_Ip_aBasePtr[_4];
  polarity = Emios_Pwm_Ip_GetEdgePolarity (_5, channel);
  # DEBUG BEGIN_STMT
  _6 = (int) instance;
  _7 = Emios_Pwm_Ip_aBasePtr[_6];
  outputPin = Emios_Pwm_Ip_GetOutputPinState (_7, channel);
  # DEBUG BEGIN_STMT
  _8 = (int) instance;
  _9 = Emios_Pwm_Ip_aBasePtr[_8];
  _10 = Emios_Pwm_Ip_GetPwmMode (_9, channel);
  if (_10 == 6)
    goto <bb 3>; [INV]
  else
    goto <bb 10>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  _11 = (int) instance;
  _12 = (int) channel;
  _13 = Emios_Pwm_Ip_aPeriod[_11][_12];
  _14 = (int) instance;
  _15 = (int) channel;
  _16 = Emios_Pwm_Ip_aDaocDuty[_14][_15];
  daocDuty = _13 - _16;
  # DEBUG BEGIN_STMT
  _17 = (int) daocDuty;
  _18 = (int) instance;
  _19 = Emios_Pwm_Ip_aBasePtr[_18];
  _20 = Emios_Pwm_Ip_GetUCRegB (_19, channel);
  _21 = (int) _20;
  _22 = _17 + _21;
  _23 = (int) counterMax;
  _24 = _22 % _23;
  daocRegA = (uint16) _24;
  # DEBUG BEGIN_STMT
  _25 = (int) instance;
  _26 = Emios_Pwm_Ip_aBasePtr[_25];
  if (daocRegA == 0)
    goto <bb 4>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 4> :
  iftmp.0 = counterMax;
  goto <bb 6>; [INV]

  <bb 5> :
  iftmp.0 = daocRegA;

  <bb 6> :
  Emios_Pwm_Ip_SetUCRegA (_26, channel, iftmp.0);
  # DEBUG BEGIN_STMT
  _27 = (int) instance;
  _28 = (int) channel;
  _29 = Emios_Pwm_Ip_aPeriod[_27][_28];
  _30 = (int) _29;
  _31 = (int) instance;
  _32 = Emios_Pwm_Ip_aBasePtr[_31];
  _33 = Emios_Pwm_Ip_GetUCRegB (_32, channel);
  _34 = (int) _33;
  _35 = _30 + _34;
  _36 = (int) counterMax;
  _37 = _35 % _36;
  daocRegB = (uint16) _37;
  # DEBUG BEGIN_STMT
  _38 = (int) instance;
  _39 = Emios_Pwm_Ip_aBasePtr[_38];
  if (daocRegB == 0)
    goto <bb 7>; [INV]
  else
    goto <bb 8>; [INV]

  <bb 7> :
  iftmp.1 = counterMax;
  goto <bb 9>; [INV]

  <bb 8> :
  iftmp.1 = daocRegB;

  <bb 9> :
  Emios_Pwm_Ip_SetUCRegB (_39, channel, iftmp.1);
  goto <bb 23>; [INV]

  <bb 10> :
  # DEBUG BEGIN_STMT
  _40 = (int) instance;
  _41 = Emios_Pwm_Ip_aBasePtr[_40];
  _42 = Emios_Pwm_Ip_GetPwmMode (_41, channel);
  if (_42 == 7)
    goto <bb 11>; [INV]
  else
    goto <bb 23>; [INV]

  <bb 11> :
  # DEBUG BEGIN_STMT
  if (polarity == 1)
    goto <bb 12>; [INV]
  else
    goto <bb 13>; [INV]

  <bb 12> :
  _43 = ~outputPin;
  if (_43 != 0)
    goto <bb 15>; [INV]
  else
    goto <bb 13>; [INV]

  <bb 13> :
  if (polarity == 0)
    goto <bb 14>; [INV]
  else
    goto <bb 19>; [INV]

  <bb 14> :
  if (outputPin != 0)
    goto <bb 15>; [INV]
  else
    goto <bb 19>; [INV]

  <bb 15> :
  # DEBUG BEGIN_STMT
  _44 = (int) instance;
  _45 = (int) channel;
  _46 = Emios_Pwm_Ip_aPeriod[_44][_45];
  _47 = (int) _46;
  _48 = (int) instance;
  _49 = Emios_Pwm_Ip_aBasePtr[_48];
  _50 = Emios_Pwm_Ip_GetUCRegA (_49, channel);
  _51 = (int) _50;
  _52 = _47 + _51;
  _53 = (int) counterMax;
  _54 = _52 % _53;
  daocRegA = (uint16) _54;
  # DEBUG BEGIN_STMT
  _55 = (int) instance;
  _56 = Emios_Pwm_Ip_aBasePtr[_55];
  if (daocRegA == 0)
    goto <bb 16>; [INV]
  else
    goto <bb 17>; [INV]

  <bb 16> :
  iftmp.2 = counterMax;
  goto <bb 18>; [INV]

  <bb 17> :
  iftmp.2 = daocRegA;

  <bb 18> :
  Emios_Pwm_Ip_SetUCRegA (_56, channel, iftmp.2);
  goto <bb 23>; [INV]

  <bb 19> :
  # DEBUG BEGIN_STMT
  _57 = (int) instance;
  _58 = (int) channel;
  _59 = Emios_Pwm_Ip_aDaocDuty[_57][_58];
  _60 = (int) _59;
  _61 = (int) instance;
  _62 = Emios_Pwm_Ip_aBasePtr[_61];
  _63 = Emios_Pwm_Ip_GetUCRegA (_62, channel);
  _64 = (int) _63;
  _65 = _60 + _64;
  _66 = (int) counterMax;
  _67 = _65 % _66;
  daocRegB = (uint16) _67;
  # DEBUG BEGIN_STMT
  _68 = (int) instance;
  _69 = Emios_Pwm_Ip_aBasePtr[_68];
  if (daocRegB == 0)
    goto <bb 20>; [INV]
  else
    goto <bb 21>; [INV]

  <bb 20> :
  iftmp.3 = counterMax;
  goto <bb 22>; [INV]

  <bb 21> :
  iftmp.3 = daocRegB;

  <bb 22> :
  Emios_Pwm_Ip_SetUCRegB (_69, channel, iftmp.3);

  <bb 23> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  return;

}


Emios_Pwm_Ip_ClearFlagEvent (struct Emios_Pwm_Ip_HwAddrType * const base, uint8 channel)
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  _1 = (int) channel;
  _2 = base->CH.UC[_1].S;
  _3 = (int) channel;
  _4 = _2 | 1;
  base->CH.UC[_3].S = _4;
  return;

}


Emios_Pwm_Ip_GetOutputPinState (const struct Emios_Pwm_Ip_HwAddrType * const base, uint8 channel)
{
  boolean D.4731;

  <bb 2> :
  # DEBUG BEGIN_STMT
  _1 = (int) channel;
  _2 = base->CH.UC[_1].S;
  _3 = _2 & 2;
  D.4731 = _3 != 0;
  return D.4731;

}


Emios_Pwm_Ip_GetPwmMode (const struct Emios_Pwm_Ip_HwAddrType * const base, uint8 channel)
{
  Emios_Pwm_Ip_PwmModeType mode;
  Emios_Pwm_Ip_PwmModeType D.4735;

  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = (int) channel;
  _2 = base->CH.UC[_1].C;
  _3 = _2 & 127;
  switch (_3) <default: <L12> [INV], case 1: <L0> [INV], case 6: <L1> [INV], case 7: <L2> [INV], case 38: <L3> [INV], case 88: <L4> [INV], case 90: <L5> [INV], case 92: <L6> [INV], case 93: <L8> [INV], case 94: <L7> [INV], case 95: <L9> [INV], case 96: <L10> [INV], case 98: <L11> [INV]>

  <bb 3> :
<L0>:
  # DEBUG BEGIN_STMT
  mode = 1;
  # DEBUG BEGIN_STMT
  goto <bb 16>; [INV]

  <bb 4> :
<L1>:
  # DEBUG BEGIN_STMT
  mode = 6;
  # DEBUG BEGIN_STMT
  goto <bb 16>; [INV]

  <bb 5> :
<L2>:
  # DEBUG BEGIN_STMT
  mode = 7;
  # DEBUG BEGIN_STMT
  goto <bb 16>; [INV]

  <bb 6> :
<L3>:
  # DEBUG BEGIN_STMT
  mode = 38;
  # DEBUG BEGIN_STMT
  goto <bb 16>; [INV]

  <bb 7> :
<L4>:
  # DEBUG BEGIN_STMT
  mode = 88;
  # DEBUG BEGIN_STMT
  goto <bb 16>; [INV]

  <bb 8> :
<L5>:
  # DEBUG BEGIN_STMT
  mode = 90;
  # DEBUG BEGIN_STMT
  goto <bb 16>; [INV]

  <bb 9> :
<L6>:
  # DEBUG BEGIN_STMT
  mode = 92;
  # DEBUG BEGIN_STMT
  goto <bb 16>; [INV]

  <bb 10> :
<L7>:
  # DEBUG BEGIN_STMT
  mode = 94;
  # DEBUG BEGIN_STMT
  goto <bb 16>; [INV]

  <bb 11> :
<L8>:
  # DEBUG BEGIN_STMT
  mode = 93;
  # DEBUG BEGIN_STMT
  goto <bb 16>; [INV]

  <bb 12> :
<L9>:
  # DEBUG BEGIN_STMT
  mode = 95;
  # DEBUG BEGIN_STMT
  goto <bb 16>; [INV]

  <bb 13> :
<L10>:
  # DEBUG BEGIN_STMT
  mode = 96;
  # DEBUG BEGIN_STMT
  goto <bb 16>; [INV]

  <bb 14> :
<L11>:
  # DEBUG BEGIN_STMT
  mode = 98;
  # DEBUG BEGIN_STMT
  goto <bb 16>; [INV]

  <bb 15> :
<L12>:
  # DEBUG BEGIN_STMT
  mode = 255;
  # DEBUG BEGIN_STMT

  <bb 16> :
  # DEBUG BEGIN_STMT
  D.4735 = mode;
  return D.4735;

}


Emios_Pwm_Ip_GetEdgePolarity (const struct Emios_Pwm_Ip_HwAddrType * const base, uint8 channel)
{
  Emios_Pwm_Ip_PolarityType D.4729;

  <bb 2> :
  # DEBUG BEGIN_STMT
  _1 = (int) channel;
  _2 = base->CH.UC[_1].C;
  _3 = _2 & 128;
  _4 = _3 != 0;
  D.4729 = (Emios_Pwm_Ip_PolarityType) _4;
  return D.4729;

}


Emios_Pwm_Ip_GetUCRegB (const struct Emios_Pwm_Ip_HwAddrType * const base, uint8 channel)
{
  uint16 D.4733;

  <bb 2> :
  # DEBUG BEGIN_STMT
  _1 = (int) channel;
  _2 = base->CH.UC[_1].B;
  D.4733 = (uint16) _2;
  return D.4733;

}


Emios_Pwm_Ip_SetUCRegB (struct Emios_Pwm_Ip_HwAddrType * const base, uint8 channel, uint16 value)
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  _1 = (int) channel;
  _2 = (long unsigned int) value;
  base->CH.UC[_1].B = _2;
  return;

}


Emios_Pwm_Ip_GetUCRegA (const struct Emios_Pwm_Ip_HwAddrType * const base, uint8 channel)
{
  uint16 D.4737;

  <bb 2> :
  # DEBUG BEGIN_STMT
  _1 = (int) channel;
  _2 = base->CH.UC[_1].A;
  D.4737 = (uint16) _2;
  return D.4737;

}


Emios_Pwm_Ip_SetUCRegA (struct Emios_Pwm_Ip_HwAddrType * const base, uint8 channel, uint16 value)
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  _1 = (int) channel;
  _2 = (long unsigned int) value;
  base->CH.UC[_1].A = _2;
  return;

}


