mirror of
https://github.com/Dev-KATECH/ADM.git
synced 2026-05-17 01:43:59 +09:00
1759 lines
60 KiB
C++
1759 lines
60 KiB
C++
|
|
IPA constant propagation start:
|
|
Determining dynamic type for call: Flexio_Pwm_Ip_ConfigurePinOverride (1077035008B, _2, 0);
|
|
Starting walk at: Flexio_Pwm_Ip_ConfigurePinOverride (1077035008B, _2, 0);
|
|
instance pointer: 1077035008B Outer instance pointer: 1077035008B offset: 0 (bits) vtbl reference:
|
|
Determining dynamic type for call: Flexio_Pwm_Ip_SetPinLevel (1077035008B, _2, level_11(D));
|
|
Starting walk at: Flexio_Pwm_Ip_SetPinLevel (1077035008B, _2, level_11(D));
|
|
instance pointer: 1077035008B Outer instance pointer: 1077035008B offset: 0 (bits) vtbl reference:
|
|
Determining dynamic type for call: Flexio_Pwm_Ip_ConfigurePinOverride (1077035008B, _3, 1);
|
|
Starting walk at: Flexio_Pwm_Ip_ConfigurePinOverride (1077035008B, _3, 1);
|
|
instance pointer: 1077035008B Outer instance pointer: 1077035008B offset: 0 (bits) vtbl reference:
|
|
Function call may change dynamic type:Flexio_Pwm_Ip_SetPinLevel (1077035008B, _2, level_11(D));
|
|
Determining dynamic type for call: Flexio_Pwm_Ip_SetTimerPrescaler (1077035008B, _2, prescaler_7(D));
|
|
Starting walk at: Flexio_Pwm_Ip_SetTimerPrescaler (1077035008B, _2, prescaler_7(D));
|
|
instance pointer: 1077035008B Outer instance pointer: 1077035008B offset: 0 (bits) vtbl reference:
|
|
Determining dynamic type for call: Flexio_Pwm_Ip_ConfigurePinOverride (1077035008B, _4, 0);
|
|
Starting walk at: Flexio_Pwm_Ip_ConfigurePinOverride (1077035008B, _4, 0);
|
|
instance pointer: 1077035008B Outer instance pointer: 1077035008B offset: 0 (bits) vtbl reference:
|
|
Function call may change dynamic type:retStatus_13 = Flexio_Pwm_Ip_UpdateInterruptMode (instanceId_8(D), channel_9(D), 0);
|
|
Determining dynamic type for call: Flexio_Pwm_Ip_SetPinLevel (1077035008B, _5, 0);
|
|
Starting walk at: Flexio_Pwm_Ip_SetPinLevel (1077035008B, _5, 0);
|
|
instance pointer: 1077035008B Outer instance pointer: 1077035008B offset: 0 (bits) vtbl reference:
|
|
Function call may change dynamic type:Flexio_Pwm_Ip_ConfigurePinOverride (1077035008B, _4, 0);
|
|
Function call may change dynamic type:retStatus_13 = Flexio_Pwm_Ip_UpdateInterruptMode (instanceId_8(D), channel_9(D), 0);
|
|
Determining dynamic type for call: Flexio_Pwm_Ip_SetTimerPrescaler (1077035008B, _1, _4);
|
|
Starting walk at: Flexio_Pwm_Ip_SetTimerPrescaler (1077035008B, _1, _4);
|
|
instance pointer: 1077035008B Outer instance pointer: 1077035008B offset: 0 (bits) vtbl reference:
|
|
Determining dynamic type for call: Flexio_Pwm_Ip_SetTimerPin (1077035008B, _5, _6);
|
|
Starting walk at: Flexio_Pwm_Ip_SetTimerPin (1077035008B, _5, _6);
|
|
instance pointer: 1077035008B Outer instance pointer: 1077035008B offset: 0 (bits) vtbl reference:
|
|
Function call may change dynamic type:Flexio_Pwm_Ip_SetTimerPrescaler (1077035008B, _1, _4);
|
|
|
|
IPA structures before propagation:
|
|
|
|
Jump functions:
|
|
Jump functions of caller Flexio_Pwm_Ip_PinOverrideNeeded.part.0/37:
|
|
callsite Flexio_Pwm_Ip_PinOverrideNeeded.part.0/37 -> Flexio_Pwm_Ip_ForceOuputLevel/29 :
|
|
param 0: PASS THROUGH: 0, op nop_expr
|
|
value: 0x0, mask: 0xff
|
|
Unknown VR
|
|
param 1: PASS THROUGH: 1, op nop_expr
|
|
value: 0x0, mask: 0xff
|
|
Unknown VR
|
|
param 2: CONST: 1
|
|
value: 0x1, mask: 0x0
|
|
Unknown VR
|
|
callsite Flexio_Pwm_Ip_PinOverrideNeeded.part.0/37 -> Flexio_Pwm_Ip_ForceOuputLevel/29 :
|
|
param 0: PASS THROUGH: 0, op nop_expr
|
|
value: 0x0, mask: 0xff
|
|
Unknown VR
|
|
param 1: PASS THROUGH: 1, op nop_expr
|
|
value: 0x0, mask: 0xff
|
|
Unknown VR
|
|
param 2: CONST: 0
|
|
value: 0x0, mask: 0x0
|
|
Unknown VR
|
|
Jump functions of caller Flexio_Mcl_Ip_SetTimerInterrupt/34:
|
|
Jump functions of caller Flexio_Mcl_Ip_ClearTimerStatus/33:
|
|
Jump functions of caller Flexio_Pwm_Ip_UpdateInterruptMode/32:
|
|
Jump functions of caller Flexio_Pwm_Ip_GetOutputState/31:
|
|
Jump functions of caller Flexio_Pwm_Ip_UpdatePeriodDuty/30:
|
|
callsite Flexio_Pwm_Ip_UpdatePeriodDuty/30 -> Flexio_Pwm_Ip_PinOverrideNeeded/25 :
|
|
param 0: PASS THROUGH: 0, op nop_expr
|
|
value: 0x0, mask: 0xff
|
|
Unknown VR
|
|
param 1: PASS THROUGH: 1, op nop_expr
|
|
value: 0x0, mask: 0xff
|
|
Unknown VR
|
|
param 2: PASS THROUGH: 2, op nop_expr
|
|
value: 0x0, mask: 0xffff
|
|
Unknown VR
|
|
param 3: PASS THROUGH: 3, op nop_expr
|
|
value: 0x0, mask: 0xffff
|
|
Unknown VR
|
|
callsite Flexio_Pwm_Ip_UpdatePeriodDuty/30 -> Flexio_Pwm_Ip_ConfigurePinOverride/9 :
|
|
param 0: CONST: 1077035008B
|
|
value: 0x0, mask: 0xfffffff8
|
|
VR ~[0, 0]
|
|
param 1: UNKNOWN
|
|
value: 0x0, mask: 0xff
|
|
Unknown VR
|
|
param 2: CONST: 0
|
|
value: 0x0, mask: 0x0
|
|
Unknown VR
|
|
Jump functions of caller Flexio_Pwm_Ip_ForceOuputLevel/29:
|
|
callsite Flexio_Pwm_Ip_ForceOuputLevel/29 -> Flexio_Pwm_Ip_ConfigurePinOverride/9 :
|
|
param 0: CONST: 1077035008B
|
|
value: 0x0, mask: 0xfffffff8
|
|
VR ~[0, 0]
|
|
param 1: UNKNOWN
|
|
value: 0x0, mask: 0xff
|
|
Unknown VR
|
|
param 2: CONST: 1
|
|
value: 0x1, mask: 0x0
|
|
Unknown VR
|
|
callsite Flexio_Pwm_Ip_ForceOuputLevel/29 -> Flexio_Pwm_Ip_SetPinLevel/8 :
|
|
param 0: CONST: 1077035008B
|
|
value: 0x0, mask: 0xfffffff8
|
|
VR ~[0, 0]
|
|
param 1: UNKNOWN
|
|
value: 0x0, mask: 0xff
|
|
Unknown VR
|
|
param 2: PASS THROUGH: 2, op nop_expr
|
|
value: 0x0, mask: 0x1
|
|
Unknown VR
|
|
Jump functions of caller Flexio_Pwm_Ip_UpdateClockPrescaler/28:
|
|
callsite Flexio_Pwm_Ip_UpdateClockPrescaler/28 -> Flexio_Pwm_Ip_SetTimerPrescaler/16 :
|
|
param 0: CONST: 1077035008B
|
|
value: 0x0, mask: 0xfffffff8
|
|
VR ~[0, 0]
|
|
param 1: UNKNOWN
|
|
value: 0x0, mask: 0xff
|
|
Unknown VR
|
|
param 2: PASS THROUGH: 2, op nop_expr
|
|
value: 0x0, mask: 0xff
|
|
Unknown VR
|
|
Jump functions of caller Flexio_Pwm_Ip_DeInitChannel/27:
|
|
callsite Flexio_Pwm_Ip_DeInitChannel/27 -> Flexio_Pwm_Ip_SetPinLevel/8 :
|
|
param 0: CONST: 1077035008B
|
|
value: 0x0, mask: 0xfffffff8
|
|
VR ~[0, 0]
|
|
param 1: UNKNOWN
|
|
value: 0x0, mask: 0xff
|
|
Unknown VR
|
|
param 2: CONST: 0
|
|
value: 0x0, mask: 0x0
|
|
Unknown VR
|
|
callsite Flexio_Pwm_Ip_DeInitChannel/27 -> Flexio_Pwm_Ip_ConfigurePinOverride/9 :
|
|
param 0: CONST: 1077035008B
|
|
value: 0x0, mask: 0xfffffff8
|
|
VR ~[0, 0]
|
|
param 1: UNKNOWN
|
|
value: 0x0, mask: 0xff
|
|
Unknown VR
|
|
param 2: CONST: 0
|
|
value: 0x0, mask: 0x0
|
|
Unknown VR
|
|
callsite Flexio_Pwm_Ip_DeInitChannel/27 -> Flexio_Pwm_Ip_UpdateInterruptMode/32 :
|
|
param 0: PASS THROUGH: 0, op nop_expr
|
|
value: 0x0, mask: 0xff
|
|
Unknown VR
|
|
param 1: PASS THROUGH: 1, op nop_expr
|
|
value: 0x0, mask: 0xff
|
|
Unknown VR
|
|
param 2: CONST: 0
|
|
value: 0x0, mask: 0x0
|
|
Unknown VR
|
|
Jump functions of caller Flexio_Pwm_Ip_InitChannel/26:
|
|
callsite Flexio_Pwm_Ip_InitChannel/26 -> Flexio_Pwm_Ip_PinOverrideNeeded/25 :
|
|
param 0: PASS THROUGH: 0, op nop_expr
|
|
value: 0x0, mask: 0xff
|
|
Unknown VR
|
|
param 1: UNKNOWN
|
|
value: 0x0, mask: 0xff
|
|
Unknown VR
|
|
param 2: UNKNOWN
|
|
value: 0x0, mask: 0xffff
|
|
Unknown VR
|
|
param 3: UNKNOWN
|
|
value: 0x0, mask: 0xffff
|
|
Unknown VR
|
|
callsite Flexio_Pwm_Ip_InitChannel/26 -> Flexio_Pwm_Ip_UpdateInterruptMode/32 :
|
|
param 0: PASS THROUGH: 0, op nop_expr
|
|
value: 0x0, mask: 0xff
|
|
Unknown VR
|
|
param 1: UNKNOWN
|
|
value: 0x0, mask: 0xff
|
|
Unknown VR
|
|
param 2: CONST: 0
|
|
value: 0x0, mask: 0x0
|
|
Unknown VR
|
|
callsite Flexio_Pwm_Ip_InitChannel/26 -> Flexio_Pwm_Ip_SetTimerPin/12 :
|
|
param 0: CONST: 1077035008B
|
|
value: 0x0, mask: 0xfffffff8
|
|
VR ~[0, 0]
|
|
param 1: UNKNOWN
|
|
value: 0x0, mask: 0xff
|
|
Unknown VR
|
|
param 2: UNKNOWN
|
|
value: 0x0, mask: 0xff
|
|
Unknown VR
|
|
callsite Flexio_Pwm_Ip_InitChannel/26 -> Flexio_Pwm_Ip_SetTimerPrescaler/16 :
|
|
param 0: CONST: 1077035008B
|
|
value: 0x0, mask: 0xfffffff8
|
|
VR ~[0, 0]
|
|
param 1: UNKNOWN
|
|
value: 0x0, mask: 0xff
|
|
Unknown VR
|
|
param 2: UNKNOWN
|
|
value: 0x0, mask: 0xff
|
|
Unknown VR
|
|
Jump functions of caller Flexio_Pwm_Ip_PinOverrideNeeded/25:
|
|
callsite Flexio_Pwm_Ip_PinOverrideNeeded/25 -> Flexio_Pwm_Ip_PinOverrideNeeded.part.0/37 :
|
|
param 0: PASS THROUGH: 0, op nop_expr
|
|
value: 0x0, mask: 0xff
|
|
Unknown VR
|
|
param 1: PASS THROUGH: 1, op nop_expr
|
|
value: 0x0, mask: 0xff
|
|
Unknown VR
|
|
callsite Flexio_Pwm_Ip_PinOverrideNeeded/25 -> Flexio_Pwm_Ip_ForceOuputLevel/29 :
|
|
param 0: PASS THROUGH: 0, op nop_expr
|
|
value: 0x0, mask: 0xff
|
|
Unknown VR
|
|
param 1: PASS THROUGH: 1, op nop_expr
|
|
value: 0x0, mask: 0xff
|
|
Unknown VR
|
|
param 2: CONST: 1
|
|
value: 0x1, mask: 0x0
|
|
Unknown VR
|
|
callsite Flexio_Pwm_Ip_PinOverrideNeeded/25 -> Flexio_Pwm_Ip_ForceOuputLevel/29 :
|
|
param 0: PASS THROUGH: 0, op nop_expr
|
|
value: 0x0, mask: 0xff
|
|
Unknown VR
|
|
param 1: PASS THROUGH: 1, op nop_expr
|
|
value: 0x0, mask: 0xff
|
|
Unknown VR
|
|
param 2: CONST: 0
|
|
value: 0x0, mask: 0x0
|
|
Unknown VR
|
|
Jump functions of caller Flexio_Pwm_Ip_SetTimerPrescaler/16:
|
|
Jump functions of caller Flexio_Pwm_Ip_SetTimerPin/12:
|
|
Jump functions of caller Flexio_Pwm_Ip_ConfigurePinOverride/9:
|
|
Jump functions of caller Flexio_Pwm_Ip_SetPinLevel/8:
|
|
|
|
Propagating constants:
|
|
|
|
Not considering Flexio_Pwm_Ip_UpdateInterruptMode for cloning; -fipa-cp-clone disabled.
|
|
Not considering Flexio_Pwm_Ip_GetOutputState for cloning; -fipa-cp-clone disabled.
|
|
Not considering Flexio_Pwm_Ip_UpdatePeriodDuty for cloning; -fipa-cp-clone disabled.
|
|
Not considering Flexio_Pwm_Ip_ForceOuputLevel for cloning; -fipa-cp-clone disabled.
|
|
Not considering Flexio_Pwm_Ip_UpdateClockPrescaler for cloning; -fipa-cp-clone disabled.
|
|
Not considering Flexio_Pwm_Ip_DeInitChannel for cloning; -fipa-cp-clone disabled.
|
|
Not considering Flexio_Pwm_Ip_InitChannel for cloning; -fipa-cp-clone disabled.
|
|
|
|
overall_size: 375, max_new_size: 11001
|
|
- context independent values, size: 7, time_benefit: 1.000000
|
|
- context independent values, size: 9, time_benefit: 1.000000
|
|
- context independent values, size: 73, time_benefit: 1.000000
|
|
- context independent values, size: 21, time_benefit: 1.000000
|
|
- context independent values, size: 7, time_benefit: 1.000000
|
|
Decided to specialize for all known contexts, code not going to grow.
|
|
- context independent values, size: 8, time_benefit: 1.000000
|
|
Decided to specialize for all known contexts, code not going to grow.
|
|
- context independent values, size: 9, time_benefit: 1.000000
|
|
Decided to specialize for all known contexts, code not going to grow.
|
|
- context independent values, size: 10, time_benefit: 1.000000
|
|
Decided to specialize for all known contexts, code not going to grow.
|
|
|
|
IPA lattices after all propagation:
|
|
|
|
Lattices:
|
|
Node: Flexio_Pwm_Ip_PinOverrideNeeded.part.0/37:
|
|
param [0]: VARIABLE
|
|
ctxs: VARIABLE
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS VARIABLE
|
|
param [1]: VARIABLE
|
|
ctxs: VARIABLE
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS VARIABLE
|
|
Node: Flexio_Pwm_Ip_UpdateInterruptMode/32:
|
|
param [0]: BOTTOM
|
|
ctxs: BOTTOM
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS BOTTOM
|
|
param [1]: BOTTOM
|
|
ctxs: BOTTOM
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS BOTTOM
|
|
param [2]: BOTTOM
|
|
ctxs: BOTTOM
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS BOTTOM
|
|
Node: Flexio_Pwm_Ip_GetOutputState/31:
|
|
param [0]: BOTTOM
|
|
ctxs: BOTTOM
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS BOTTOM
|
|
param [1]: BOTTOM
|
|
ctxs: BOTTOM
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS BOTTOM
|
|
Node: Flexio_Pwm_Ip_UpdatePeriodDuty/30:
|
|
param [0]: BOTTOM
|
|
ctxs: BOTTOM
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS BOTTOM
|
|
param [1]: BOTTOM
|
|
ctxs: BOTTOM
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS BOTTOM
|
|
param [2]: BOTTOM
|
|
ctxs: BOTTOM
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS BOTTOM
|
|
param [3]: BOTTOM
|
|
ctxs: BOTTOM
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS BOTTOM
|
|
Node: Flexio_Pwm_Ip_ForceOuputLevel/29:
|
|
param [0]: BOTTOM
|
|
ctxs: BOTTOM
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS BOTTOM
|
|
param [1]: BOTTOM
|
|
ctxs: BOTTOM
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS BOTTOM
|
|
param [2]: BOTTOM
|
|
ctxs: BOTTOM
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS BOTTOM
|
|
Node: Flexio_Pwm_Ip_UpdateClockPrescaler/28:
|
|
param [0]: BOTTOM
|
|
ctxs: BOTTOM
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS BOTTOM
|
|
param [1]: BOTTOM
|
|
ctxs: BOTTOM
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS BOTTOM
|
|
param [2]: BOTTOM
|
|
ctxs: BOTTOM
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS BOTTOM
|
|
Node: Flexio_Pwm_Ip_DeInitChannel/27:
|
|
param [0]: BOTTOM
|
|
ctxs: BOTTOM
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS BOTTOM
|
|
param [1]: BOTTOM
|
|
ctxs: BOTTOM
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS BOTTOM
|
|
Node: Flexio_Pwm_Ip_InitChannel/26:
|
|
param [0]: BOTTOM
|
|
ctxs: BOTTOM
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS BOTTOM
|
|
param [1]: BOTTOM
|
|
ctxs: BOTTOM
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS BOTTOM
|
|
Node: Flexio_Pwm_Ip_PinOverrideNeeded/25:
|
|
param [0]: VARIABLE
|
|
ctxs: VARIABLE
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS VARIABLE
|
|
param [1]: VARIABLE
|
|
ctxs: VARIABLE
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS VARIABLE
|
|
param [2]: VARIABLE
|
|
ctxs: VARIABLE
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS VARIABLE
|
|
param [3]: VARIABLE
|
|
ctxs: VARIABLE
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS VARIABLE
|
|
Node: Flexio_Pwm_Ip_SetTimerPrescaler/16:
|
|
param [0]: 1077035008B [loc_time: 0, loc_size: 0, prop_time: 0, prop_size: 0]
|
|
ctxs: VARIABLE
|
|
Bits: value = 0x0, mask = 0xfffffff8
|
|
struct Flexio_Pwm_Ip_HwAddrType * [1077035008B, 1077035008B]
|
|
AGGS VARIABLE
|
|
param [1]: VARIABLE
|
|
ctxs: VARIABLE
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS VARIABLE
|
|
param [2]: VARIABLE
|
|
ctxs: VARIABLE
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS VARIABLE
|
|
Node: Flexio_Pwm_Ip_SetTimerPin/12:
|
|
param [0]: 1077035008B [loc_time: 0, loc_size: 0, prop_time: 0, prop_size: 0]
|
|
ctxs: VARIABLE
|
|
Bits: value = 0x0, mask = 0xfffffff8
|
|
struct Flexio_Pwm_Ip_HwAddrType * [1077035008B, 1077035008B]
|
|
AGGS VARIABLE
|
|
param [1]: VARIABLE
|
|
ctxs: VARIABLE
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS VARIABLE
|
|
param [2]: VARIABLE
|
|
ctxs: VARIABLE
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS VARIABLE
|
|
Node: Flexio_Pwm_Ip_ConfigurePinOverride/9:
|
|
param [0]: 1077035008B [loc_time: 0, loc_size: 0, prop_time: 0, prop_size: 0]
|
|
ctxs: VARIABLE
|
|
Bits: value = 0x0, mask = 0xfffffff8
|
|
struct Flexio_Pwm_Ip_HwAddrType * [1077035008B, 1077035008B]
|
|
AGGS VARIABLE
|
|
param [1]: VARIABLE
|
|
ctxs: VARIABLE
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS VARIABLE
|
|
param [2]: 1 [loc_time: 4, loc_size: 10, prop_time: 0, prop_size: 0]
|
|
0 [loc_time: 4, loc_size: 10, prop_time: 0, prop_size: 0]
|
|
ctxs: VARIABLE
|
|
Bits unusable (BOTTOM)
|
|
boolean [0, 1]
|
|
AGGS VARIABLE
|
|
Node: Flexio_Pwm_Ip_SetPinLevel/8:
|
|
param [0]: 1077035008B [loc_time: 0, loc_size: 0, prop_time: 0, prop_size: 0]
|
|
ctxs: VARIABLE
|
|
Bits: value = 0x0, mask = 0xfffffff8
|
|
struct Flexio_Pwm_Ip_HwAddrType * [1077035008B, 1077035008B]
|
|
AGGS VARIABLE
|
|
param [1]: VARIABLE
|
|
ctxs: VARIABLE
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS VARIABLE
|
|
param [2]: VARIABLE
|
|
0 [loc_time: 4, loc_size: 10, prop_time: 0, prop_size: 0]
|
|
ctxs: VARIABLE
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS VARIABLE
|
|
|
|
IPA decision stage:
|
|
|
|
- Creating a specialized node of Flexio_Pwm_Ip_SetTimerPrescaler/16 for all known contexts.
|
|
replacing param #0 base with const 1077035008B
|
|
- Creating a specialized node of Flexio_Pwm_Ip_SetTimerPin/12 for all known contexts.
|
|
replacing param #0 base with const 1077035008B
|
|
- Creating a specialized node of Flexio_Pwm_Ip_ConfigurePinOverride/9 for all known contexts.
|
|
replacing param #0 base with const 1077035008B
|
|
- Creating a specialized node of Flexio_Pwm_Ip_SetPinLevel/8 for all known contexts.
|
|
replacing param #0 base with const 1077035008B
|
|
Propagated bits info for function Flexio_Pwm_Ip_SetPinLevel.constprop/62:
|
|
param 0: value = 0x0, mask = 0xfffffff8
|
|
Propagated bits info for function Flexio_Pwm_Ip_ConfigurePinOverride.constprop/61:
|
|
param 0: value = 0x0, mask = 0xfffffff8
|
|
Propagated bits info for function Flexio_Pwm_Ip_SetTimerPin.constprop/60:
|
|
param 0: value = 0x0, mask = 0xfffffff8
|
|
Propagated bits info for function Flexio_Pwm_Ip_SetTimerPrescaler.constprop/59:
|
|
param 0: value = 0x0, mask = 0xfffffff8
|
|
Propagated bits info for function Flexio_Pwm_Ip_SetTimerPrescaler/16:
|
|
param 0: value = 0x0, mask = 0xfffffff8
|
|
Propagated bits info for function Flexio_Pwm_Ip_SetTimerPin/12:
|
|
param 0: value = 0x0, mask = 0xfffffff8
|
|
Propagated bits info for function Flexio_Pwm_Ip_ConfigurePinOverride/9:
|
|
param 0: value = 0x0, mask = 0xfffffff8
|
|
Propagated bits info for function Flexio_Pwm_Ip_SetPinLevel/8:
|
|
param 0: value = 0x0, mask = 0xfffffff8
|
|
|
|
IPA constant propagation end
|
|
|
|
Reclaiming functions: Flexio_Pwm_Ip_SetTimerPrescaler/16 Flexio_Pwm_Ip_SetTimerPin/12 Flexio_Pwm_Ip_ConfigurePinOverride/9 Flexio_Pwm_Ip_SetPinLevel/8
|
|
Reclaiming variables:
|
|
Clearing address taken flags:
|
|
Symbol table:
|
|
|
|
Flexio_Pwm_Ip_SetPinLevel.constprop.0/62 (Flexio_Pwm_Ip_SetPinLevel.constprop) @05c87d20
|
|
Type: function definition analyzed
|
|
Visibility:
|
|
References:
|
|
Referring:
|
|
Clone of Flexio_Pwm_Ip_SetPinLevel/8
|
|
Availability: local
|
|
Function flags: count:1073741824 (estimated locally) local optimize_size
|
|
Called by: Flexio_Pwm_Ip_ForceOuputLevel/29 (1073741824 (estimated locally),1.00 per call) Flexio_Pwm_Ip_DeInitChannel/27 (1073741824 (estimated locally),1.00 per call)
|
|
Calls:
|
|
Flexio_Pwm_Ip_ConfigurePinOverride.constprop.0/61 (Flexio_Pwm_Ip_ConfigurePinOverride.constprop) @05c7f620
|
|
Type: function definition analyzed
|
|
Visibility:
|
|
References:
|
|
Referring:
|
|
Clone of Flexio_Pwm_Ip_ConfigurePinOverride/9
|
|
Availability: local
|
|
Function flags: count:1073741824 (estimated locally) local optimize_size
|
|
Called by: Flexio_Pwm_Ip_ForceOuputLevel/29 (1073741824 (estimated locally),1.00 per call) Flexio_Pwm_Ip_UpdatePeriodDuty/30 (536870913 (estimated locally),0.50 per call) Flexio_Pwm_Ip_DeInitChannel/27 (1073741824 (estimated locally),1.00 per call)
|
|
Calls:
|
|
Flexio_Pwm_Ip_SetTimerPin.constprop.0/60 (Flexio_Pwm_Ip_SetTimerPin.constprop) @05c8c460
|
|
Type: function definition analyzed
|
|
Visibility:
|
|
References:
|
|
Referring:
|
|
Clone of Flexio_Pwm_Ip_SetTimerPin/12
|
|
Availability: local
|
|
Function flags: count:1073741824 (estimated locally) local optimize_size
|
|
Called by: Flexio_Pwm_Ip_InitChannel/26 (1073741824 (estimated locally),1.00 per call)
|
|
Calls:
|
|
Flexio_Pwm_Ip_SetTimerPrescaler.constprop.0/59 (Flexio_Pwm_Ip_SetTimerPrescaler.constprop) @05c8c7e0
|
|
Type: function definition analyzed
|
|
Visibility:
|
|
References:
|
|
Referring:
|
|
Clone of Flexio_Pwm_Ip_SetTimerPrescaler/16
|
|
Availability: local
|
|
Function flags: count:1073741824 (estimated locally) local optimize_size
|
|
Called by: Flexio_Pwm_Ip_UpdateClockPrescaler/28 (1073741824 (estimated locally),1.00 per call) Flexio_Pwm_Ip_InitChannel/26 (1073741824 (estimated locally),1.00 per call)
|
|
Calls:
|
|
Flexio_Pwm_Ip_PinOverrideNeeded.part.0/37 (Flexio_Pwm_Ip_PinOverrideNeeded.part.0) @05c7f380
|
|
Type: function definition analyzed
|
|
Visibility: prevailing_def_ironly artificial
|
|
References: Flexio_Pwm_Ip_aState/22 (read)
|
|
Referring:
|
|
Availability: local
|
|
Function flags: count:1073741824 (estimated locally) first_run:1 body local split_part optimize_size
|
|
Called by: Flexio_Pwm_Ip_PinOverrideNeeded/25 (91268056 (estimated locally),0.09 per call)
|
|
Calls: Flexio_Pwm_Ip_ForceOuputLevel/29 (536870913 (estimated locally),0.50 per call) Flexio_Pwm_Ip_ForceOuputLevel/29 (536870913 (estimated locally),0.50 per call)
|
|
Flexio_Mcl_Ip_SetTimerInterrupt/34 (Flexio_Mcl_Ip_SetTimerInterrupt) @05d37460
|
|
Type: function
|
|
Visibility: external public
|
|
References:
|
|
Referring:
|
|
Availability: not_available
|
|
Function flags: optimize_size
|
|
Called by: Flexio_Pwm_Ip_UpdateInterruptMode/32 (217325345 (estimated locally),0.20 per call) Flexio_Pwm_Ip_UpdateInterruptMode/32 (1073741823 (estimated locally),1.00 per call)
|
|
Calls:
|
|
Flexio_Mcl_Ip_ClearTimerStatus/33 (Flexio_Mcl_Ip_ClearTimerStatus) @05e4fe00
|
|
Type: function
|
|
Visibility: external public
|
|
References:
|
|
Referring:
|
|
Availability: not_available
|
|
Function flags: optimize_size
|
|
Called by: Flexio_Pwm_Ip_UpdateInterruptMode/32 (1073741823 (estimated locally),1.00 per call) Flexio_Pwm_Ip_ForceOuputLevel/29 (1073741824 (estimated locally),1.00 per call)
|
|
Calls:
|
|
Flexio_Pwm_Ip_UpdateInterruptMode/32 (Flexio_Pwm_Ip_UpdateInterruptMode) @05ce29a0
|
|
Type: function definition analyzed
|
|
Visibility: externally_visible public
|
|
References: Flexio_Pwm_Ip_aState/22 (read)timerIrqMask/23 (read)timerIrqMask/23 (write)pinIrqMask/24 (read)pinIrqMask/24 (write)pinIrqMask/24 (read)pinIrqMask/24 (write)pinIrqMask/24 (read)pinIrqMask/24 (write)timerIrqMask/23 (read)timerIrqMask/23 (write)
|
|
Referring:
|
|
Availability: available
|
|
Function flags: count:1073741823 (estimated locally) body optimize_size
|
|
Called by: Flexio_Pwm_Ip_DeInitChannel/27 (1073741824 (estimated locally),1.00 per call) Flexio_Pwm_Ip_InitChannel/26 (1073741824 (estimated locally),1.00 per call)
|
|
Calls: Flexio_Mcl_Ip_SetTimerInterrupt/34 (217325345 (estimated locally),0.20 per call) Flexio_Mcl_Ip_SetTimerInterrupt/34 (1073741823 (estimated locally),1.00 per call) Flexio_Mcl_Ip_ClearTimerStatus/33 (1073741823 (estimated locally),1.00 per call)
|
|
Flexio_Pwm_Ip_GetOutputState/31 (Flexio_Pwm_Ip_GetOutputState) @05ce2460
|
|
Type: function definition analyzed
|
|
Visibility: externally_visible public
|
|
References: Flexio_Pwm_Ip_aState/22 (read)
|
|
Referring:
|
|
Availability: available
|
|
Function flags: count:1073741824 (estimated locally) body optimize_size
|
|
Called by:
|
|
Calls:
|
|
Flexio_Pwm_Ip_UpdatePeriodDuty/30 (Flexio_Pwm_Ip_UpdatePeriodDuty) @05ce2e00
|
|
Type: function definition analyzed
|
|
Visibility: externally_visible public
|
|
References: Flexio_Pwm_Ip_aState/22 (read)
|
|
Referring:
|
|
Availability: available
|
|
Function flags: count:1073741824 (estimated locally) body optimize_size
|
|
Called by:
|
|
Calls: Flexio_Pwm_Ip_PinOverrideNeeded/25 (1073741824 (estimated locally),1.00 per call) Flexio_Pwm_Ip_ConfigurePinOverride.constprop/61 (536870913 (estimated locally),0.50 per call)
|
|
Flexio_Pwm_Ip_ForceOuputLevel/29 (Flexio_Pwm_Ip_ForceOuputLevel) @05ce2b60
|
|
Type: function definition analyzed
|
|
Visibility: externally_visible public
|
|
References: Flexio_Pwm_Ip_aState/22 (read)
|
|
Referring:
|
|
Availability: available
|
|
Function flags: count:1073741824 (estimated locally) body optimize_size
|
|
Called by: Flexio_Pwm_Ip_PinOverrideNeeded/25 (402653184 (estimated locally),0.38 per call) Flexio_Pwm_Ip_PinOverrideNeeded/25 (402653184 (estimated locally),0.38 per call) Flexio_Pwm_Ip_PinOverrideNeeded.part.0/37 (536870913 (estimated locally),0.50 per call) Flexio_Pwm_Ip_PinOverrideNeeded.part.0/37 (536870913 (estimated locally),0.50 per call)
|
|
Calls: Flexio_Mcl_Ip_ClearTimerStatus/33 (1073741824 (estimated locally),1.00 per call) Flexio_Pwm_Ip_ConfigurePinOverride.constprop/61 (1073741824 (estimated locally),1.00 per call) Flexio_Pwm_Ip_SetPinLevel.constprop/62 (1073741824 (estimated locally),1.00 per call)
|
|
Flexio_Pwm_Ip_UpdateClockPrescaler/28 (Flexio_Pwm_Ip_UpdateClockPrescaler) @05ce28c0
|
|
Type: function definition analyzed
|
|
Visibility: externally_visible public
|
|
References: Flexio_Pwm_Ip_aState/22 (read)
|
|
Referring:
|
|
Availability: available
|
|
Function flags: count:1073741824 (estimated locally) body optimize_size
|
|
Called by:
|
|
Calls: Flexio_Pwm_Ip_SetTimerPrescaler.constprop/59 (1073741824 (estimated locally),1.00 per call)
|
|
Flexio_Pwm_Ip_DeInitChannel/27 (Flexio_Pwm_Ip_DeInitChannel) @05ce2620
|
|
Type: function definition analyzed
|
|
Visibility: externally_visible public
|
|
References: Flexio_Pwm_Ip_aState/22 (read)Flexio_Pwm_Ip_aState/22 (write)
|
|
Referring:
|
|
Availability: available
|
|
Function flags: count:1073741824 (estimated locally) body optimize_size
|
|
Called by:
|
|
Calls: Flexio_Pwm_Ip_SetPinLevel.constprop/62 (1073741824 (estimated locally),1.00 per call) Flexio_Pwm_Ip_ConfigurePinOverride.constprop/61 (1073741824 (estimated locally),1.00 per call) Flexio_Pwm_Ip_UpdateInterruptMode/32 (1073741824 (estimated locally),1.00 per call)
|
|
Flexio_Pwm_Ip_InitChannel/26 (Flexio_Pwm_Ip_InitChannel) @05ce2380
|
|
Type: function definition analyzed
|
|
Visibility: externally_visible public
|
|
References: Flexio_Pwm_Ip_aState/22 (write)
|
|
Referring:
|
|
Availability: available
|
|
Function flags: count:1073741824 (estimated locally) body optimize_size
|
|
Called by:
|
|
Calls: Flexio_Pwm_Ip_PinOverrideNeeded/25 (1073741824 (estimated locally),1.00 per call) Flexio_Pwm_Ip_UpdateInterruptMode/32 (1073741824 (estimated locally),1.00 per call) Flexio_Pwm_Ip_SetTimerPin.constprop/60 (1073741824 (estimated locally),1.00 per call) Flexio_Pwm_Ip_SetTimerPrescaler.constprop/59 (1073741824 (estimated locally),1.00 per call)
|
|
Flexio_Pwm_Ip_PinOverrideNeeded/25 (Flexio_Pwm_Ip_PinOverrideNeeded) @05ce20e0
|
|
Type: function definition analyzed
|
|
Visibility: prevailing_def_ironly
|
|
References: Flexio_Pwm_Ip_aState/22 (read)
|
|
Referring:
|
|
Availability: local
|
|
Function flags: count:1073741823 (estimated locally) body local optimize_size
|
|
Called by: Flexio_Pwm_Ip_InitChannel/26 (1073741824 (estimated locally),1.00 per call) Flexio_Pwm_Ip_UpdatePeriodDuty/30 (1073741824 (estimated locally),1.00 per call)
|
|
Calls: Flexio_Pwm_Ip_PinOverrideNeeded.part.0/37 (91268056 (estimated locally),0.09 per call) Flexio_Pwm_Ip_ForceOuputLevel/29 (402653184 (estimated locally),0.38 per call) Flexio_Pwm_Ip_ForceOuputLevel/29 (402653184 (estimated locally),0.38 per call)
|
|
pinIrqMask/24 (pinIrqMask) @05cdc990
|
|
Type: variable definition analyzed
|
|
Visibility: force_output externally_visible public
|
|
References:
|
|
Referring: Flexio_Pwm_Ip_UpdateInterruptMode/32 (read)Flexio_Pwm_Ip_UpdateInterruptMode/32 (write)Flexio_Pwm_Ip_UpdateInterruptMode/32 (read)Flexio_Pwm_Ip_UpdateInterruptMode/32 (write)Flexio_Pwm_Ip_UpdateInterruptMode/32 (read)Flexio_Pwm_Ip_UpdateInterruptMode/32 (write)
|
|
Availability: available
|
|
Varpool flags: initialized
|
|
timerIrqMask/23 (timerIrqMask) @05cdc900
|
|
Type: variable definition analyzed
|
|
Visibility: force_output externally_visible public
|
|
References:
|
|
Referring: Flexio_Pwm_Ip_UpdateInterruptMode/32 (read)Flexio_Pwm_Ip_UpdateInterruptMode/32 (write)Flexio_Pwm_Ip_UpdateInterruptMode/32 (read)Flexio_Pwm_Ip_UpdateInterruptMode/32 (write)
|
|
Availability: available
|
|
Varpool flags: initialized
|
|
Flexio_Pwm_Ip_aState/22 (Flexio_Pwm_Ip_aState) @05cdc870
|
|
Type: variable definition analyzed
|
|
Visibility: externally_visible public
|
|
References:
|
|
Referring: Flexio_Pwm_Ip_GetOutputState/31 (read)Flexio_Pwm_Ip_PinOverrideNeeded/25 (read)Flexio_Pwm_Ip_UpdateClockPrescaler/28 (read)Flexio_Pwm_Ip_PinOverrideNeeded.part.0/37 (read)Flexio_Pwm_Ip_UpdateInterruptMode/32 (read)Flexio_Pwm_Ip_UpdatePeriodDuty/30 (read)Flexio_Pwm_Ip_InitChannel/26 (write)Flexio_Pwm_Ip_ForceOuputLevel/29 (read)Flexio_Pwm_Ip_DeInitChannel/27 (read)Flexio_Pwm_Ip_DeInitChannel/27 (write)
|
|
Availability: available
|
|
Varpool flags: initialized
|
|
Flexio_Pwm_Ip_aBasePtr/21 (Flexio_Pwm_Ip_aBasePtr) @05cdc798
|
|
Type: variable definition analyzed
|
|
Visibility: externally_visible public
|
|
References:
|
|
Referring:
|
|
Availability: available
|
|
Varpool flags: initialized read-only const-value-known
|
|
Flexio_Pwm_Ip_SetTimerPrescaler/16 (Flexio_Pwm_Ip_SetTimerPrescaler) @05c8cee0
|
|
Type: function
|
|
Body removed by symtab_remove_unreachable_nodes
|
|
Visibility: prevailing_def_ironly
|
|
References:
|
|
Referring:
|
|
Availability: not_available
|
|
Function flags: count:1073741824 (estimated locally) body optimize_size
|
|
Called by:
|
|
Calls:
|
|
Flexio_Pwm_Ip_SetTimerPin/12 (Flexio_Pwm_Ip_SetTimerPin) @05c8c0e0
|
|
Type: function
|
|
Body removed by symtab_remove_unreachable_nodes
|
|
Visibility: prevailing_def_ironly
|
|
References:
|
|
Referring:
|
|
Availability: not_available
|
|
Function flags: count:1073741824 (estimated locally) body optimize_size
|
|
Called by:
|
|
Calls:
|
|
Flexio_Pwm_Ip_ConfigurePinOverride/9 (Flexio_Pwm_Ip_ConfigurePinOverride) @05c87700
|
|
Type: function
|
|
Body removed by symtab_remove_unreachable_nodes
|
|
Visibility: prevailing_def_ironly
|
|
References:
|
|
Referring:
|
|
Availability: not_available
|
|
Function flags: count:1073741824 (estimated locally) body optimize_size
|
|
Called by:
|
|
Calls:
|
|
Flexio_Pwm_Ip_SetPinLevel/8 (Flexio_Pwm_Ip_SetPinLevel) @05c87460
|
|
Type: function
|
|
Body removed by symtab_remove_unreachable_nodes
|
|
Visibility: prevailing_def_ironly
|
|
References:
|
|
Referring:
|
|
Availability: not_available
|
|
Function flags: count:1073741824 (estimated locally) body optimize_size
|
|
Called by:
|
|
Calls:
|
|
|
|
;; Function Flexio_Pwm_Ip_UpdateClockPrescaler (Flexio_Pwm_Ip_UpdateClockPrescaler, funcdef_no=24, decl_uid=4342, cgraph_uid=25, symbol_order=28)
|
|
|
|
Modification phase of node Flexio_Pwm_Ip_UpdateClockPrescaler/28
|
|
Flexio_Pwm_Ip_UpdateClockPrescaler (uint8 instanceId, uint8 channel, Flexio_Pwm_Ip_ClockPrescalerType prescaler)
|
|
{
|
|
const struct Flexio_Pwm_Ip_ChannelConfigType * const userCfg;
|
|
int _1;
|
|
unsigned char _2;
|
|
|
|
<bb 2> [local count: 1073741824]:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG base => 1077035008B
|
|
# DEBUG BEGIN_STMT
|
|
_1 = (int) channel_4(D);
|
|
userCfg_6 = Flexio_Pwm_Ip_aState[_1];
|
|
# DEBUG userCfg => userCfg_6
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG retStatus => 0
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG BEGIN_STMT
|
|
_2 = userCfg_6->timerId;
|
|
Flexio_Pwm_Ip_SetTimerPrescaler (1077035008B, _2, prescaler_7(D));
|
|
# DEBUG BEGIN_STMT
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
;; Function Flexio_Pwm_Ip_ForceOuputLevel (Flexio_Pwm_Ip_ForceOuputLevel, funcdef_no=25, decl_uid=4346, cgraph_uid=26, symbol_order=29)
|
|
|
|
Modification phase of node Flexio_Pwm_Ip_ForceOuputLevel/29
|
|
Flexio_Pwm_Ip_ForceOuputLevel (uint8 instanceId, uint8 channel, boolean level)
|
|
{
|
|
const struct Flexio_Pwm_Ip_ChannelConfigType * const userCfg;
|
|
int _1;
|
|
unsigned char _2;
|
|
unsigned char _3;
|
|
unsigned char _4;
|
|
unsigned char _5;
|
|
unsigned char _6;
|
|
int _15;
|
|
long unsigned int _16;
|
|
long unsigned int _17;
|
|
int _18;
|
|
long unsigned int _19;
|
|
|
|
<bb 2> [local count: 1073741824]:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG base => 1077035008B
|
|
# DEBUG BEGIN_STMT
|
|
_1 = (int) channel_8(D);
|
|
userCfg_10 = Flexio_Pwm_Ip_aState[_1];
|
|
# DEBUG userCfg => userCfg_10
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG retStatus => 0
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG BEGIN_STMT
|
|
_2 = userCfg_10->pinId;
|
|
Flexio_Pwm_Ip_SetPinLevel (1077035008B, _2, level_11(D));
|
|
# DEBUG BEGIN_STMT
|
|
_3 = userCfg_10->pinId;
|
|
Flexio_Pwm_Ip_ConfigurePinOverride (1077035008B, _3, 1);
|
|
# DEBUG BEGIN_STMT
|
|
_4 = userCfg_10->timerId;
|
|
Flexio_Mcl_Ip_ClearTimerStatus (1077035008B, _4);
|
|
# DEBUG BEGIN_STMT
|
|
_5 = userCfg_10->pinId;
|
|
# DEBUG base => 1077035008B
|
|
# DEBUG pin => _5
|
|
# DEBUG INLINE_ENTRY Flexio_Pwm_Ip_ClearPinFlag
|
|
# DEBUG BEGIN_STMT
|
|
_18 = (int) _5;
|
|
_19 = 1 << _18;
|
|
MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PINSTAT ={v} _19;
|
|
# DEBUG base => NULL
|
|
# DEBUG pin => NULL
|
|
# DEBUG BEGIN_STMT
|
|
_6 = userCfg_10->timerId;
|
|
# DEBUG base => 1077035008B
|
|
# DEBUG timer => _6
|
|
# DEBUG timerMode => 0
|
|
# DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetTimerMode
|
|
# DEBUG BEGIN_STMT
|
|
_15 = (int) _6;
|
|
_16 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_15];
|
|
_17 = _16 & 4294967288;
|
|
MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_15] ={v} _17;
|
|
# DEBUG base => NULL
|
|
# DEBUG timer => NULL
|
|
# DEBUG timerMode => NULL
|
|
# DEBUG BEGIN_STMT
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
;; Function Flexio_Pwm_Ip_PinOverrideNeeded (Flexio_Pwm_Ip_PinOverrideNeeded, funcdef_no=21, decl_uid=4651, cgraph_uid=22, symbol_order=25)
|
|
|
|
Modification phase of node Flexio_Pwm_Ip_PinOverrideNeeded/25
|
|
Flexio_Pwm_Ip_PinOverrideNeeded (uint8 instanceId, uint8 channel, uint16 period, uint16 dutyCycle)
|
|
{
|
|
boolean retStatus;
|
|
int _1;
|
|
const struct Flexio_Pwm_Ip_ChannelConfigType * _2;
|
|
<unnamed type> _3;
|
|
|
|
<bb 2> [local count: 1073741823]:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG retStatus => 1
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG status => 0
|
|
# DEBUG BEGIN_STMT
|
|
if (dutyCycle_5(D) == 0)
|
|
goto <bb 4>; [50.00%]
|
|
else
|
|
goto <bb 3>; [50.00%]
|
|
|
|
<bb 3> [local count: 536870911]:
|
|
if (period_6(D) == 0)
|
|
goto <bb 4>; [50.00%]
|
|
else
|
|
goto <bb 7>; [50.00%]
|
|
|
|
<bb 4> [local count: 805306368]:
|
|
# DEBUG BEGIN_STMT
|
|
_1 = (int) channel_8(D);
|
|
_2 = Flexio_Pwm_Ip_aState[_1];
|
|
_3 = _2->polarity;
|
|
if (_3 == 0)
|
|
goto <bb 5>; [50.00%]
|
|
else
|
|
goto <bb 6>; [50.00%]
|
|
|
|
<bb 5> [local count: 402653184]:
|
|
# DEBUG BEGIN_STMT
|
|
Flexio_Pwm_Ip_ForceOuputLevel (instanceId_9(D), channel_8(D), 0);
|
|
# DEBUG status => NULL
|
|
goto <bb 9>; [100.00%]
|
|
|
|
<bb 6> [local count: 402653184]:
|
|
# DEBUG BEGIN_STMT
|
|
Flexio_Pwm_Ip_ForceOuputLevel (instanceId_9(D), channel_8(D), 1);
|
|
# DEBUG status => NULL
|
|
goto <bb 9>; [100.00%]
|
|
|
|
<bb 7> [local count: 268435456]:
|
|
# DEBUG BEGIN_STMT
|
|
if (dutyCycle_5(D) == period_6(D))
|
|
goto <bb 8>; [34.00%]
|
|
else
|
|
goto <bb 9>; [66.00%]
|
|
|
|
<bb 8> [local count: 91268056]:
|
|
# DEBUG D#1 => period_6(D)
|
|
# DEBUG D#2 => dutyCycle_5(D)
|
|
retStatus_12 = Flexio_Pwm_Ip_PinOverrideNeeded.part.0 (instanceId_9(D), channel_8(D));
|
|
|
|
<bb 9> [local count: 1073741824]:
|
|
# retStatus_4 = PHI <1(6), retStatus_12(8), 0(7), 1(5)>
|
|
# DEBUG retStatus => retStatus_4
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG BEGIN_STMT
|
|
return retStatus_4;
|
|
|
|
}
|
|
|
|
|
|
|
|
;; Function Flexio_Pwm_Ip_UpdatePeriodDuty (Flexio_Pwm_Ip_UpdatePeriodDuty, funcdef_no=26, decl_uid=4351, cgraph_uid=27, symbol_order=30)
|
|
|
|
Modification phase of node Flexio_Pwm_Ip_UpdatePeriodDuty/30
|
|
Flexio_Pwm_Ip_UpdatePeriodDuty (uint8 instanceId, uint8 channel, uint16 period, uint16 dutyCycle)
|
|
{
|
|
const struct Flexio_Pwm_Ip_ChannelConfigType * const userCfg;
|
|
int _1;
|
|
unsigned char _2;
|
|
<unnamed type> _3;
|
|
_Bool _4;
|
|
unsigned char _5;
|
|
unsigned char _6;
|
|
unsigned char _7;
|
|
unsigned char _8;
|
|
unsigned char _9;
|
|
long unsigned int _21;
|
|
int _22;
|
|
long unsigned int _23;
|
|
_Bool _24;
|
|
long unsigned int _25;
|
|
long unsigned int _26;
|
|
long unsigned int _27;
|
|
long unsigned int _28;
|
|
long unsigned int _29;
|
|
long unsigned int _30;
|
|
long unsigned int _31;
|
|
long unsigned int _32;
|
|
long unsigned int _33;
|
|
long unsigned int _34;
|
|
long unsigned int _35;
|
|
long unsigned int _36;
|
|
long unsigned int _37;
|
|
long unsigned int _38;
|
|
long unsigned int _39;
|
|
long unsigned int _40;
|
|
long unsigned int _41;
|
|
long unsigned int _42;
|
|
long unsigned int _43;
|
|
long unsigned int _44;
|
|
|
|
<bb 2> [local count: 1073741824]:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG base => 1077035008B
|
|
# DEBUG BEGIN_STMT
|
|
_1 = (int) channel_14(D);
|
|
userCfg_16 = Flexio_Pwm_Ip_aState[_1];
|
|
# DEBUG userCfg => userCfg_16
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG retStatus => 0
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG BEGIN_STMT
|
|
_2 = userCfg_16->pinId;
|
|
# DEBUG base => 1077035008B
|
|
# DEBUG pin => _2
|
|
# DEBUG INLINE_ENTRY Flexio_Pwm_Ip_GetPinOverride
|
|
# DEBUG BEGIN_STMT
|
|
_21 ={v} MEM[(const struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PINOUTE;
|
|
_22 = (int) _2;
|
|
_23 = _21 >> _22;
|
|
_24 = (_Bool) _23;
|
|
# DEBUG base => NULL
|
|
# DEBUG pin => NULL
|
|
if (_24 != 0)
|
|
goto <bb 3>; [50.00%]
|
|
else
|
|
goto <bb 7>; [50.00%]
|
|
|
|
<bb 3> [local count: 536870913]:
|
|
# DEBUG BEGIN_STMT
|
|
_3 = userCfg_16->polarity;
|
|
if (_3 == 0)
|
|
goto <bb 4>; [50.00%]
|
|
else
|
|
goto <bb 5>; [50.00%]
|
|
|
|
<bb 4> [local count: 268435456]:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG base => 1077035008B
|
|
# DEBUG timer => channel_14(D)
|
|
# DEBUG timerInitOut => 0
|
|
# DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetTimerInitMode
|
|
# DEBUG BEGIN_STMT
|
|
_28 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCFG[_1];
|
|
_29 = _28 & 4244635647;
|
|
MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCFG[_1] ={v} _29;
|
|
# DEBUG base => NULL
|
|
# DEBUG timer => NULL
|
|
# DEBUG timerInitOut => NULL
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG base => 1077035008B
|
|
# DEBUG timer => channel_14(D)
|
|
# DEBUG timerMode => 2
|
|
# DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetTimerMode
|
|
# DEBUG BEGIN_STMT
|
|
_25 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_1];
|
|
_26 = _25 & 4294967288;
|
|
_27 = _26 | 2;
|
|
MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_1] ={v} _27;
|
|
goto <bb 6>; [100.00%]
|
|
|
|
<bb 5> [local count: 268435456]:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG base => 1077035008B
|
|
# DEBUG timer => channel_14(D)
|
|
# DEBUG timerInitOut => 1
|
|
# DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetTimerInitMode
|
|
# DEBUG BEGIN_STMT
|
|
_33 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCFG[_1];
|
|
_34 = _33 & 4244635647;
|
|
_35 = _34 | 16777216;
|
|
MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCFG[_1] ={v} _35;
|
|
# DEBUG base => NULL
|
|
# DEBUG timer => NULL
|
|
# DEBUG timerInitOut => NULL
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG base => 1077035008B
|
|
# DEBUG timer => channel_14(D)
|
|
# DEBUG timerMode => 6
|
|
# DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetTimerMode
|
|
# DEBUG BEGIN_STMT
|
|
_30 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_1];
|
|
_31 = _30 & 4294967288;
|
|
_32 = _31 | 6;
|
|
MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_1] ={v} _32;
|
|
|
|
<bb 6> [local count: 536870913]:
|
|
# DEBUG base => NULL
|
|
# DEBUG timer => NULL
|
|
# DEBUG timerMode => NULL
|
|
# DEBUG base => NULL
|
|
# DEBUG timer => NULL
|
|
# DEBUG timerMode => NULL
|
|
# DEBUG BEGIN_STMT
|
|
Flexio_Pwm_Ip_ConfigurePinOverride (1077035008B, _2, 0);
|
|
|
|
<bb 7> [local count: 1073741824]:
|
|
# DEBUG BEGIN_STMT
|
|
_4 = Flexio_Pwm_Ip_PinOverrideNeeded (instanceId_13(D), channel_14(D), period_18(D), dutyCycle_19(D));
|
|
if (_4 != 0)
|
|
goto <bb 9>; [50.00%]
|
|
else
|
|
goto <bb 8>; [50.00%]
|
|
|
|
<bb 8> [local count: 536870913]:
|
|
# DEBUG BEGIN_STMT
|
|
_5 = (unsigned char) dutyCycle_19(D);
|
|
_6 = _5 + 255;
|
|
# DEBUG base => 1077035008B
|
|
# DEBUG timer => channel_14(D)
|
|
# DEBUG value => _6
|
|
# DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetLowerValue
|
|
# DEBUG BEGIN_STMT
|
|
_41 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCMP[_1];
|
|
_42 = _41 & 4294967040;
|
|
_43 = (long unsigned int) _6;
|
|
_44 = _42 | _43;
|
|
MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCMP[_1] ={v} _44;
|
|
# DEBUG base => NULL
|
|
# DEBUG timer => NULL
|
|
# DEBUG value => NULL
|
|
# DEBUG BEGIN_STMT
|
|
_7 = (unsigned char) period_18(D);
|
|
_8 = _7 - _5;
|
|
_9 = _8 + 255;
|
|
# DEBUG base => 1077035008B
|
|
# DEBUG timer => channel_14(D)
|
|
# DEBUG value => _9
|
|
# DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetUpperValue
|
|
# DEBUG BEGIN_STMT
|
|
_36 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCMP[_1];
|
|
_37 = _36 & 4294902015;
|
|
_38 = (long unsigned int) _9;
|
|
_39 = _38 << 8;
|
|
_40 = _37 | _39;
|
|
MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCMP[_1] ={v} _40;
|
|
|
|
<bb 9> [local count: 1073741824]:
|
|
# DEBUG base => NULL
|
|
# DEBUG timer => NULL
|
|
# DEBUG value => NULL
|
|
# DEBUG BEGIN_STMT
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
;; Function Flexio_Pwm_Ip_GetOutputState (Flexio_Pwm_Ip_GetOutputState, funcdef_no=27, decl_uid=4354, cgraph_uid=28, symbol_order=31)
|
|
|
|
Modification phase of node Flexio_Pwm_Ip_GetOutputState/31
|
|
Flexio_Pwm_Ip_GetOutputState (uint8 instanceId, uint8 channel)
|
|
{
|
|
const struct Flexio_Pwm_Ip_ChannelConfigType * const userCfg;
|
|
int _1;
|
|
unsigned char _2;
|
|
long unsigned int _7;
|
|
int _8;
|
|
long unsigned int _9;
|
|
_Bool _10;
|
|
|
|
<bb 2> [local count: 1073741824]:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG base => 1077035008B
|
|
# DEBUG BEGIN_STMT
|
|
_1 = (int) channel_4(D);
|
|
userCfg_6 = Flexio_Pwm_Ip_aState[_1];
|
|
# DEBUG userCfg => userCfg_6
|
|
# DEBUG BEGIN_STMT
|
|
_2 = userCfg_6->pinId;
|
|
# DEBUG base => 1077035008B
|
|
# DEBUG pin => _2
|
|
# DEBUG INLINE_ENTRY Flexio_Pwm_Ip_GetPinState
|
|
# DEBUG BEGIN_STMT
|
|
_7 ={v} MEM[(const struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PIN;
|
|
_8 = (int) _2;
|
|
_9 = _7 >> _8;
|
|
_10 = (_Bool) _9;
|
|
# DEBUG base => NULL
|
|
# DEBUG pin => NULL
|
|
return _10;
|
|
|
|
}
|
|
|
|
|
|
|
|
;; Function Flexio_Pwm_Ip_UpdateInterruptMode (Flexio_Pwm_Ip_UpdateInterruptMode, funcdef_no=28, decl_uid=4358, cgraph_uid=29, symbol_order=32)
|
|
|
|
Modification phase of node Flexio_Pwm_Ip_UpdateInterruptMode/32
|
|
Flexio_Pwm_Ip_UpdateInterruptMode (uint8 instanceId, uint8 channel, Flexio_Pwm_Ip_InterruptType irqMode)
|
|
{
|
|
const struct Flexio_Pwm_Ip_ChannelConfigType * const userCfg;
|
|
int _1;
|
|
unsigned char _2;
|
|
unsigned char _3;
|
|
unsigned char _4;
|
|
int _5;
|
|
int _6;
|
|
signed char _7;
|
|
signed char _8;
|
|
unsigned char timerIrqMask.2_9;
|
|
signed char timerIrqMask.3_10;
|
|
signed char _11;
|
|
unsigned char _12;
|
|
long unsigned int _13;
|
|
long unsigned int pinIrqMask.4_14;
|
|
long unsigned int _15;
|
|
unsigned int _16;
|
|
unsigned char _17;
|
|
unsigned char _18;
|
|
void (*<T2e9>) (Flexio_Pwm_Ip_OccurredIRQType, void *) _19;
|
|
long unsigned int pinIrqMask.5_20;
|
|
long unsigned int _21;
|
|
unsigned char _22;
|
|
void (*<T2e9>) (Flexio_Pwm_Ip_OccurredIRQType, void *) _23;
|
|
long unsigned int pinIrqMask.6_24;
|
|
long unsigned int _25;
|
|
unsigned char _26;
|
|
int _27;
|
|
unsigned int _28;
|
|
unsigned char _29;
|
|
unsigned char _30;
|
|
int _31;
|
|
int _32;
|
|
unsigned char _33;
|
|
unsigned char timerIrqMask.7_34;
|
|
unsigned char _35;
|
|
long unsigned int vol.12_52;
|
|
long unsigned int vol.10_53;
|
|
long unsigned int vol.8_54;
|
|
int _55;
|
|
int _56;
|
|
long unsigned int _57;
|
|
long unsigned int vol.8_58;
|
|
long unsigned int _59;
|
|
long unsigned int vol.12_60;
|
|
long unsigned int vol.10_61;
|
|
long unsigned int _62;
|
|
long unsigned int vol.12_63;
|
|
|
|
<bb 2> [local count: 1073741823]:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG base => 1077035008B
|
|
# DEBUG BEGIN_STMT
|
|
_1 = (int) channel_40(D);
|
|
userCfg_42 = Flexio_Pwm_Ip_aState[_1];
|
|
# DEBUG userCfg => userCfg_42
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG retStatus => 0
|
|
# DEBUG BEGIN_STMT
|
|
_2 = userCfg_42->timerId;
|
|
Flexio_Mcl_Ip_ClearTimerStatus (1077035008B, _2);
|
|
# DEBUG BEGIN_STMT
|
|
_3 = userCfg_42->pinId;
|
|
# DEBUG base => 1077035008B
|
|
# DEBUG pin => _3
|
|
# DEBUG INLINE_ENTRY Flexio_Pwm_Ip_ClearPinFlag
|
|
# DEBUG BEGIN_STMT
|
|
_56 = (int) _3;
|
|
_57 = 1 << _56;
|
|
MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PINSTAT ={v} _57;
|
|
# DEBUG base => NULL
|
|
# DEBUG pin => NULL
|
|
# DEBUG BEGIN_STMT
|
|
_4 = userCfg_42->timerId;
|
|
_5 = (int) _4;
|
|
_6 = 1 << _5;
|
|
_7 = (signed char) _6;
|
|
_8 = ~_7;
|
|
timerIrqMask.2_9 ={v} timerIrqMask;
|
|
timerIrqMask.3_10 = (signed char) timerIrqMask.2_9;
|
|
_11 = _8 & timerIrqMask.3_10;
|
|
_12 = (unsigned char) _11;
|
|
timerIrqMask ={v} _12;
|
|
# DEBUG BEGIN_STMT
|
|
_13 = ~_57;
|
|
pinIrqMask.4_14 ={v} pinIrqMask;
|
|
_15 = _13 & pinIrqMask.4_14;
|
|
pinIrqMask ={v} _15;
|
|
# DEBUG BEGIN_STMT
|
|
_16 = 1 << _5;
|
|
_17 = (unsigned char) _16;
|
|
Flexio_Mcl_Ip_SetTimerInterrupt (1077035008B, _17, 0);
|
|
# DEBUG BEGIN_STMT
|
|
_18 = userCfg_42->pinId;
|
|
# DEBUG base => 1077035008B
|
|
# DEBUG pin => _18
|
|
# DEBUG enabled => 0
|
|
# DEBUG INLINE_ENTRY Flexio_Pwm_Ip_ConfigurePinRisingEdge
|
|
# DEBUG BEGIN_STMT
|
|
vol.8_54 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PINREN;
|
|
_55 = (int) _18;
|
|
MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PINREN ={v} 0;
|
|
# DEBUG base => NULL
|
|
# DEBUG pin => NULL
|
|
# DEBUG enabled => NULL
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG base => 1077035008B
|
|
# DEBUG pin => _18
|
|
# DEBUG enabled => 0
|
|
# DEBUG INLINE_ENTRY Flexio_Pwm_Ip_ConfigurePinFallingEdge
|
|
# DEBUG BEGIN_STMT
|
|
vol.10_53 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PINFEN;
|
|
MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PINFEN ={v} 0;
|
|
# DEBUG base => NULL
|
|
# DEBUG pin => NULL
|
|
# DEBUG enabled => NULL
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG base => 1077035008B
|
|
# DEBUG pin => _18
|
|
# DEBUG enabled => 0
|
|
# DEBUG INLINE_ENTRY Flexio_Pwm_Ip_ConfigurePinIrq
|
|
# DEBUG BEGIN_STMT
|
|
vol.12_52 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PINIEN;
|
|
MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PINIEN ={v} 0;
|
|
# DEBUG base => NULL
|
|
# DEBUG pin => NULL
|
|
# DEBUG enabled => NULL
|
|
# DEBUG BEGIN_STMT
|
|
if (irqMode_47(D) == 1)
|
|
goto <bb 4>; [34.00%]
|
|
else
|
|
goto <bb 3>; [66.00%]
|
|
|
|
<bb 3> [local count: 708669604]:
|
|
if (irqMode_47(D) == 3)
|
|
goto <bb 4>; [34.00%]
|
|
else
|
|
goto <bb 6>; [66.00%]
|
|
|
|
<bb 4> [local count: 606019886]:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG base => 1077035008B
|
|
# DEBUG pin => _18
|
|
# DEBUG enabled => 1
|
|
# DEBUG INLINE_ENTRY Flexio_Pwm_Ip_ConfigurePinRisingEdge
|
|
# DEBUG BEGIN_STMT
|
|
vol.8_58 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PINREN;
|
|
_59 = 1 << _55;
|
|
MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PINREN ={v} _59;
|
|
# DEBUG base => NULL
|
|
# DEBUG pin => NULL
|
|
# DEBUG enabled => NULL
|
|
# DEBUG BEGIN_STMT
|
|
_19 = userCfg_42->callback.cbFunction;
|
|
if (_19 != 0B)
|
|
goto <bb 5>; [70.00%]
|
|
else
|
|
goto <bb 6>; [30.00%]
|
|
|
|
<bb 5> [local count: 424213919]:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG base => 1077035008B
|
|
# DEBUG pin => _18
|
|
# DEBUG enabled => 1
|
|
# DEBUG INLINE_ENTRY Flexio_Pwm_Ip_ConfigurePinIrq
|
|
# DEBUG BEGIN_STMT
|
|
vol.12_60 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PINIEN;
|
|
MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PINIEN ={v} _59;
|
|
# DEBUG base => NULL
|
|
# DEBUG pin => NULL
|
|
# DEBUG enabled => NULL
|
|
# DEBUG BEGIN_STMT
|
|
pinIrqMask.5_20 ={v} pinIrqMask;
|
|
_21 = pinIrqMask.5_20 | _59;
|
|
pinIrqMask ={v} _21;
|
|
|
|
<bb 6> [local count: 1073741824]:
|
|
# DEBUG BEGIN_STMT
|
|
_22 = irqMode_47(D) + 254;
|
|
if (_22 <= 1)
|
|
goto <bb 7>; [41.00%]
|
|
else
|
|
goto <bb 9>; [59.00%]
|
|
|
|
<bb 7> [local count: 440234148]:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG base => 1077035008B
|
|
# DEBUG pin => _18
|
|
# DEBUG enabled => 1
|
|
# DEBUG INLINE_ENTRY Flexio_Pwm_Ip_ConfigurePinFallingEdge
|
|
# DEBUG BEGIN_STMT
|
|
vol.10_61 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PINFEN;
|
|
_62 = 1 << _55;
|
|
MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PINFEN ={v} _62;
|
|
# DEBUG base => NULL
|
|
# DEBUG pin => NULL
|
|
# DEBUG enabled => NULL
|
|
# DEBUG BEGIN_STMT
|
|
_23 = userCfg_42->callback.cbFunction;
|
|
if (_23 != 0B)
|
|
goto <bb 8>; [70.00%]
|
|
else
|
|
goto <bb 9>; [30.00%]
|
|
|
|
<bb 8> [local count: 308163904]:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG base => 1077035008B
|
|
# DEBUG pin => _18
|
|
# DEBUG enabled => 1
|
|
# DEBUG INLINE_ENTRY Flexio_Pwm_Ip_ConfigurePinIrq
|
|
# DEBUG BEGIN_STMT
|
|
vol.12_63 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PINIEN;
|
|
MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PINIEN ={v} _62;
|
|
# DEBUG base => NULL
|
|
# DEBUG pin => NULL
|
|
# DEBUG enabled => NULL
|
|
# DEBUG BEGIN_STMT
|
|
pinIrqMask.6_24 ={v} pinIrqMask;
|
|
_25 = pinIrqMask.6_24 | _62;
|
|
pinIrqMask ={v} _25;
|
|
|
|
<bb 9> [local count: 1073741824]:
|
|
# DEBUG BEGIN_STMT
|
|
if (irqMode_47(D) == 4)
|
|
goto <bb 10>; [20.24%]
|
|
else
|
|
goto <bb 11>; [79.76%]
|
|
|
|
<bb 10> [local count: 217325345]:
|
|
# DEBUG BEGIN_STMT
|
|
_26 = userCfg_42->timerId;
|
|
_27 = (int) _26;
|
|
_28 = 1 << _27;
|
|
_29 = (unsigned char) _28;
|
|
Flexio_Mcl_Ip_SetTimerInterrupt (1077035008B, _29, 1);
|
|
# DEBUG BEGIN_STMT
|
|
_30 = userCfg_42->timerId;
|
|
_31 = (int) _30;
|
|
_32 = 1 << _31;
|
|
_33 = (unsigned char) _32;
|
|
timerIrqMask.7_34 ={v} timerIrqMask;
|
|
_35 = _33 | timerIrqMask.7_34;
|
|
timerIrqMask ={v} _35;
|
|
|
|
<bb 11> [local count: 1073741824]:
|
|
# DEBUG BEGIN_STMT
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
;; Function Flexio_Pwm_Ip_InitChannel (Flexio_Pwm_Ip_InitChannel, funcdef_no=22, decl_uid=4335, cgraph_uid=23, symbol_order=26)
|
|
|
|
Modification phase of node Flexio_Pwm_Ip_InitChannel/26
|
|
Flexio_Pwm_Ip_InitChannel (uint8 instanceId, const struct Flexio_Pwm_Ip_ChannelConfigType * const userCfg)
|
|
{
|
|
Flexio_Pwm_Ip_StatusType retStatus;
|
|
unsigned char _1;
|
|
int _2;
|
|
<unnamed type> _3;
|
|
<unnamed type> _4;
|
|
unsigned char _5;
|
|
unsigned char _6;
|
|
unsigned char _7;
|
|
unsigned char _8;
|
|
short unsigned int _9;
|
|
short unsigned int _10;
|
|
_Bool _11;
|
|
unsigned char _12;
|
|
short unsigned int _13;
|
|
unsigned char _14;
|
|
unsigned char _15;
|
|
short unsigned int _16;
|
|
unsigned char _17;
|
|
unsigned char _18;
|
|
unsigned char _19;
|
|
<unnamed type> _20;
|
|
long unsigned int _32;
|
|
long unsigned int _33;
|
|
long unsigned int _34;
|
|
long unsigned int _35;
|
|
long unsigned int _36;
|
|
long unsigned int _37;
|
|
long unsigned int _38;
|
|
int _39;
|
|
long unsigned int _40;
|
|
long unsigned int _41;
|
|
int _42;
|
|
long unsigned int _43;
|
|
long unsigned int _44;
|
|
long unsigned int _45;
|
|
long unsigned int _46;
|
|
long unsigned int _47;
|
|
long unsigned int _48;
|
|
long unsigned int _49;
|
|
long unsigned int _50;
|
|
int _51;
|
|
long unsigned int _52;
|
|
long unsigned int _53;
|
|
long unsigned int _54;
|
|
long unsigned int _55;
|
|
long unsigned int _56;
|
|
long unsigned int _57;
|
|
long unsigned int _58;
|
|
long unsigned int _59;
|
|
long unsigned int _60;
|
|
long unsigned int _61;
|
|
|
|
<bb 2> [local count: 1073741824]:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG base => 1077035008B
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG retStatus => 0
|
|
# DEBUG BEGIN_STMT
|
|
_1 = userCfg_25(D)->timerId;
|
|
_2 = (int) _1;
|
|
Flexio_Pwm_Ip_aState[_2] = userCfg_25(D);
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG base => 1077035008B
|
|
# DEBUG timer => _1
|
|
# DEBUG timerMode => 0
|
|
# DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetTimerMode
|
|
# DEBUG BEGIN_STMT
|
|
_32 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_2];
|
|
_33 = _32 & 4294967288;
|
|
MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_2] ={v} _33;
|
|
# DEBUG base => NULL
|
|
# DEBUG timer => NULL
|
|
# DEBUG timerMode => NULL
|
|
# DEBUG BEGIN_STMT
|
|
_3 = userCfg_25(D)->polarity;
|
|
if (_3 == 0)
|
|
goto <bb 3>; [50.00%]
|
|
else
|
|
goto <bb 4>; [50.00%]
|
|
|
|
<bb 3> [local count: 536870913]:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG base => 1077035008B
|
|
# DEBUG timer => _1
|
|
# DEBUG timerInitOut => 0
|
|
# DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetTimerInitMode
|
|
# DEBUG BEGIN_STMT
|
|
_34 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCFG[_2];
|
|
_35 = _34 & 4244635647;
|
|
MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCFG[_2] ={v} _35;
|
|
goto <bb 5>; [100.00%]
|
|
|
|
<bb 4> [local count: 536870913]:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG base => 1077035008B
|
|
# DEBUG timer => _1
|
|
# DEBUG timerInitOut => 1
|
|
# DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetTimerInitMode
|
|
# DEBUG BEGIN_STMT
|
|
_36 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCFG[_2];
|
|
_37 = _36 & 4244635647;
|
|
_38 = _37 | 16777216;
|
|
MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCFG[_2] ={v} _38;
|
|
|
|
<bb 5> [local count: 1073741824]:
|
|
# DEBUG base => NULL
|
|
# DEBUG timer => NULL
|
|
# DEBUG timerInitOut => NULL
|
|
# DEBUG base => NULL
|
|
# DEBUG timer => NULL
|
|
# DEBUG timerInitOut => NULL
|
|
# DEBUG BEGIN_STMT
|
|
_4 = userCfg_25(D)->prescaler;
|
|
Flexio_Pwm_Ip_SetTimerPrescaler (1077035008B, _1, _4);
|
|
# DEBUG BEGIN_STMT
|
|
_5 = userCfg_25(D)->timerId;
|
|
# DEBUG base => 1077035008B
|
|
# DEBUG timer => _5
|
|
# DEBUG pinMode => 3
|
|
# DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetTimerPinOutput
|
|
# DEBUG BEGIN_STMT
|
|
_42 = (int) _5;
|
|
_43 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_42];
|
|
_44 = _43 & 4294770687;
|
|
_45 = _44 | 196608;
|
|
MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_42] ={v} _45;
|
|
# DEBUG base => NULL
|
|
# DEBUG timer => NULL
|
|
# DEBUG pinMode => NULL
|
|
# DEBUG BEGIN_STMT
|
|
_6 = userCfg_25(D)->pinId;
|
|
Flexio_Pwm_Ip_SetTimerPin (1077035008B, _5, _6);
|
|
# DEBUG BEGIN_STMT
|
|
_7 = userCfg_25(D)->timerId;
|
|
# DEBUG base => 1077035008B
|
|
# DEBUG timer => _7
|
|
# DEBUG polarity => 0
|
|
# DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetTimerPinPolarity
|
|
# DEBUG BEGIN_STMT
|
|
_39 = (int) _7;
|
|
_40 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_39];
|
|
_41 = _40 & 4294967167;
|
|
MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_39] ={v} _41;
|
|
# DEBUG base => NULL
|
|
# DEBUG timer => NULL
|
|
# DEBUG polarity => NULL
|
|
# DEBUG BEGIN_STMT
|
|
retStatus_30 = Flexio_Pwm_Ip_UpdateInterruptMode (instanceId_23(D), _7, 0);
|
|
# DEBUG retStatus => retStatus_30
|
|
# DEBUG BEGIN_STMT
|
|
_8 = userCfg_25(D)->timerId;
|
|
_9 = userCfg_25(D)->period;
|
|
_10 = userCfg_25(D)->dutyCycle;
|
|
_11 = Flexio_Pwm_Ip_PinOverrideNeeded (instanceId_23(D), _8, _9, _10);
|
|
if (_11 != 0)
|
|
goto <bb 9>; [50.00%]
|
|
else
|
|
goto <bb 6>; [50.00%]
|
|
|
|
<bb 6> [local count: 536870913]:
|
|
# DEBUG BEGIN_STMT
|
|
_12 = userCfg_25(D)->timerId;
|
|
_13 = userCfg_25(D)->dutyCycle;
|
|
_14 = (unsigned char) _13;
|
|
_15 = _14 + 255;
|
|
# DEBUG base => 1077035008B
|
|
# DEBUG timer => _12
|
|
# DEBUG value => _15
|
|
# DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetLowerValue
|
|
# DEBUG BEGIN_STMT
|
|
_51 = (int) _12;
|
|
_52 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCMP[_51];
|
|
_53 = _52 & 4294967040;
|
|
_54 = (long unsigned int) _15;
|
|
_55 = _53 | _54;
|
|
MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCMP[_51] ={v} _55;
|
|
# DEBUG base => NULL
|
|
# DEBUG timer => NULL
|
|
# DEBUG value => NULL
|
|
# DEBUG BEGIN_STMT
|
|
_16 = userCfg_25(D)->period;
|
|
_17 = (unsigned char) _16;
|
|
_18 = _17 - _14;
|
|
_19 = _18 + 255;
|
|
# DEBUG base => 1077035008B
|
|
# DEBUG timer => _12
|
|
# DEBUG value => _19
|
|
# DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetUpperValue
|
|
# DEBUG BEGIN_STMT
|
|
_46 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCMP[_51];
|
|
_47 = _46 & 4294902015;
|
|
_48 = (long unsigned int) _19;
|
|
_49 = _48 << 8;
|
|
_50 = _47 | _49;
|
|
MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCMP[_51] ={v} _50;
|
|
# DEBUG base => NULL
|
|
# DEBUG timer => NULL
|
|
# DEBUG value => NULL
|
|
# DEBUG BEGIN_STMT
|
|
_20 = userCfg_25(D)->polarity;
|
|
if (_20 == 0)
|
|
goto <bb 7>; [50.00%]
|
|
else
|
|
goto <bb 8>; [50.00%]
|
|
|
|
<bb 7> [local count: 268435456]:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG base => 1077035008B
|
|
# DEBUG timer => _12
|
|
# DEBUG timerMode => 2
|
|
# DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetTimerMode
|
|
# DEBUG BEGIN_STMT
|
|
_56 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_51];
|
|
_57 = _56 & 4294967288;
|
|
_58 = _57 | 2;
|
|
MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_51] ={v} _58;
|
|
goto <bb 9>; [100.00%]
|
|
|
|
<bb 8> [local count: 268435456]:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG base => 1077035008B
|
|
# DEBUG timer => _12
|
|
# DEBUG timerMode => 6
|
|
# DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetTimerMode
|
|
# DEBUG BEGIN_STMT
|
|
_59 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_51];
|
|
_60 = _59 & 4294967288;
|
|
_61 = _60 | 6;
|
|
MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_51] ={v} _61;
|
|
|
|
<bb 9> [local count: 1073741824]:
|
|
# DEBUG base => NULL
|
|
# DEBUG timer => NULL
|
|
# DEBUG timerMode => NULL
|
|
# DEBUG base => NULL
|
|
# DEBUG timer => NULL
|
|
# DEBUG timerMode => NULL
|
|
# DEBUG BEGIN_STMT
|
|
return retStatus_30;
|
|
|
|
}
|
|
|
|
|
|
|
|
;; Function Flexio_Pwm_Ip_DeInitChannel (Flexio_Pwm_Ip_DeInitChannel, funcdef_no=23, decl_uid=4338, cgraph_uid=24, symbol_order=27)
|
|
|
|
Modification phase of node Flexio_Pwm_Ip_DeInitChannel/27
|
|
Flexio_Pwm_Ip_DeInitChannel (uint8 instanceId, uint8 channel)
|
|
{
|
|
Flexio_Pwm_Ip_StatusType retStatus;
|
|
const struct Flexio_Pwm_Ip_ChannelConfigType * const userCfg;
|
|
int _1;
|
|
unsigned char _2;
|
|
unsigned char _3;
|
|
unsigned char _4;
|
|
unsigned char _5;
|
|
unsigned char _6;
|
|
int _7;
|
|
long unsigned int _17;
|
|
long unsigned int _18;
|
|
long unsigned int _19;
|
|
long unsigned int _20;
|
|
long unsigned int _21;
|
|
long unsigned int _22;
|
|
long unsigned int _23;
|
|
long unsigned int _24;
|
|
long unsigned int _25;
|
|
long unsigned int _26;
|
|
long unsigned int _27;
|
|
long unsigned int _28;
|
|
int _29;
|
|
long unsigned int _30;
|
|
long unsigned int _31;
|
|
int _32;
|
|
long unsigned int _33;
|
|
long unsigned int _34;
|
|
|
|
<bb 2> [local count: 1073741824]:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG base => 1077035008B
|
|
# DEBUG BEGIN_STMT
|
|
_1 = (int) channel_9(D);
|
|
userCfg_11 = Flexio_Pwm_Ip_aState[_1];
|
|
# DEBUG userCfg => userCfg_11
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG retStatus => 0
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG BEGIN_STMT
|
|
_2 = userCfg_11->timerId;
|
|
# DEBUG base => 1077035008B
|
|
# DEBUG timer => _2
|
|
# DEBUG timerMode => 0
|
|
# DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetTimerMode
|
|
# DEBUG BEGIN_STMT
|
|
_32 = (int) _2;
|
|
_33 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_32];
|
|
_34 = _33 & 4294967288;
|
|
MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_32] ={v} _34;
|
|
# DEBUG base => NULL
|
|
# DEBUG timer => NULL
|
|
# DEBUG timerMode => NULL
|
|
# DEBUG BEGIN_STMT
|
|
retStatus_13 = Flexio_Pwm_Ip_UpdateInterruptMode (instanceId_8(D), channel_9(D), 0);
|
|
# DEBUG retStatus => retStatus_13
|
|
# DEBUG BEGIN_STMT
|
|
_3 = userCfg_11->timerId;
|
|
# DEBUG base => 1077035008B
|
|
# DEBUG timer => _3
|
|
# DEBUG polarity => 0
|
|
# DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetTimerPinPolarity
|
|
# DEBUG BEGIN_STMT
|
|
_29 = (int) _3;
|
|
_30 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_29];
|
|
_31 = _30 & 4294967167;
|
|
MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_29] ={v} _31;
|
|
# DEBUG base => NULL
|
|
# DEBUG timer => NULL
|
|
# DEBUG polarity => NULL
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG base => 1077035008B
|
|
# DEBUG timer => _3
|
|
# DEBUG pin => 0
|
|
# DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetTimerPin
|
|
# DEBUG BEGIN_STMT
|
|
_27 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_29];
|
|
_28 = _27 & 4294959359;
|
|
MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_29] ={v} _28;
|
|
# DEBUG base => NULL
|
|
# DEBUG timer => NULL
|
|
# DEBUG pin => NULL
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG base => 1077035008B
|
|
# DEBUG timer => _3
|
|
# DEBUG pinMode => 0
|
|
# DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetTimerPinOutput
|
|
# DEBUG BEGIN_STMT
|
|
_25 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_29];
|
|
_26 = _25 & 4294770687;
|
|
MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_29] ={v} _26;
|
|
# DEBUG base => NULL
|
|
# DEBUG timer => NULL
|
|
# DEBUG pinMode => NULL
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG base => 1077035008B
|
|
# DEBUG timer => _3
|
|
# DEBUG timerInitOut => 0
|
|
# DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetTimerInitMode
|
|
# DEBUG BEGIN_STMT
|
|
_23 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCFG[_29];
|
|
_24 = _23 & 4244635647;
|
|
MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCFG[_29] ={v} _24;
|
|
# DEBUG base => NULL
|
|
# DEBUG timer => NULL
|
|
# DEBUG timerInitOut => NULL
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG base => 1077035008B
|
|
# DEBUG timer => _3
|
|
# DEBUG prescaler => 0
|
|
# DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetTimerPrescaler
|
|
# DEBUG BEGIN_STMT
|
|
_21 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCFG[_29];
|
|
_22 = _21 & 4287627263;
|
|
MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCFG[_29] ={v} _22;
|
|
# DEBUG base => NULL
|
|
# DEBUG timer => NULL
|
|
# DEBUG prescaler => NULL
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG base => 1077035008B
|
|
# DEBUG timer => _3
|
|
# DEBUG value => 0
|
|
# DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetUpperValue
|
|
# DEBUG BEGIN_STMT
|
|
_19 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCMP[_29];
|
|
_20 = _19 & 4294902015;
|
|
MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCMP[_29] ={v} _20;
|
|
# DEBUG base => NULL
|
|
# DEBUG timer => NULL
|
|
# DEBUG value => NULL
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG base => 1077035008B
|
|
# DEBUG timer => _3
|
|
# DEBUG value => 0
|
|
# DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetLowerValue
|
|
# DEBUG BEGIN_STMT
|
|
_17 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCMP[_29];
|
|
_18 = _17 & 4294967040;
|
|
MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCMP[_29] ={v} _18;
|
|
# DEBUG base => NULL
|
|
# DEBUG timer => NULL
|
|
# DEBUG value => NULL
|
|
# DEBUG BEGIN_STMT
|
|
_4 = userCfg_11->pinId;
|
|
Flexio_Pwm_Ip_ConfigurePinOverride (1077035008B, _4, 0);
|
|
# DEBUG BEGIN_STMT
|
|
_5 = userCfg_11->pinId;
|
|
Flexio_Pwm_Ip_SetPinLevel (1077035008B, _5, 0);
|
|
# DEBUG BEGIN_STMT
|
|
_6 = userCfg_11->timerId;
|
|
_7 = (int) _6;
|
|
Flexio_Pwm_Ip_aState[_7] = 0B;
|
|
# DEBUG retStatus => retStatus_13
|
|
# DEBUG BEGIN_STMT
|
|
return retStatus_13;
|
|
|
|
}
|
|
|
|
|