local analysis of Siul2_Port_Ip_GetPinConfiguration scanning: ConfigPtr_21 = pPort_Setting; scanning: MaxPinConfigured_22 = u32MaxPinConfigured; scanning: base.5_1 = (long unsigned int) base_23(D); scanning: _2 = base.5_1 + 3218537920; scanning: portNumber_24 = _2 >> 6; scanning: _3 = portNumber_24 << 4; scanning: _4 = (long unsigned int) pin_25(D); scanning: u32MscrId_26 = _3 + _4; scanning: _6 = _15 * 64; scanning: _7 = ConfigPtr_21 + _6; scanning: _8 = _7->pinPortIdx; Indirect ref read is not const scanning: if (_8 == u32MscrId_26) scanning: _9 = _5->base; Indirect ref read is not const scanning: config_28(D)->base = _9; Indirect ref write is not const/pure scanning: config_28(D)->pinPortIdx = _14; Indirect ref write is not const/pure scanning: _10 = _5->initValue; Indirect ref read is not const scanning: config_28(D)->initValue = _10; Indirect ref write is not const/pure scanning: _11 = (int) inputMuxIterator_17; scanning: _12 = _5->inputMuxReg[_11]; Indirect ref read is not const scanning: config_28(D)->inputMuxReg[_11] = _12; Indirect ref write is not const/pure scanning: _13 = _5->inputMux[_11]; Indirect ref read is not const scanning: config_28(D)->inputMux[_11] = _13; Indirect ref write is not const/pure scanning: inputMuxIterator_35 = inputMuxIterator_17 + 1; scanning: if (inputMuxIterator_17 != 8) scanning: Siul2_Port_Ip_GetMSCRConfiguration (config_28(D), base_23(D), pin_25(D)); scanning: u16PinIdx_27 = u16PinIdx_16 + 1; scanning: _15 = (long unsigned int) u16PinIdx_16; scanning: if (_15 < MaxPinConfigured_22) scanning: return; local analysis of Siul2_Port_Ip_RevertPinConfiguration scanning: ConfigPtr_15 = pPort_Setting; scanning: MaxPinConfigured_16 = u32MaxPinConfigured; scanning: base.3_1 = (long unsigned int) base_17(D); scanning: _2 = base.3_1 + 3218537920; scanning: portNumber_18 = _2 >> 6; scanning: _3 = portNumber_18 << 4; scanning: _4 = (long unsigned int) pin_19(D); scanning: u32MscrId_20 = _3 + _4; scanning: _6 = _10 * 64; scanning: _7 = ConfigPtr_15 + _6; scanning: _8 = _7->pinPortIdx; Indirect ref read is not const scanning: if (_8 == u32MscrId_20) scanning: Siul2_Port_Ip_PinInit (_5); scanning: _9 = (int) pin_19(D); scanning: u32RegVal_23 ={v} base_17(D)->MSCR[_9]; Volatile stmt is not const/pure Indirect ref read is not const scanning: u16PinIdx_21 = u16PinIdx_11 + 1; scanning: _10 = (long unsigned int) u16PinIdx_11; scanning: if (_10 < MaxPinConfigured_16) scanning: return u32RegVal_12; local analysis of Siul2_Port_Ip_SetPinDirection scanning: switch (direction_18(D)) [20.00%], case 0: [20.00%], case 1: [20.00%], case 2: [20.00%], case 3: [20.00%]> scanning: : scanning: _1 = (int) pin_20(D); scanning: _2 ={v} base_21(D)->MSCR[_1]; Volatile stmt is not const/pure Indirect ref read is not const scanning: _3 = _2 & 4292870143; scanning: base_21(D)->MSCR[_1] ={v} _3; Volatile stmt is not const/pure Indirect ref write is not const/pure scanning: _4 ={v} base_21(D)->MSCR[_1]; Volatile stmt is not const/pure Indirect ref read is not const scanning: _5 = _4 | 524288; scanning: base_21(D)->MSCR[_1] ={v} _5; Volatile stmt is not const/pure Indirect ref write is not const/pure scanning: : scanning: _6 = (int) pin_20(D); scanning: _7 ={v} base_21(D)->MSCR[_6]; Volatile stmt is not const/pure Indirect ref read is not const scanning: _8 = _7 & 4294443007; scanning: base_21(D)->MSCR[_6] ={v} _8; Volatile stmt is not const/pure Indirect ref write is not const/pure scanning: _9 ={v} base_21(D)->MSCR[_6]; Volatile stmt is not const/pure Indirect ref read is not const scanning: _10 = _9 | 2097152; scanning: base_21(D)->MSCR[_6] ={v} _10; Volatile stmt is not const/pure Indirect ref write is not const/pure scanning: : scanning: _11 = (int) pin_20(D); scanning: _12 ={v} base_21(D)->MSCR[_11]; Volatile stmt is not const/pure Indirect ref read is not const scanning: _13 = _12 | 2621440; scanning: base_21(D)->MSCR[_11] ={v} _13; Volatile stmt is not const/pure Indirect ref write is not const/pure scanning: : scanning: _14 = (int) pin_20(D); scanning: _15 ={v} base_21(D)->MSCR[_14]; Volatile stmt is not const/pure Indirect ref read is not const scanning: _16 = _15 & 4292345855; scanning: base_21(D)->MSCR[_14] ={v} _16; Volatile stmt is not const/pure Indirect ref write is not const/pure scanning: : scanning: return; local analysis of Siul2_Port_Ip_SetInputBuffer scanning: if (base_14(D) != 0B) scanning: _1 = (int) pin_16(D); scanning: _2 ={v} base_14(D)->MSCR[_1]; Volatile stmt is not const/pure Indirect ref read is not const scanning: _3 = _2 & 4294443007; scanning: base_14(D)->MSCR[_1] ={v} _3; Volatile stmt is not const/pure Indirect ref write is not const/pure scanning: _4 ={v} base_14(D)->MSCR[_1]; Volatile stmt is not const/pure Indirect ref read is not const scanning: if (enable_18(D) != 0) scanning: _5 = _4 | iftmp.2_9; scanning: base_14(D)->MSCR[_1] ={v} _5; Volatile stmt is not const/pure Indirect ref write is not const/pure scanning: if (inputMux_20(D) != 16) scanning: if (inputMuxReg_13(D) <= 511) scanning: _6 = inputMuxReg_13(D) & 511; scanning: imcrVal_21 ={v} siul2Base_8->IMCR[_6]; Volatile stmt is not const/pure Indirect ref read is not const scanning: imcrVal_22 = imcrVal_21 & 4294967280; scanning: _12 = inputMux_20(D) & 15; scanning: _7 = (long unsigned int) _12; scanning: imcrVal_23 = _7 | imcrVal_22; scanning: siul2Base_8->IMCR[_6] ={v} imcrVal_23; Volatile stmt is not const/pure Indirect ref write is not const/pure scanning: return; local analysis of Siul2_Port_Ip_SetOutputBuffer scanning: _1 = (int) pin_12(D); scanning: _2 ={v} base_14(D)->MSCR[_1]; Volatile stmt is not const/pure Indirect ref read is not const scanning: _3 = _2 & 4292870143; scanning: base_14(D)->MSCR[_1] ={v} _3; Volatile stmt is not const/pure Indirect ref write is not const/pure scanning: _4 ={v} base_14(D)->MSCR[_1]; Volatile stmt is not const/pure Indirect ref read is not const scanning: if (enable_16(D) != 0) scanning: _5 = _4 | iftmp.1_11; scanning: base_14(D)->MSCR[_1] ={v} _5; Volatile stmt is not const/pure Indirect ref write is not const/pure scanning: _6 ={v} base_14(D)->MSCR[_1]; Volatile stmt is not const/pure Indirect ref read is not const scanning: _7 = _6 & 4294967288; scanning: base_14(D)->MSCR[_1] ={v} _7; Volatile stmt is not const/pure Indirect ref write is not const/pure scanning: _8 ={v} base_14(D)->MSCR[_1]; Volatile stmt is not const/pure Indirect ref read is not const scanning: _17 = mux_20(D) & 7; scanning: _9 = (long unsigned int) _17; scanning: _10 = _8 | _9; scanning: base_14(D)->MSCR[_1] ={v} _10; Volatile stmt is not const/pure Indirect ref write is not const/pure scanning: return; local analysis of Siul2_Port_Ip_SetPullSel scanning: switch (pullConfig_7(D)) [25.00%], case 0: [25.00%], case 1: [25.00%], case 2: [25.00%]> scanning: : scanning: _1 = (int) pin_9(D); scanning: _2 ={v} base_10(D)->MSCR[_1]; Volatile stmt is not const/pure Indirect ref read is not const scanning: _3 = _2 & 4294959103; scanning: base_10(D)->MSCR[_1] ={v} _3; Volatile stmt is not const/pure Indirect ref write is not const/pure scanning: : scanning: _4 = (int) pin_9(D); scanning: regVal_15 ={v} base_10(D)->MSCR[_4]; Volatile stmt is not const/pure Indirect ref read is not const scanning: _18 = regVal_15 & 4294965247; scanning: regVal_16 = _18 | 8192; scanning: base_10(D)->MSCR[_4] ={v} regVal_16; Volatile stmt is not const/pure Indirect ref write is not const/pure scanning: : scanning: _5 = (int) pin_9(D); scanning: regVal_12 ={v} base_10(D)->MSCR[_5]; Volatile stmt is not const/pure Indirect ref read is not const scanning: regVal_13 = regVal_12 | 10240; scanning: base_10(D)->MSCR[_5] ={v} regVal_13; Volatile stmt is not const/pure Indirect ref write is not const/pure scanning: : scanning: return; local analysis of Siul2_Port_Ip_Init scanning: pPort_Setting = config_6(D); scanning: u32MaxPinConfigured = pinCount_8(D); scanning: _1 = i_3 * 64; scanning: _2 = config_6(D) + _1; scanning: Siul2_Port_Ip_PinInit (_2); scanning: i_11 = i_3 + 1; scanning: if (i_3 < pinCount_8(D)) scanning: return 0; ;; 2 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 5 ;; ;; Loop 1 ;; header 4, latch 3 ;; depth 1, outer 0 ;; nodes: 4 3 ;; 2 succs { 4 } ;; 3 succs { 4 } ;; 4 succs { 3 5 } ;; 5 succs { 1 } Function is locally const. local analysis of Siul2_Port_Ip_SetGPDO scanning: if (value_6(D) != 2) scanning: _1 = GpdoInstance_9(D) ^ 3; scanning: _2 = (long unsigned int) _1; scanning: _3 = _2 + 1076433664; scanning: _4 = (volatile uint8 *) _3; scanning: *_4 ={v} value_6(D); Volatile stmt is not const/pure Volatile indirect ref is not const/pure scanning: return; local analysis of Siul2_Port_Ip_SetIMCR scanning: _1 = (long unsigned int) ImcrInstance_6(D); scanning: _2 = _1 << 2; scanning: _3 = _2 + 1076431424; scanning: _4 = (volatile uint32 *) _3; scanning: *_4 ={v} value_8(D); Volatile stmt is not const/pure Volatile indirect ref is not const/pure scanning: return; local analysis of Siul2_Port_Ip_ReadMSCR scanning: _1 = (long unsigned int) MscrInstance_6(D); scanning: _2 = _1 << 2; scanning: _3 = _2 + 1076429376; scanning: _4 = (volatile uint32 *) _3; scanning: _8 ={v} *_4; Volatile stmt is not const/pure Volatile indirect ref is not const/pure scanning: return _8; local analysis of Siul2_Port_Ip_SetMSCR scanning: _1 = (long unsigned int) MscrInstance_6(D); scanning: _2 = _1 << 2; scanning: _3 = _2 + 1076429376; scanning: _4 = (volatile uint32 *) _3; scanning: *_4 ={v} value_8(D); Volatile stmt is not const/pure Volatile indirect ref is not const/pure scanning: return; local analysis of Siul2_Port_Ip_GetMSCRConfiguration scanning: _1 = (int) pin_32(D); scanning: u32RegVal_35 ={v} base_34(D)->MSCR[_1]; Volatile stmt is not const/pure Indirect ref read is not const scanning: _2 = (unsigned char) u32RegVal_35; scanning: _3 = _2 & 7; scanning: config_36(D)->mux = _3; Indirect ref write is not const/pure scanning: _4 = u32RegVal_35 >> 5; scanning: _5 = _4 & 1; scanning: _6 = () _5; scanning: config_36(D)->safeMode = _6; Indirect ref write is not const/pure scanning: _7 = u32RegVal_35 & 8192; scanning: if (_7 == 0) scanning: _8 = u32RegVal_35 >> 11; scanning: _9 = _8 & 1; scanning: pullValue_39 = (Siul2_Port_Ip_PortPullConfig) _9; scanning: config_36(D)->pullConfig = pullValue_31; Indirect ref write is not const/pure scanning: _10 = u32RegVal_35 >> 14; scanning: _11 = _10 & 1; scanning: _12 = () _11; scanning: config_36(D)->slewRateCtrlSel = _12; Indirect ref write is not const/pure scanning: _13 = u32RegVal_35 >> 8; scanning: _14 = _13 & 1; scanning: _15 = () _14; scanning: config_36(D)->driveStrength = _15; Indirect ref write is not const/pure scanning: _16 = u32RegVal_35 >> 6; scanning: _17 = _16 & 1; scanning: _18 = () _17; scanning: config_36(D)->inputFilter = _18; Indirect ref write is not const/pure scanning: _19 = u32RegVal_35 >> 17; scanning: _20 = _19 & 1; scanning: _21 = () _20; scanning: config_36(D)->invert = _21; Indirect ref write is not const/pure scanning: _22 = u32RegVal_35 >> 16; scanning: _23 = _22 & 1; scanning: _24 = () _23; scanning: config_36(D)->pullKeep = _24; Indirect ref write is not const/pure scanning: _25 = u32RegVal_35 >> 19; scanning: _26 = _25 & 1; scanning: _27 = () _26; scanning: config_36(D)->inputBuffer = _27; Indirect ref write is not const/pure scanning: _28 = u32RegVal_35 >> 21; scanning: _29 = _28 & 1; scanning: _30 = () _29; scanning: config_36(D)->outputBuffer = _30; Indirect ref write is not const/pure scanning: return; local analysis of Siul2_Port_Ip_PinInit scanning: _1 = config_54(D)->pullConfig; Indirect ref read is not const scanning: if (_1 != 2) scanning: _2 = (long unsigned int) _1; scanning: _3 = _2 << 11; scanning: _4 = _3 & 2048; scanning: pinsValues_55 = _4 | 8192; scanning: _5 = config_54(D)->outputBuffer; Indirect ref read is not const scanning: _6 = (long unsigned int) _5; scanning: _7 = _6 << 21; scanning: _8 = _7 & 2097152; scanning: pinsValues_56 = _8 | pinsValues_45; scanning: _9 = config_54(D)->invert; Indirect ref read is not const scanning: _10 = (long unsigned int) _9; scanning: _11 = _10 << 17; scanning: _12 = _11 & 131072; scanning: pinsValues_57 = _12 | pinsValues_56; scanning: _13 = config_54(D)->pullKeep; Indirect ref read is not const scanning: _14 = (long unsigned int) _13; scanning: _15 = _14 << 16; scanning: _16 = _15 & 65536; scanning: pinsValues_58 = _16 | pinsValues_57; scanning: _17 = config_54(D)->driveStrength; Indirect ref read is not const scanning: _18 = (long unsigned int) _17; scanning: _19 = _18 << 8; scanning: _20 = _19 & 256; scanning: pinsValues_59 = _20 | pinsValues_58; scanning: _21 = config_54(D)->inputBuffer; Indirect ref read is not const scanning: _22 = (long unsigned int) _21; scanning: _23 = _22 << 19; scanning: _24 = _23 & 524288; scanning: pinsValues_60 = _24 | pinsValues_59; scanning: _25 = config_54(D)->slewRateCtrlSel; Indirect ref read is not const scanning: _26 = (long unsigned int) _25; scanning: _27 = _26 << 14; scanning: _28 = _27 & 16384; scanning: pinsValues_61 = _28 | pinsValues_60; scanning: _29 = config_54(D)->safeMode; Indirect ref read is not const scanning: _30 = (long unsigned int) _29; scanning: _31 = _30 << 5; scanning: _32 = _31 & 32; scanning: pinsValues_62 = _32 | pinsValues_61; scanning: _33 = config_54(D)->mux; Indirect ref read is not const scanning: _51 = _33 & 7; scanning: _34 = (long unsigned int) _51; scanning: pinsValues_63 = _34 | pinsValues_62; scanning: if (_33 == 0) scanning: if (_5 == 1) scanning: _35 = config_54(D)->pinPortIdx; Indirect ref read is not const scanning: _36 = (short unsigned int) _35; scanning: _37 = config_54(D)->initValue; Indirect ref read is not const scanning: Siul2_Port_Ip_SetGPDO (0, _36, _37); scanning: _38 = config_54(D)->base; Indirect ref read is not const scanning: _39 = config_54(D)->pinPortIdx; Indirect ref read is not const scanning: _38->MSCR[_39] ={v} pinsValues_63; Volatile stmt is not const/pure Indirect ref write is not const/pure scanning: _40 = config_54(D)->inputBuffer; Indirect ref read is not const scanning: if (_40 == 1) scanning: _41 = (int) inputMuxIterator_46; scanning: _42 = config_54(D)->inputMux[_41]; Indirect ref read is not const scanning: if (_42 != 16) scanning: imcrRegIdx_66 = config_54(D)->inputMuxReg[_41]; Indirect ref read is not const scanning: _43 = imcrRegIdx_66 & 511; scanning: _52 = _42 & 15; scanning: _44 = (long unsigned int) _52; scanning: MEM[(struct SIUL2_Type *)1076428800B].IMCR[_43] ={v} _44; Volatile stmt is not const/pure Indirect ref write is not const/pure scanning: inputMuxIterator_68 = inputMuxIterator_46 + 1; scanning: if (inputMuxIterator_46 != 8) scanning: return; callgraph: Siul2_Port_Ip_GetPinConfiguration/16 (Siul2_Port_Ip_GetPinConfiguration) @05d3d2a0 Type: function definition analyzed Visibility: externally_visible public Aux: @04e04cb8 References: pPort_Setting/2 (read)u32MaxPinConfigured/3 (read) Referring: Availability: available Function flags: count:114863532 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_GetMSCRConfiguration/5 (inlined) (55807732 (estimated locally),0.49 per call) Siul2_Port_Ip_RevertPinConfiguration/15 (Siul2_Port_Ip_RevertPinConfiguration) @05d3dd20 Type: function definition analyzed Visibility: externally_visible public Aux: @04e04f58 References: pPort_Setting/2 (read)u32MaxPinConfigured/3 (read) Referring: Availability: available Function flags: count:114863532 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_PinInit/4 (55807731 (estimated locally),0.49 per call) Siul2_Port_Ip_SetPinDirection/14 (Siul2_Port_Ip_SetPinDirection) @05d3da80 Type: function definition analyzed Visibility: externally_visible public Aux: @04e04c58 References: Referring: Availability: available Function flags: count:1073741823 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_SetInputBuffer/13 (Siul2_Port_Ip_SetInputBuffer) @05d3d620 Type: function definition analyzed Visibility: externally_visible public Aux: @04e04c78 References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_SetOutputBuffer/12 (Siul2_Port_Ip_SetOutputBuffer) @05d3d1c0 Type: function definition analyzed Visibility: externally_visible public Aux: @04e04c98 References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_SetPullSel/11 (Siul2_Port_Ip_SetPullSel) @05d2ea80 Type: function definition analyzed Visibility: externally_visible public Aux: @04e04cd8 References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_Init/10 (Siul2_Port_Ip_Init) @05d2e540 Type: function definition analyzed Visibility: externally_visible public Aux: @04e04ad8 References: pPort_Setting/2 (write)u32MaxPinConfigured/3 (write) Referring: Availability: available Function flags: count:118111600 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_PinInit/4 (955630223 (estimated locally),8.09 per call) Siul2_Port_Ip_SetGPDO/9 (Siul2_Port_Ip_SetGPDO) @05d2eee0 Type: function definition analyzed Visibility: externally_visible public Aux: @04e04b38 References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Siul2_Port_Ip_PinInit/4 (35507127 (estimated locally),0.10 per call) Calls: Siul2_Port_Ip_SetIMCR/8 (Siul2_Port_Ip_SetIMCR) @05d2ec40 Type: function definition analyzed Visibility: externally_visible public Aux: @04e04818 References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_ReadMSCR/7 (Siul2_Port_Ip_ReadMSCR) @05d2e9a0 Type: function definition analyzed Visibility: externally_visible public Aux: @0603fca0 References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_SetMSCR/6 (Siul2_Port_Ip_SetMSCR) @05d2e700 Type: function definition analyzed Visibility: externally_visible public Aux: @0603fac0 References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_GetMSCRConfiguration/5 (Siul2_Port_Ip_GetMSCRConfiguration) @05d2e460 Type: function definition analyzed Visibility: prevailing_def_ironly Aux: @0603fba0 References: Referring: Function Siul2_Port_Ip_GetMSCRConfiguration/5 is inline copy in Siul2_Port_Ip_GetPinConfiguration/16 Availability: local Function flags: count:55807732 (estimated locally) body local optimize_size Called by: Siul2_Port_Ip_GetPinConfiguration/16 (inlined) (55807732 (estimated locally),0.49 per call) Calls: Siul2_Port_Ip_PinInit/4 (Siul2_Port_Ip_PinInit) @05d2e1c0 Type: function definition analyzed Visibility: prevailing_def_ironly Aux: @0603fbc0 References: Referring: Availability: local Function flags: count:350860935 (estimated locally) body local optimize_size Called by: Siul2_Port_Ip_RevertPinConfiguration/15 (55807731 (estimated locally),0.49 per call) Siul2_Port_Ip_Init/10 (955630223 (estimated locally),8.09 per call) Calls: Siul2_Port_Ip_SetGPDO/9 (35507127 (estimated locally),0.10 per call) ordered call graph: reduced for nothrow Siul2_Port_Ip_GetPinConfiguration/16 (Siul2_Port_Ip_GetPinConfiguration) @05d3d2a0 Type: function definition analyzed Visibility: externally_visible public Aux: @04e04cb8 References: pPort_Setting/2 (read)u32MaxPinConfigured/3 (read) Referring: Availability: available Function flags: count:114863532 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_GetMSCRConfiguration/5 (inlined) (55807732 (estimated locally),0.49 per call) Siul2_Port_Ip_RevertPinConfiguration/15 (Siul2_Port_Ip_RevertPinConfiguration) @05d3dd20 Type: function definition analyzed Visibility: externally_visible public Aux: @04e04f58 References: pPort_Setting/2 (read)u32MaxPinConfigured/3 (read) Referring: Availability: available Function flags: count:114863532 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_PinInit/4 (55807731 (estimated locally),0.49 per call) Siul2_Port_Ip_SetPinDirection/14 (Siul2_Port_Ip_SetPinDirection) @05d3da80 Type: function definition analyzed Visibility: externally_visible public Aux: @04e04c58 References: Referring: Availability: available Function flags: count:1073741823 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_SetInputBuffer/13 (Siul2_Port_Ip_SetInputBuffer) @05d3d620 Type: function definition analyzed Visibility: externally_visible public Aux: @04e04c78 References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_SetOutputBuffer/12 (Siul2_Port_Ip_SetOutputBuffer) @05d3d1c0 Type: function definition analyzed Visibility: externally_visible public Aux: @04e04c98 References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_SetPullSel/11 (Siul2_Port_Ip_SetPullSel) @05d2ea80 Type: function definition analyzed Visibility: externally_visible public Aux: @04e04cd8 References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_Init/10 (Siul2_Port_Ip_Init) @05d2e540 Type: function definition analyzed Visibility: externally_visible public Aux: @04e04ad8 References: pPort_Setting/2 (write)u32MaxPinConfigured/3 (write) Referring: Availability: available Function flags: count:118111600 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_PinInit/4 (955630223 (estimated locally),8.09 per call) Siul2_Port_Ip_SetGPDO/9 (Siul2_Port_Ip_SetGPDO) @05d2eee0 Type: function definition analyzed Visibility: externally_visible public Aux: @04e04b38 References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Siul2_Port_Ip_PinInit/4 (35507127 (estimated locally),0.10 per call) Calls: Siul2_Port_Ip_SetIMCR/8 (Siul2_Port_Ip_SetIMCR) @05d2ec40 Type: function definition analyzed Visibility: externally_visible public Aux: @04e04818 References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_ReadMSCR/7 (Siul2_Port_Ip_ReadMSCR) @05d2e9a0 Type: function definition analyzed Visibility: externally_visible public Aux: @0603fca0 References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_SetMSCR/6 (Siul2_Port_Ip_SetMSCR) @05d2e700 Type: function definition analyzed Visibility: externally_visible public Aux: @0603fac0 References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_GetMSCRConfiguration/5 (Siul2_Port_Ip_GetMSCRConfiguration) @05d2e460 Type: function definition analyzed Visibility: prevailing_def_ironly Aux: @0603fba0 References: Referring: Function Siul2_Port_Ip_GetMSCRConfiguration/5 is inline copy in Siul2_Port_Ip_GetPinConfiguration/16 Availability: local Function flags: count:55807732 (estimated locally) body local optimize_size Called by: Siul2_Port_Ip_GetPinConfiguration/16 (inlined) (55807732 (estimated locally),0.49 per call) Calls: Siul2_Port_Ip_PinInit/4 (Siul2_Port_Ip_PinInit) @05d2e1c0 Type: function definition analyzed Visibility: prevailing_def_ironly Aux: @0603fbc0 References: Referring: Availability: local Function flags: count:350860935 (estimated locally) body local optimize_size Called by: Siul2_Port_Ip_RevertPinConfiguration/15 (55807731 (estimated locally),0.49 per call) Siul2_Port_Ip_Init/10 (955630223 (estimated locally),8.09 per call) Calls: Siul2_Port_Ip_SetGPDO/9 (35507127 (estimated locally),0.10 per call) MALLOC LATTICE Initial: Siul2_Port_Ip_GetPinConfiguration: malloc_bottom Siul2_Port_Ip_RevertPinConfiguration: malloc_bottom Siul2_Port_Ip_SetPinDirection: malloc_bottom Siul2_Port_Ip_SetInputBuffer: malloc_bottom Siul2_Port_Ip_SetOutputBuffer: malloc_bottom Siul2_Port_Ip_SetPullSel: malloc_bottom Siul2_Port_Ip_Init: malloc_bottom Siul2_Port_Ip_SetGPDO: malloc_bottom Siul2_Port_Ip_SetIMCR: malloc_bottom Siul2_Port_Ip_ReadMSCR: malloc_bottom Siul2_Port_Ip_SetMSCR: malloc_bottom Siul2_Port_Ip_GetMSCRConfiguration: malloc_bottom Siul2_Port_Ip_PinInit: malloc_bottom MALLOC LATTICE after propagation: Siul2_Port_Ip_GetPinConfiguration: malloc_bottom Siul2_Port_Ip_RevertPinConfiguration: malloc_bottom Siul2_Port_Ip_SetPinDirection: malloc_bottom Siul2_Port_Ip_SetInputBuffer: malloc_bottom Siul2_Port_Ip_SetOutputBuffer: malloc_bottom Siul2_Port_Ip_SetPullSel: malloc_bottom Siul2_Port_Ip_Init: malloc_bottom Siul2_Port_Ip_SetGPDO: malloc_bottom Siul2_Port_Ip_SetIMCR: malloc_bottom Siul2_Port_Ip_ReadMSCR: malloc_bottom Siul2_Port_Ip_SetMSCR: malloc_bottom Siul2_Port_Ip_GetMSCRConfiguration: malloc_bottom Siul2_Port_Ip_PinInit: malloc_bottom callgraph: Siul2_Port_Ip_GetPinConfiguration/16 (Siul2_Port_Ip_GetPinConfiguration) @05d3d2a0 Type: function definition analyzed Visibility: externally_visible public Aux: @04e04818 References: pPort_Setting/2 (read)u32MaxPinConfigured/3 (read) Referring: Availability: available Function flags: count:114863532 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_GetMSCRConfiguration/5 (inlined) (55807732 (estimated locally),0.49 per call) Siul2_Port_Ip_RevertPinConfiguration/15 (Siul2_Port_Ip_RevertPinConfiguration) @05d3dd20 Type: function definition analyzed Visibility: externally_visible public Aux: @04e04ad8 References: pPort_Setting/2 (read)u32MaxPinConfigured/3 (read) Referring: Availability: available Function flags: count:114863532 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_PinInit/4 (55807731 (estimated locally),0.49 per call) Siul2_Port_Ip_SetPinDirection/14 (Siul2_Port_Ip_SetPinDirection) @05d3da80 Type: function definition analyzed Visibility: externally_visible public Aux: @04e04b38 References: Referring: Availability: available Function flags: count:1073741823 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_SetInputBuffer/13 (Siul2_Port_Ip_SetInputBuffer) @05d3d620 Type: function definition analyzed Visibility: externally_visible public Aux: @04e04f58 References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_SetOutputBuffer/12 (Siul2_Port_Ip_SetOutputBuffer) @05d3d1c0 Type: function definition analyzed Visibility: externally_visible public Aux: @04e04c58 References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_SetPullSel/11 (Siul2_Port_Ip_SetPullSel) @05d2ea80 Type: function definition analyzed Visibility: externally_visible public Aux: @04e04c78 References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_Init/10 (Siul2_Port_Ip_Init) @05d2e540 Type: function definition analyzed Visibility: externally_visible public Aux: @04e04c98 References: pPort_Setting/2 (write)u32MaxPinConfigured/3 (write) Referring: Availability: available Function flags: count:118111600 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_PinInit/4 (955630223 (estimated locally),8.09 per call) Siul2_Port_Ip_SetGPDO/9 (Siul2_Port_Ip_SetGPDO) @05d2eee0 Type: function definition analyzed Visibility: externally_visible public Aux: @04e04cb8 References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Siul2_Port_Ip_PinInit/4 (35507127 (estimated locally),0.10 per call) Calls: Siul2_Port_Ip_SetIMCR/8 (Siul2_Port_Ip_SetIMCR) @05d2ec40 Type: function definition analyzed Visibility: externally_visible public Aux: @04e04cd8 References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_ReadMSCR/7 (Siul2_Port_Ip_ReadMSCR) @05d2e9a0 Type: function definition analyzed Visibility: externally_visible public Aux: @0603fbc0 References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_SetMSCR/6 (Siul2_Port_Ip_SetMSCR) @05d2e700 Type: function definition analyzed Visibility: externally_visible public Aux: @0603fe20 References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_GetMSCRConfiguration/5 (Siul2_Port_Ip_GetMSCRConfiguration) @05d2e460 Type: function definition analyzed Visibility: prevailing_def_ironly Aux: @0603fea0 References: Referring: Function Siul2_Port_Ip_GetMSCRConfiguration/5 is inline copy in Siul2_Port_Ip_GetPinConfiguration/16 Availability: local Function flags: count:55807732 (estimated locally) body local optimize_size Called by: Siul2_Port_Ip_GetPinConfiguration/16 (inlined) (55807732 (estimated locally),0.49 per call) Calls: Siul2_Port_Ip_PinInit/4 (Siul2_Port_Ip_PinInit) @05d2e1c0 Type: function definition analyzed Visibility: prevailing_def_ironly Aux: @0603fce0 References: Referring: Availability: local Function flags: count:350860935 (estimated locally) body local optimize_size Called by: Siul2_Port_Ip_RevertPinConfiguration/15 (55807731 (estimated locally),0.49 per call) Siul2_Port_Ip_Init/10 (955630223 (estimated locally),8.09 per call) Calls: Siul2_Port_Ip_SetGPDO/9 (35507127 (estimated locally),0.10 per call) ordered call graph: reduced Siul2_Port_Ip_GetPinConfiguration/16 (Siul2_Port_Ip_GetPinConfiguration) @05d3d2a0 Type: function definition analyzed Visibility: externally_visible public Aux: @04e04818 References: pPort_Setting/2 (read)u32MaxPinConfigured/3 (read) Referring: Availability: available Function flags: count:114863532 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_GetMSCRConfiguration/5 (inlined) (55807732 (estimated locally),0.49 per call) Siul2_Port_Ip_RevertPinConfiguration/15 (Siul2_Port_Ip_RevertPinConfiguration) @05d3dd20 Type: function definition analyzed Visibility: externally_visible public Aux: @04e04ad8 References: pPort_Setting/2 (read)u32MaxPinConfigured/3 (read) Referring: Availability: available Function flags: count:114863532 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_PinInit/4 (55807731 (estimated locally),0.49 per call) Siul2_Port_Ip_SetPinDirection/14 (Siul2_Port_Ip_SetPinDirection) @05d3da80 Type: function definition analyzed Visibility: externally_visible public Aux: @04e04b38 References: Referring: Availability: available Function flags: count:1073741823 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_SetInputBuffer/13 (Siul2_Port_Ip_SetInputBuffer) @05d3d620 Type: function definition analyzed Visibility: externally_visible public Aux: @04e04f58 References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_SetOutputBuffer/12 (Siul2_Port_Ip_SetOutputBuffer) @05d3d1c0 Type: function definition analyzed Visibility: externally_visible public Aux: @04e04c58 References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_SetPullSel/11 (Siul2_Port_Ip_SetPullSel) @05d2ea80 Type: function definition analyzed Visibility: externally_visible public Aux: @04e04c78 References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_Init/10 (Siul2_Port_Ip_Init) @05d2e540 Type: function definition analyzed Visibility: externally_visible public Aux: @04e04c98 References: pPort_Setting/2 (write)u32MaxPinConfigured/3 (write) Referring: Availability: available Function flags: count:118111600 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_PinInit/4 (955630223 (estimated locally),8.09 per call) Siul2_Port_Ip_SetIMCR/8 (Siul2_Port_Ip_SetIMCR) @05d2ec40 Type: function definition analyzed Visibility: externally_visible public Aux: @04e04cd8 References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_ReadMSCR/7 (Siul2_Port_Ip_ReadMSCR) @05d2e9a0 Type: function definition analyzed Visibility: externally_visible public Aux: @0603fbc0 References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_SetMSCR/6 (Siul2_Port_Ip_SetMSCR) @05d2e700 Type: function definition analyzed Visibility: externally_visible public Aux: @0603fe20 References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_GetMSCRConfiguration/5 (Siul2_Port_Ip_GetMSCRConfiguration) @05d2e460 Type: function definition analyzed Visibility: prevailing_def_ironly Aux: @0603fea0 References: Referring: Function Siul2_Port_Ip_GetMSCRConfiguration/5 is inline copy in Siul2_Port_Ip_GetPinConfiguration/16 Availability: local Function flags: count:55807732 (estimated locally) body local optimize_size Called by: Siul2_Port_Ip_GetPinConfiguration/16 (inlined) (55807732 (estimated locally),0.49 per call) Calls: Siul2_Port_Ip_PinInit/4 (Siul2_Port_Ip_PinInit) @05d2e1c0 Type: function definition analyzed Visibility: prevailing_def_ironly Aux: @0603fce0 References: Referring: Availability: local Function flags: count:350860935 (estimated locally) body local optimize_size Called by: Siul2_Port_Ip_RevertPinConfiguration/15 (55807731 (estimated locally),0.49 per call) Siul2_Port_Ip_Init/10 (955630223 (estimated locally),8.09 per call) Calls: Siul2_Port_Ip_SetGPDO/9 (35507127 (estimated locally),0.10 per call) Siul2_Port_Ip_SetGPDO/9 (Siul2_Port_Ip_SetGPDO) @05d2eee0 Type: function definition analyzed Visibility: externally_visible public Aux: @04e04cb8 References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Siul2_Port_Ip_PinInit/4 (35507127 (estimated locally),0.10 per call) Calls: Function found not to call free: Siul2_Port_Ip_SetGPDO Function found not to call free: Siul2_Port_Ip_PinInit Function found not to call free: Siul2_Port_Ip_GetMSCRConfiguration Function found not to call free: Siul2_Port_Ip_SetMSCR Function found not to call free: Siul2_Port_Ip_ReadMSCR Function found not to call free: Siul2_Port_Ip_SetIMCR Function found not to call free: Siul2_Port_Ip_Init Function found not to call free: Siul2_Port_Ip_SetPullSel Function found not to call free: Siul2_Port_Ip_SetOutputBuffer Function found not to call free: Siul2_Port_Ip_SetInputBuffer Function found not to call free: Siul2_Port_Ip_SetPinDirection Function found not to call free: Siul2_Port_Ip_RevertPinConfiguration Function found not to call free: Siul2_Port_Ip_GetPinConfiguration Siul2_Port_Ip_GetPinConfiguration (const struct Siul2_Port_Ip_PortType * const base, struct Siul2_Port_Ip_PinSettingsConfig * config, uint16 pin) { uint8 inputMuxIterator; uint16 u16PinIdx; uint32 u32MscrId; uint32 portNumber; uint32 MaxPinConfigured; const struct Siul2_Port_Ip_PinSettingsConfig * ConfigPtr; long unsigned int base.5_1; long unsigned int _2; long unsigned int _3; long unsigned int _4; const struct Siul2_Port_Ip_PinSettingsConfig * _5; unsigned int _6; const struct Siul2_Port_Ip_PinSettingsConfig * _7; long unsigned int _8; struct SIUL2_Type * _9; unsigned char _10; int _11; long unsigned int _12; _13; long unsigned int _14; long unsigned int _15; [local count: 114863532]: # DEBUG BEGIN_STMT ConfigPtr_21 = pPort_Setting; # DEBUG ConfigPtr => ConfigPtr_21 # DEBUG BEGIN_STMT MaxPinConfigured_22 = u32MaxPinConfigured; # DEBUG MaxPinConfigured => MaxPinConfigured_22 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG u32MscrBase => 1076429376 # DEBUG BEGIN_STMT base.5_1 = (long unsigned int) base_23(D); _2 = base.5_1 + 3218537920; portNumber_24 = _2 >> 6; # DEBUG portNumber => portNumber_24 # DEBUG BEGIN_STMT _3 = portNumber_24 << 4; _4 = (long unsigned int) pin_25(D); u32MscrId_26 = _3 + _4; # DEBUG u32MscrId => u32MscrId_26 # DEBUG BEGIN_STMT # DEBUG u16PinIdx => 0 goto ; [100.00%] [local count: 1014686025]: # DEBUG BEGIN_STMT _6 = _15 * 64; _7 = ConfigPtr_21 + _6; _8 = _7->pinPortIdx; if (_8 == u32MscrId_26) goto ; [5.50%] else goto ; [94.50%] [local count: 55807731]: # _5 = PHI <_7(3)> # _14 = PHI <_8(3)> # DEBUG BEGIN_STMT _9 = _5->base; config_28(D)->base = _9; # DEBUG BEGIN_STMT config_28(D)->pinPortIdx = _14; # DEBUG BEGIN_STMT _10 = _5->initValue; config_28(D)->initValue = _10; # DEBUG BEGIN_STMT # DEBUG inputMuxIterator => 0 goto ; [100.00%] [local count: 446512084]: # DEBUG BEGIN_STMT _11 = (int) inputMuxIterator_17; _12 = _5->inputMuxReg[_11]; config_28(D)->inputMuxReg[_11] = _12; # DEBUG BEGIN_STMT _13 = _5->inputMux[_11]; config_28(D)->inputMux[_11] = _13; # DEBUG BEGIN_STMT inputMuxIterator_35 = inputMuxIterator_17 + 1; # DEBUG inputMuxIterator => inputMuxIterator_35 [local count: 502319816]: # inputMuxIterator_17 = PHI <0(4), inputMuxIterator_35(5)> # DEBUG inputMuxIterator => inputMuxIterator_17 # DEBUG BEGIN_STMT if (inputMuxIterator_17 != 8) goto ; [88.89%] else goto ; [11.11%] [local count: 55807732]: # DEBUG BEGIN_STMT Siul2_Port_Ip_GetMSCRConfiguration (config_28(D), base_23(D), pin_25(D)); # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 958878293]: # DEBUG BEGIN_STMT u16PinIdx_27 = u16PinIdx_16 + 1; # DEBUG u16PinIdx => u16PinIdx_27 [local count: 1073741824]: # u16PinIdx_16 = PHI <0(2), u16PinIdx_27(8)> # DEBUG u16PinIdx => u16PinIdx_16 # DEBUG BEGIN_STMT _15 = (long unsigned int) u16PinIdx_16; if (_15 < MaxPinConfigured_22) goto ; [94.50%] else goto ; [5.50%] [local count: 114863532]: return; } Siul2_Port_Ip_RevertPinConfiguration (const struct Siul2_Port_Ip_PortType * const base, uint16 pin) { uint32 u32MscrId; uint32 portNumber; uint32 MaxPinConfigured; const struct Siul2_Port_Ip_PinSettingsConfig * ConfigPtr; uint32 u32RegVal; uint16 u16PinIdx; long unsigned int base.3_1; long unsigned int _2; long unsigned int _3; long unsigned int _4; const struct Siul2_Port_Ip_PinSettingsConfig * _5; unsigned int _6; const struct Siul2_Port_Ip_PinSettingsConfig * _7; long unsigned int _8; int _9; long unsigned int _10; [local count: 114863532]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG u32RegVal => 4294967295 # DEBUG BEGIN_STMT ConfigPtr_15 = pPort_Setting; # DEBUG ConfigPtr => ConfigPtr_15 # DEBUG BEGIN_STMT MaxPinConfigured_16 = u32MaxPinConfigured; # DEBUG MaxPinConfigured => MaxPinConfigured_16 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT base.3_1 = (long unsigned int) base_17(D); _2 = base.3_1 + 3218537920; portNumber_18 = _2 >> 6; # DEBUG portNumber => portNumber_18 # DEBUG BEGIN_STMT _3 = portNumber_18 << 4; _4 = (long unsigned int) pin_19(D); u32MscrId_20 = _3 + _4; # DEBUG u32MscrId => u32MscrId_20 # DEBUG BEGIN_STMT # DEBUG u16PinIdx => 0 goto ; [100.00%] [local count: 1014686025]: # DEBUG BEGIN_STMT _6 = _10 * 64; _7 = ConfigPtr_15 + _6; _8 = _7->pinPortIdx; if (_8 == u32MscrId_20) goto ; [5.50%] else goto ; [94.50%] [local count: 55807731]: # _5 = PHI <_7(3)> # DEBUG BEGIN_STMT Siul2_Port_Ip_PinInit (_5); # DEBUG BEGIN_STMT _9 = (int) pin_19(D); u32RegVal_23 ={v} base_17(D)->MSCR[_9]; # DEBUG u32RegVal => u32RegVal_23 # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 958878293]: # DEBUG BEGIN_STMT u16PinIdx_21 = u16PinIdx_11 + 1; # DEBUG u16PinIdx => u16PinIdx_21 [local count: 1073741824]: # u16PinIdx_11 = PHI <0(2), u16PinIdx_21(5)> # DEBUG u16PinIdx => u16PinIdx_11 # DEBUG BEGIN_STMT _10 = (long unsigned int) u16PinIdx_11; if (_10 < MaxPinConfigured_16) goto ; [94.50%] else goto ; [5.50%] [local count: 114863532]: # u32RegVal_12 = PHI # DEBUG u32RegVal => u32RegVal_12 # DEBUG BEGIN_STMT return u32RegVal_12; } Siul2_Port_Ip_SetPinDirection (struct Siul2_Port_Ip_PortType * const base, uint16 pin, Siul2_Port_Ip_PortDirectionType direction) { int _1; long unsigned int _2; long unsigned int _3; long unsigned int _4; long unsigned int _5; int _6; long unsigned int _7; long unsigned int _8; long unsigned int _9; long unsigned int _10; int _11; long unsigned int _12; long unsigned int _13; int _14; long unsigned int _15; long unsigned int _16; [local count: 1073741823]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT switch (direction_18(D)) [20.00%], case 0: [20.00%], case 1: [20.00%], case 2: [20.00%], case 3: [20.00%]> [local count: 214748364]: : # DEBUG BEGIN_STMT _1 = (int) pin_20(D); _2 ={v} base_21(D)->MSCR[_1]; _3 = _2 & 4292870143; base_21(D)->MSCR[_1] ={v} _3; # DEBUG BEGIN_STMT _4 ={v} base_21(D)->MSCR[_1]; _5 = _4 | 524288; base_21(D)->MSCR[_1] ={v} _5; # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 214748364]: : # DEBUG BEGIN_STMT _6 = (int) pin_20(D); _7 ={v} base_21(D)->MSCR[_6]; _8 = _7 & 4294443007; base_21(D)->MSCR[_6] ={v} _8; # DEBUG BEGIN_STMT _9 ={v} base_21(D)->MSCR[_6]; _10 = _9 | 2097152; base_21(D)->MSCR[_6] ={v} _10; # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 214748364]: : # DEBUG BEGIN_STMT _11 = (int) pin_20(D); _12 ={v} base_21(D)->MSCR[_11]; _13 = _12 | 2621440; base_21(D)->MSCR[_11] ={v} _13; # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 214748364]: : # DEBUG BEGIN_STMT _14 = (int) pin_20(D); _15 ={v} base_21(D)->MSCR[_14]; _16 = _15 & 4292345855; base_21(D)->MSCR[_14] ={v} _16; # DEBUG BEGIN_STMT [local count: 1073741824]: : return; } Siul2_Port_Ip_SetInputBuffer (struct Siul2_Port_Ip_PortType * const base, uint16 pin, boolean enable, uint32 inputMuxReg, Siul2_Port_Ip_PortInputMux inputMux) { uint32 imcrVal; struct SIUL2_Type * siul2Base; 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 iftmp.2_9; _12; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG siul2Base => 4294967295B # DEBUG BEGIN_STMT # DEBUG imcrRegIdx => inputMuxReg_13(D) # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (base_14(D) != 0B) goto ; [70.00%] else goto ; [30.00%] [local count: 751619278]: # DEBUG BEGIN_STMT _1 = (int) pin_16(D); _2 ={v} base_14(D)->MSCR[_1]; _3 = _2 & 4294443007; base_14(D)->MSCR[_1] ={v} _3; # DEBUG BEGIN_STMT _4 ={v} base_14(D)->MSCR[_1]; if (enable_18(D) != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 375809639]: [local count: 751619278]: # iftmp.2_9 = PHI <524288(3), 0(4)> _5 = _4 | iftmp.2_9; base_14(D)->MSCR[_1] ={v} _5; [local count: 1073741824]: # DEBUG BEGIN_STMT if (inputMux_20(D) != 16) goto ; [66.00%] else goto ; [34.00%] [local count: 708669605]: # DEBUG BEGIN_STMT if (inputMuxReg_13(D) <= 511) goto ; [50.00%] else goto ; [50.00%] [local count: 354334802]: # DEBUG BEGIN_STMT # DEBUG siul2Base => 1076428800B [local count: 708669605]: # siul2Base_8 = PHI <4294967295B(7), 1076428800B(8)> # DEBUG siul2Base => siul2Base_8 # DEBUG BEGIN_STMT _6 = inputMuxReg_13(D) & 511; imcrVal_21 ={v} siul2Base_8->IMCR[_6]; # DEBUG imcrVal => imcrVal_21 # DEBUG BEGIN_STMT imcrVal_22 = imcrVal_21 & 4294967280; # DEBUG imcrVal => imcrVal_22 # DEBUG BEGIN_STMT _12 = inputMux_20(D) & 15; _7 = (long unsigned int) _12; imcrVal_23 = _7 | imcrVal_22; # DEBUG imcrVal => imcrVal_23 # DEBUG BEGIN_STMT siul2Base_8->IMCR[_6] ={v} imcrVal_23; [local count: 1073741824]: return; } Siul2_Port_Ip_SetOutputBuffer (struct Siul2_Port_Ip_PortType * const base, uint16 pin, boolean enable, Siul2_Port_Ip_PortMux mux) { 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; long unsigned int iftmp.1_11; _17; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _1 = (int) pin_12(D); _2 ={v} base_14(D)->MSCR[_1]; _3 = _2 & 4292870143; base_14(D)->MSCR[_1] ={v} _3; # DEBUG BEGIN_STMT _4 ={v} base_14(D)->MSCR[_1]; if (enable_16(D) != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 536870913]: [local count: 1073741824]: # iftmp.1_11 = PHI <2097152(2), 0(3)> _5 = _4 | iftmp.1_11; base_14(D)->MSCR[_1] ={v} _5; # DEBUG BEGIN_STMT _6 ={v} base_14(D)->MSCR[_1]; _7 = _6 & 4294967288; base_14(D)->MSCR[_1] ={v} _7; # DEBUG BEGIN_STMT _8 ={v} base_14(D)->MSCR[_1]; _17 = mux_20(D) & 7; _9 = (long unsigned int) _17; _10 = _8 | _9; base_14(D)->MSCR[_1] ={v} _10; return; } Siul2_Port_Ip_SetPullSel (struct Siul2_Port_Ip_PortType * const base, uint16 pin, Siul2_Port_Ip_PortPullConfig pullConfig) { uint32 regVal; int _1; long unsigned int _2; long unsigned int _3; int _4; int _5; long unsigned int _18; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG pueVal => 8192 # DEBUG BEGIN_STMT # DEBUG pusVal => 2048 # DEBUG BEGIN_STMT switch (pullConfig_7(D)) [25.00%], case 0: [25.00%], case 1: [25.00%], case 2: [25.00%]> [local count: 268435456]: : # DEBUG BEGIN_STMT _1 = (int) pin_9(D); _2 ={v} base_10(D)->MSCR[_1]; _3 = _2 & 4294959103; base_10(D)->MSCR[_1] ={v} _3; # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 268435456]: : # DEBUG BEGIN_STMT _4 = (int) pin_9(D); regVal_15 ={v} base_10(D)->MSCR[_4]; # DEBUG regVal => regVal_15 # DEBUG BEGIN_STMT # DEBUG regVal => regVal_15 | 8192 # DEBUG BEGIN_STMT _18 = regVal_15 & 4294965247; regVal_16 = _18 | 8192; # DEBUG regVal => regVal_16 # DEBUG BEGIN_STMT base_10(D)->MSCR[_4] ={v} regVal_16; # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 268435456]: : # DEBUG BEGIN_STMT _5 = (int) pin_9(D); regVal_12 ={v} base_10(D)->MSCR[_5]; # DEBUG regVal => regVal_12 # DEBUG BEGIN_STMT # DEBUG regVal => regVal_12 | 8192 # DEBUG BEGIN_STMT regVal_13 = regVal_12 | 10240; # DEBUG regVal => regVal_13 # DEBUG BEGIN_STMT base_10(D)->MSCR[_5] ={v} regVal_13; # DEBUG BEGIN_STMT [local count: 1073741824]: : return; } Siul2_Port_Ip_Init (uint32 pinCount, const struct Siul2_Port_Ip_PinSettingsConfig * config) { uint32 i; long unsigned int _1; const struct Siul2_Port_Ip_PinSettingsConfig * _2; [local count: 118111600]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pPort_Setting = config_6(D); # DEBUG BEGIN_STMT u32MaxPinConfigured = pinCount_8(D); # DEBUG BEGIN_STMT # DEBUG i => 0 goto ; [100.00%] [local count: 955630223]: # DEBUG BEGIN_STMT _1 = i_3 * 64; _2 = config_6(D) + _1; Siul2_Port_Ip_PinInit (_2); # DEBUG BEGIN_STMT i_11 = i_3 + 1; # DEBUG i => i_11 [local count: 1073741824]: # i_3 = PHI <0(2), i_11(3)> # DEBUG i => i_3 # DEBUG BEGIN_STMT if (i_3 < pinCount_8(D)) goto ; [89.00%] else goto ; [11.00%] [local count: 118111601]: # DEBUG BEGIN_STMT return 0; } Siul2_Port_Ip_SetGPDO (uint8 SiulInstance, uint16 GpdoInstance, uint8 value) { short unsigned int _1; long unsigned int _2; long unsigned int _3; volatile uint8 * _4; [local count: 1073741824]: # DEBUG BEGIN_STMT if (value_6(D) != 2) goto ; [66.00%] else goto ; [34.00%] [local count: 708669605]: # DEBUG BEGIN_STMT _1 = GpdoInstance_9(D) ^ 3; _2 = (long unsigned int) _1; _3 = _2 + 1076433664; _4 = (volatile uint8 *) _3; *_4 ={v} value_6(D); [local count: 1073741824]: return; } Siul2_Port_Ip_SetIMCR (uint8 SiulInstance, uint16 ImcrInstance, uint32 value) { long unsigned int _1; long unsigned int _2; long unsigned int _3; volatile uint32 * _4; [local count: 1073741824]: # DEBUG BEGIN_STMT _1 = (long unsigned int) ImcrInstance_6(D); _2 = _1 << 2; _3 = _2 + 1076431424; _4 = (volatile uint32 *) _3; *_4 ={v} value_8(D); return; } Siul2_Port_Ip_ReadMSCR (uint8 SiulInstance, uint16 MscrInstance) { long unsigned int _1; long unsigned int _2; long unsigned int _3; volatile uint32 * _4; uint32 _8; [local count: 1073741824]: # DEBUG BEGIN_STMT _1 = (long unsigned int) MscrInstance_6(D); _2 = _1 << 2; _3 = _2 + 1076429376; _4 = (volatile uint32 *) _3; _8 ={v} *_4; return _8; } Siul2_Port_Ip_SetMSCR (uint8 SiulInstance, uint16 MscrInstance, uint32 value) { long unsigned int _1; long unsigned int _2; long unsigned int _3; volatile uint32 * _4; [local count: 1073741824]: # DEBUG BEGIN_STMT _1 = (long unsigned int) MscrInstance_6(D); _2 = _1 << 2; _3 = _2 + 1076429376; _4 = (volatile uint32 *) _3; *_4 ={v} value_8(D); return; } Siul2_Port_Ip_GetMSCRConfiguration (struct Siul2_Port_Ip_PinSettingsConfig * config, const struct Siul2_Port_Ip_PortType * const base, uint16 pin) { Siul2_Port_Ip_PortPullConfig pullValue; uint32 u32RegVal; int _1; unsigned char _2; unsigned char _3; long unsigned int _4; long unsigned int _5; _6; long unsigned int _7; long unsigned int _8; long unsigned int _9; long unsigned int _10; long unsigned int _11; _12; long unsigned int _13; long unsigned int _14; _15; long unsigned int _16; long unsigned int _17; _18; long unsigned int _19; long unsigned int _20; _21; long unsigned int _22; long unsigned int _23; _24; long unsigned int _25; long unsigned int _26; _27; long unsigned int _28; long unsigned int _29; _30; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG u32RegVal => 4294967295 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _1 = (int) pin_32(D); u32RegVal_35 ={v} base_34(D)->MSCR[_1]; # DEBUG u32RegVal => u32RegVal_35 # DEBUG BEGIN_STMT _2 = (unsigned char) u32RegVal_35; _3 = _2 & 7; config_36(D)->mux = _3; # DEBUG BEGIN_STMT _4 = u32RegVal_35 >> 5; _5 = _4 & 1; _6 = () _5; config_36(D)->safeMode = _6; # DEBUG BEGIN_STMT _7 = u32RegVal_35 & 8192; if (_7 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 536870913]: # DEBUG BEGIN_STMT _8 = u32RegVal_35 >> 11; _9 = _8 & 1; pullValue_39 = (Siul2_Port_Ip_PortPullConfig) _9; # DEBUG pullValue => pullValue_39 [local count: 1073741824]: # pullValue_31 = PHI <2(2), pullValue_39(3)> # DEBUG pullValue => pullValue_31 # DEBUG BEGIN_STMT config_36(D)->pullConfig = pullValue_31; # DEBUG BEGIN_STMT _10 = u32RegVal_35 >> 14; _11 = _10 & 1; _12 = () _11; config_36(D)->slewRateCtrlSel = _12; # DEBUG BEGIN_STMT _13 = u32RegVal_35 >> 8; _14 = _13 & 1; _15 = () _14; config_36(D)->driveStrength = _15; # DEBUG BEGIN_STMT _16 = u32RegVal_35 >> 6; _17 = _16 & 1; _18 = () _17; config_36(D)->inputFilter = _18; # DEBUG BEGIN_STMT _19 = u32RegVal_35 >> 17; _20 = _19 & 1; _21 = () _20; config_36(D)->invert = _21; # DEBUG BEGIN_STMT _22 = u32RegVal_35 >> 16; _23 = _22 & 1; _24 = () _23; config_36(D)->pullKeep = _24; # DEBUG BEGIN_STMT _25 = u32RegVal_35 >> 19; _26 = _25 & 1; _27 = () _26; config_36(D)->inputBuffer = _27; # DEBUG BEGIN_STMT _28 = u32RegVal_35 >> 21; _29 = _28 & 1; _30 = () _29; config_36(D)->outputBuffer = _30; return; } Siul2_Port_Ip_PinInit (const struct Siul2_Port_Ip_PinSettingsConfig * config) { uint32 imcrRegIdx; uint8 inputMuxIterator; uint32 pinsValues; _1; long unsigned int _2; long unsigned int _3; long unsigned int _4; _5; long unsigned int _6; long unsigned int _7; long unsigned int _8; _9; long unsigned int _10; long unsigned int _11; long unsigned int _12; _13; long unsigned int _14; long unsigned int _15; long unsigned int _16; _17; long unsigned int _18; long unsigned int _19; long unsigned int _20; _21; long unsigned int _22; long unsigned int _23; long unsigned int _24; _25; long unsigned int _26; long unsigned int _27; long unsigned int _28; _29; long unsigned int _30; long unsigned int _31; long unsigned int _32; _33; long unsigned int _34; long unsigned int _35; short unsigned int _36; unsigned char _37; struct SIUL2_Type * _38; long unsigned int _39; _40; int _41; _42; long unsigned int _43; long unsigned int _44; _51; _52; [local count: 350860935]: # DEBUG BEGIN_STMT # DEBUG pinsValues => 0 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG siulInstance => 0 # DEBUG BEGIN_STMT # DEBUG imcrBase => 1076428800B # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG siulInstance => 0 # DEBUG BEGIN_STMT _1 = config_54(D)->pullConfig; if (_1 != 2) goto ; [66.00%] else goto ; [34.00%] [local count: 231568217]: # DEBUG BEGIN_STMT # DEBUG pinsValues => 8192 # DEBUG BEGIN_STMT _2 = (long unsigned int) _1; _3 = _2 << 11; _4 = _3 & 2048; pinsValues_55 = _4 | 8192; # DEBUG pinsValues => pinsValues_55 [local count: 350860935]: # pinsValues_45 = PHI <0(2), pinsValues_55(3)> # DEBUG pinsValues => pinsValues_45 # DEBUG BEGIN_STMT _5 = config_54(D)->outputBuffer; _6 = (long unsigned int) _5; _7 = _6 << 21; _8 = _7 & 2097152; pinsValues_56 = _8 | pinsValues_45; # DEBUG pinsValues => pinsValues_56 # DEBUG BEGIN_STMT _9 = config_54(D)->invert; _10 = (long unsigned int) _9; _11 = _10 << 17; _12 = _11 & 131072; pinsValues_57 = _12 | pinsValues_56; # DEBUG pinsValues => pinsValues_57 # DEBUG BEGIN_STMT _13 = config_54(D)->pullKeep; _14 = (long unsigned int) _13; _15 = _14 << 16; _16 = _15 & 65536; pinsValues_58 = _16 | pinsValues_57; # DEBUG pinsValues => pinsValues_58 # DEBUG BEGIN_STMT _17 = config_54(D)->driveStrength; _18 = (long unsigned int) _17; _19 = _18 << 8; _20 = _19 & 256; pinsValues_59 = _20 | pinsValues_58; # DEBUG pinsValues => pinsValues_59 # DEBUG BEGIN_STMT _21 = config_54(D)->inputBuffer; _22 = (long unsigned int) _21; _23 = _22 << 19; _24 = _23 & 524288; pinsValues_60 = _24 | pinsValues_59; # DEBUG pinsValues => pinsValues_60 # DEBUG BEGIN_STMT _25 = config_54(D)->slewRateCtrlSel; _26 = (long unsigned int) _25; _27 = _26 << 14; _28 = _27 & 16384; pinsValues_61 = _28 | pinsValues_60; # DEBUG pinsValues => pinsValues_61 # DEBUG BEGIN_STMT _29 = config_54(D)->safeMode; _30 = (long unsigned int) _29; _31 = _30 << 5; _32 = _31 & 32; pinsValues_62 = _32 | pinsValues_61; # DEBUG pinsValues => pinsValues_62 # DEBUG BEGIN_STMT _33 = config_54(D)->mux; _51 = _33 & 7; _34 = (long unsigned int) _51; pinsValues_63 = _34 | pinsValues_62; # DEBUG pinsValues => pinsValues_63 # DEBUG BEGIN_STMT if (_33 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 175430467]: if (_5 == 1) goto ; [20.24%] else goto ; [79.76%] [local count: 35507127]: # DEBUG BEGIN_STMT _35 = config_54(D)->pinPortIdx; _36 = (short unsigned int) _35; _37 = config_54(D)->initValue; Siul2_Port_Ip_SetGPDO (0, _36, _37); [local count: 350860935]: # DEBUG BEGIN_STMT _38 = config_54(D)->base; _39 = config_54(D)->pinPortIdx; _38->MSCR[_39] ={v} pinsValues_63; # DEBUG BEGIN_STMT _40 = config_54(D)->inputBuffer; if (_40 == 1) goto ; [34.00%] else goto ; [66.00%] [local count: 119292718]: goto ; [100.00%] [local count: 954449108]: # DEBUG BEGIN_STMT _41 = (int) inputMuxIterator_46; _42 = config_54(D)->inputMux[_41]; if (_42 != 16) goto ; [66.00%] else goto ; [34.00%] [local count: 629936411]: # DEBUG BEGIN_STMT imcrRegIdx_66 = config_54(D)->inputMuxReg[_41]; # DEBUG imcrRegIdx => imcrRegIdx_66 # DEBUG BEGIN_STMT # DEBUG imcrBase => 1076428800B # DEBUG BEGIN_STMT _43 = imcrRegIdx_66 & 511; _52 = _42 & 15; _44 = (long unsigned int) _52; MEM[(struct SIUL2_Type *)1076428800B].IMCR[_43] ={v} _44; [local count: 954449108]: # DEBUG imcrBase => 1076428800B # DEBUG BEGIN_STMT inputMuxIterator_68 = inputMuxIterator_46 + 1; # DEBUG inputMuxIterator => inputMuxIterator_68 [local count: 1073741824]: # inputMuxIterator_46 = PHI # DEBUG imcrBase => 1076428800B # DEBUG inputMuxIterator => inputMuxIterator_46 # DEBUG BEGIN_STMT if (inputMuxIterator_46 != 8) goto ; [88.89%] else goto ; [11.11%] [local count: 350860934]: return; }