Marking local functions: Marking externally visible functions: vPortGetHeapStats vPortInitialiseBlocks xPortGetMinimumEverFreeHeapSize xPortGetFreeHeapSize vPortFree pvPortMalloc Marking externally visible variables: Reclaiming functions: Reclaiming variables: Clearing address taken flags: Symbol table: vPortExitCritical/24 (vPortExitCritical) @06becee0 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: vPortGetHeapStats/20 Calls: vPortEnterCritical/23 (vPortEnterCritical) @06becd20 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: vPortGetHeapStats/20 Calls: xTaskResumeAll/22 (xTaskResumeAll) @06bec380 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: vPortGetHeapStats/20 vPortFree/14 pvPortMalloc/13 Calls: vTaskSuspendAll/21 (vTaskSuspendAll) @06bec1c0 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: vPortGetHeapStats/20 vPortFree/14 pvPortMalloc/13 Calls: vPortGetHeapStats/20 (vPortGetHeapStats) @06bdd2a0 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: xStart/6 (read)pxEnd/7 (read)xFreeBytesRemaining/8 (read)xNumberOfSuccessfulAllocations/10 (read)xNumberOfSuccessfulFrees/11 (read)xMinimumEverFreeBytesRemaining/9 (read) Referring: Availability: available Function flags: body Called by: Calls: vPortExitCritical/24 vPortEnterCritical/23 xTaskResumeAll/22 vTaskSuspendAll/21 prvInsertBlockIntoFreeList/19 (prvInsertBlockIntoFreeList) @06bddee0 Type: function definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: xStart/6 (addr)pxEnd/7 (read)pxEnd/7 (read) Referring: Availability: available Function flags: body Called by: vPortFree/14 pvPortMalloc/13 Calls: prvHeapInit/18 (prvHeapInit) @06bddc40 Type: function definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: ucHeap/4 (addr)ucHeap/4 (addr)xStart/6 (write)xStart/6 (write)pxEnd/7 (write)pxEnd/7 (read)pxEnd/7 (read)pxEnd/7 (read)xMinimumEverFreeBytesRemaining/9 (write)xFreeBytesRemaining/8 (write)xBlockAllocatedBit/12 (write) Referring: Availability: available Function flags: body Called by: pvPortMalloc/13 Calls: vPortInitialiseBlocks/17 (vPortInitialiseBlocks) @06bdd9a0 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: Referring: Availability: available Function flags: body Called by: Calls: xPortGetMinimumEverFreeHeapSize/16 (xPortGetMinimumEverFreeHeapSize) @06bdd700 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: xMinimumEverFreeBytesRemaining/9 (read) Referring: Availability: available Function flags: body Called by: Calls: xPortGetFreeHeapSize/15 (xPortGetFreeHeapSize) @06bdd460 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: xFreeBytesRemaining/8 (read) Referring: Availability: available Function flags: body Called by: Calls: vPortFree/14 (vPortFree) @06bdd1c0 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: xBlockAllocatedBit/12 (read)xBlockAllocatedBit/12 (read)xBlockAllocatedBit/12 (read)xFreeBytesRemaining/8 (read)xFreeBytesRemaining/8 (write)xNumberOfSuccessfulFrees/11 (read)xNumberOfSuccessfulFrees/11 (write) Referring: Availability: available Function flags: body Called by: Calls: xTaskResumeAll/22 prvInsertBlockIntoFreeList/19 vTaskSuspendAll/21 pvPortMalloc/13 (pvPortMalloc) @06bd7e00 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: pxEnd/7 (read)xBlockAllocatedBit/12 (read)xFreeBytesRemaining/8 (read)xStart/6 (addr)xStart/6 (read)pxEnd/7 (read)xFreeBytesRemaining/8 (read)xFreeBytesRemaining/8 (write)xFreeBytesRemaining/8 (read)xMinimumEverFreeBytesRemaining/9 (read)xFreeBytesRemaining/8 (read)xMinimumEverFreeBytesRemaining/9 (write)xBlockAllocatedBit/12 (read)xNumberOfSuccessfulAllocations/10 (read)xNumberOfSuccessfulAllocations/10 (write) Referring: Availability: available Function flags: body Called by: Calls: xTaskResumeAll/22 prvInsertBlockIntoFreeList/19 prvHeapInit/18 vTaskSuspendAll/21 xBlockAllocatedBit/12 (xBlockAllocatedBit) @06c27678 Type: variable definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: prvHeapInit/18 (write)pvPortMalloc/13 (read)pvPortMalloc/13 (read)vPortFree/14 (read)vPortFree/14 (read)vPortFree/14 (read) Availability: available Varpool flags: initialized xNumberOfSuccessfulFrees/11 (xNumberOfSuccessfulFrees) @06c275e8 Type: variable definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: vPortFree/14 (write)vPortFree/14 (read)vPortGetHeapStats/20 (read) Availability: available Varpool flags: initialized xNumberOfSuccessfulAllocations/10 (xNumberOfSuccessfulAllocations) @06c275a0 Type: variable definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: pvPortMalloc/13 (write)pvPortMalloc/13 (read)vPortGetHeapStats/20 (read) Availability: available Varpool flags: initialized xMinimumEverFreeBytesRemaining/9 (xMinimumEverFreeBytesRemaining) @06c27558 Type: variable definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: pvPortMalloc/13 (write)xPortGetMinimumEverFreeHeapSize/16 (read)prvHeapInit/18 (write)pvPortMalloc/13 (read)vPortGetHeapStats/20 (read) Availability: available Varpool flags: initialized xFreeBytesRemaining/8 (xFreeBytesRemaining) @06c27510 Type: variable definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: pvPortMalloc/13 (read)prvHeapInit/18 (write)pvPortMalloc/13 (read)vPortFree/14 (write)xPortGetFreeHeapSize/15 (read)pvPortMalloc/13 (read)pvPortMalloc/13 (read)pvPortMalloc/13 (write)vPortFree/14 (read)vPortGetHeapStats/20 (read) Availability: available Varpool flags: initialized pxEnd/7 (pxEnd) @06c27480 Type: variable definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: prvHeapInit/18 (read)prvHeapInit/18 (read)prvInsertBlockIntoFreeList/19 (read)prvInsertBlockIntoFreeList/19 (read)pvPortMalloc/13 (read)prvHeapInit/18 (write)prvHeapInit/18 (read)pvPortMalloc/13 (read)vPortGetHeapStats/20 (read) Availability: available Varpool flags: initialized xStart/6 (xStart) @06c273f0 Type: variable definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: prvHeapInit/18 (write)prvHeapInit/18 (write)pvPortMalloc/13 (read)prvInsertBlockIntoFreeList/19 (addr)pvPortMalloc/13 (addr)vPortGetHeapStats/20 (read) Availability: available Varpool flags: xHeapStructSize/5 (xHeapStructSize) @06c27360 Type: variable definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: Availability: available Varpool flags: initialized read-only const-value-known ucHeap/4 (ucHeap) @06c27120 Type: variable definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: prvHeapInit/18 (addr)prvHeapInit/18 (addr) Availability: available Varpool flags: vPortGetHeapStats (struct HeapStats_t * pxHeapStats) { size_t xMinSize; size_t xMaxSize; size_t xBlocks; struct BlockLink_t * pxBlock; unsigned int _1; unsigned int _2; struct BlockLink_t * pxEnd.32_3; unsigned int xFreeBytesRemaining.33_4; unsigned int xNumberOfSuccessfulAllocations.34_5; unsigned int xNumberOfSuccessfulFrees.35_6; unsigned int xMinimumEverFreeBytesRemaining.36_7; : xBlocks_17 = 0; xMaxSize_18 = 0; xMinSize_19 = 4294967295; vTaskSuspendAll (); pxBlock_22 = xStart.pxNextFreeBlock; if (pxBlock_22 != 0B) goto ; [INV] else goto ; [INV] : # pxBlock_8 = PHI # xBlocks_9 = PHI # xMaxSize_11 = PHI # xMinSize_14 = PHI xBlocks_23 = xBlocks_9 + 1; _1 = pxBlock_8->xBlockSize; if (xMaxSize_11 < _1) goto ; [INV] else goto ; [INV] : xMaxSize_24 = pxBlock_8->xBlockSize; : # xMaxSize_12 = PHI _2 = pxBlock_8->xBlockSize; if (xMinSize_14 > _2) goto ; [INV] else goto ; [INV] : xMinSize_25 = pxBlock_8->xBlockSize; : # xMinSize_15 = PHI pxBlock_26 = pxBlock_8->pxNextFreeBlock; pxEnd.32_3 = pxEnd; if (pxBlock_26 != pxEnd.32_3) goto ; [INV] else goto ; [INV] : # xBlocks_10 = PHI # xMaxSize_13 = PHI # xMinSize_16 = PHI xTaskResumeAll (); pxHeapStats_28(D)->xSizeOfLargestFreeBlockInBytes = xMaxSize_13; pxHeapStats_28(D)->xSizeOfSmallestFreeBlockInBytes = xMinSize_16; pxHeapStats_28(D)->xNumberOfFreeBlocks = xBlocks_10; vPortEnterCritical (); xFreeBytesRemaining.33_4 = xFreeBytesRemaining; pxHeapStats_28(D)->xAvailableHeapSpaceInBytes = xFreeBytesRemaining.33_4; xNumberOfSuccessfulAllocations.34_5 = xNumberOfSuccessfulAllocations; pxHeapStats_28(D)->xNumberOfSuccessfulAllocations = xNumberOfSuccessfulAllocations.34_5; xNumberOfSuccessfulFrees.35_6 = xNumberOfSuccessfulFrees; pxHeapStats_28(D)->xNumberOfSuccessfulFrees = xNumberOfSuccessfulFrees.35_6; xMinimumEverFreeBytesRemaining.36_7 = xMinimumEverFreeBytesRemaining; pxHeapStats_28(D)->xMinimumEverFreeBytesRemaining = xMinimumEverFreeBytesRemaining.36_7; vPortExitCritical (); return; } prvInsertBlockIntoFreeList (struct BlockLink_t * pxBlockToInsert) { uint8_t * puc; struct BlockLink_t * pxIterator; struct A_BLOCK_LINK * _1; unsigned int _2; uint8_t * _3; unsigned int _4; unsigned int _5; unsigned int _6; unsigned int _7; uint8_t * _8; struct A_BLOCK_LINK * _9; struct A_BLOCK_LINK * _10; struct BlockLink_t * pxEnd.30_11; unsigned int _12; struct A_BLOCK_LINK * _13; unsigned int _14; unsigned int _15; struct A_BLOCK_LINK * _16; struct A_BLOCK_LINK * _17; struct BlockLink_t * pxEnd.31_18; struct A_BLOCK_LINK * _19; : pxIterator_25 = &xStart; goto ; [INV] : pxIterator_37 = pxIterator_21->pxNextFreeBlock; : # pxIterator_21 = PHI _1 = pxIterator_21->pxNextFreeBlock; if (pxBlockToInsert_27(D) > _1) goto ; [INV] else goto ; [INV] : puc_28 = pxIterator_21; _2 = pxIterator_21->xBlockSize; _3 = puc_28 + _2; if (pxBlockToInsert_27(D) == _3) goto ; [INV] else goto ; [INV] : _4 = pxIterator_21->xBlockSize; _5 = pxBlockToInsert_27(D)->xBlockSize; _6 = _4 + _5; pxIterator_21->xBlockSize = _6; pxBlockToInsert_30 = pxIterator_21; : # pxBlockToInsert_20 = PHI puc_31 = pxBlockToInsert_20; _7 = pxBlockToInsert_20->xBlockSize; _8 = puc_31 + _7; _9 = pxIterator_21->pxNextFreeBlock; if (_8 == _9) goto ; [INV] else goto ; [INV] : _10 = pxIterator_21->pxNextFreeBlock; pxEnd.30_11 = pxEnd; if (_10 != pxEnd.30_11) goto ; [INV] else goto ; [INV] : _12 = pxBlockToInsert_20->xBlockSize; _13 = pxIterator_21->pxNextFreeBlock; _14 = _13->xBlockSize; _15 = _12 + _14; pxBlockToInsert_20->xBlockSize = _15; _16 = pxIterator_21->pxNextFreeBlock; _17 = _16->pxNextFreeBlock; pxBlockToInsert_20->pxNextFreeBlock = _17; goto ; [INV] : pxEnd.31_18 = pxEnd; pxBlockToInsert_20->pxNextFreeBlock = pxEnd.31_18; goto ; [INV] : _19 = pxIterator_21->pxNextFreeBlock; pxBlockToInsert_20->pxNextFreeBlock = _19; : if (pxIterator_21 != pxBlockToInsert_20) goto ; [INV] else goto ; [INV] : pxIterator_21->pxNextFreeBlock = pxBlockToInsert_20; : return; } prvHeapInit () { size_t xTotalHeapSize; size_t uxAddress; uint8_t * pucAlignedHeap; struct BlockLink_t * pxFirstFreeBlock; unsigned int _1; unsigned int _2; unsigned int ucHeap.22_3; unsigned int pucAlignedHeap.23_4; unsigned int xHeapStructSize.24_5; struct BlockLink_t * uxAddress.25_6; struct BlockLink_t * pxEnd.26_7; struct BlockLink_t * pxEnd.27_8; unsigned int pxFirstFreeBlock.28_9; unsigned int _10; struct BlockLink_t * pxEnd.29_11; unsigned int _12; unsigned int _13; : xTotalHeapSize_16 = 8192; uxAddress_17 = (size_t) &ucHeap; _1 = uxAddress_17 & 7; if (_1 != 0) goto ; [INV] else goto ; [INV] : uxAddress_18 = uxAddress_17 + 7; uxAddress_19 = uxAddress_18 & 4294967288; _2 = xTotalHeapSize_16 - uxAddress_19; ucHeap.22_3 = (unsigned int) &ucHeap; xTotalHeapSize_20 = _2 + ucHeap.22_3; : # uxAddress_14 = PHI # xTotalHeapSize_15 = PHI pucAlignedHeap_21 = (uint8_t *) uxAddress_14; xStart.pxNextFreeBlock = pucAlignedHeap_21; xStart.xBlockSize = 0; pucAlignedHeap.23_4 = (unsigned int) pucAlignedHeap_21; uxAddress_25 = xTotalHeapSize_15 + pucAlignedHeap.23_4; xHeapStructSize.24_5 = 8; uxAddress_26 = uxAddress_25 - xHeapStructSize.24_5; uxAddress_27 = uxAddress_26 & 4294967288; uxAddress.25_6 = (struct BlockLink_t *) uxAddress_27; pxEnd = uxAddress.25_6; pxEnd.26_7 = pxEnd; pxEnd.26_7->xBlockSize = 0; pxEnd.27_8 = pxEnd; pxEnd.27_8->pxNextFreeBlock = 0B; pxFirstFreeBlock_31 = pucAlignedHeap_21; pxFirstFreeBlock.28_9 = (unsigned int) pxFirstFreeBlock_31; _10 = uxAddress_27 - pxFirstFreeBlock.28_9; pxFirstFreeBlock_31->xBlockSize = _10; pxEnd.29_11 = pxEnd; pxFirstFreeBlock_31->pxNextFreeBlock = pxEnd.29_11; _12 = pxFirstFreeBlock_31->xBlockSize; xMinimumEverFreeBytesRemaining = _12; _13 = pxFirstFreeBlock_31->xBlockSize; xFreeBytesRemaining = _13; xBlockAllocatedBit = 2147483648; return; } vPortInitialiseBlocks () { : return; } xPortGetMinimumEverFreeHeapSize () { size_t D.6339; size_t _2; : _2 = xMinimumEverFreeBytesRemaining; : : return _2; } xPortGetFreeHeapSize () { size_t D.6337; size_t _2; : _2 = xFreeBytesRemaining; : : return _2; } vPortFree (void * pv) { uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; struct BlockLink_t * pxLink; uint8_t * puc; unsigned int xHeapStructSize.16_1; sizetype _2; unsigned int _3; unsigned int xBlockAllocatedBit.17_4; unsigned int _5; struct A_BLOCK_LINK * _6; unsigned int _7; unsigned int xBlockAllocatedBit.18_8; unsigned int _9; struct A_BLOCK_LINK * _10; unsigned int _11; unsigned int xBlockAllocatedBit.19_12; unsigned int _13; unsigned int _14; unsigned int _15; unsigned int xFreeBytesRemaining.20_16; unsigned int _17; unsigned int xNumberOfSuccessfulFrees.21_18; unsigned int _19; : puc_22 = pv_21(D); if (pv_21(D) != 0B) goto ; [INV] else goto ; [INV] : xHeapStructSize.16_1 = 8; _2 = -xHeapStructSize.16_1; puc_24 = puc_22 + _2; pxLink_25 = puc_24; _3 = pxLink_25->xBlockSize; xBlockAllocatedBit.17_4 = xBlockAllocatedBit; _5 = _3 & xBlockAllocatedBit.17_4; if (_5 == 0) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_32 : "i" 16 : "memory"); : : goto ; [INV] : _6 = pxLink_25->pxNextFreeBlock; if (_6 != 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_33 : "i" 16 : "memory"); : : goto ; [INV] : _7 = pxLink_25->xBlockSize; xBlockAllocatedBit.18_8 = xBlockAllocatedBit; _9 = _7 & xBlockAllocatedBit.18_8; if (_9 != 0) goto ; [INV] else goto ; [INV] : _10 = pxLink_25->pxNextFreeBlock; if (_10 == 0B) goto ; [INV] else goto ; [INV] : _11 = pxLink_25->xBlockSize; xBlockAllocatedBit.19_12 = xBlockAllocatedBit; _13 = ~xBlockAllocatedBit.19_12; _14 = _11 & _13; pxLink_25->xBlockSize = _14; vTaskSuspendAll (); _15 = pxLink_25->xBlockSize; xFreeBytesRemaining.20_16 = xFreeBytesRemaining; _17 = _15 + xFreeBytesRemaining.20_16; xFreeBytesRemaining = _17; prvInsertBlockIntoFreeList (pxLink_25); xNumberOfSuccessfulFrees.21_18 = xNumberOfSuccessfulFrees; _19 = xNumberOfSuccessfulFrees.21_18 + 1; xNumberOfSuccessfulFrees = _19; xTaskResumeAll (); : return; } pvPortMalloc (size_t xWantedSize) { uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; void * pvReturn; struct BlockLink_t * pxNewBlockLink; struct BlockLink_t * pxPreviousBlock; struct BlockLink_t * pxBlock; void * D.6323; struct BlockLink_t * pxEnd.0_1; unsigned int xBlockAllocatedBit.1_2; unsigned int _3; unsigned int xHeapStructSize.2_4; unsigned int _5; unsigned int xHeapStructSize.3_6; unsigned int _7; unsigned int _8; unsigned int _9; unsigned int _10; unsigned int _11; unsigned int xFreeBytesRemaining.4_12; unsigned int _13; struct A_BLOCK_LINK * _14; struct BlockLink_t * pxEnd.5_15; struct A_BLOCK_LINK * _16; unsigned int xHeapStructSize.6_17; struct A_BLOCK_LINK * _18; unsigned int _19; unsigned int _20; unsigned int xHeapStructSize.7_21; unsigned int _22; unsigned int pxNewBlockLink.8_23; unsigned int _24; unsigned int _25; unsigned int _26; unsigned int xFreeBytesRemaining.9_27; unsigned int _28; unsigned int _29; unsigned int xFreeBytesRemaining.10_30; unsigned int xMinimumEverFreeBytesRemaining.11_31; unsigned int xFreeBytesRemaining.12_32; unsigned int _33; unsigned int xBlockAllocatedBit.13_34; unsigned int _35; unsigned int xNumberOfSuccessfulAllocations.14_36; unsigned int _37; unsigned int pvReturn.15_38; unsigned int _39; void * _74; : pvReturn_49 = 0B; vTaskSuspendAll (); pxEnd.0_1 = pxEnd; if (pxEnd.0_1 == 0B) goto ; [INV] else goto ; [INV] : prvHeapInit (); : xBlockAllocatedBit.1_2 = xBlockAllocatedBit; _3 = xWantedSize_53(D) & xBlockAllocatedBit.1_2; if (_3 == 0) goto ; [INV] else goto ; [INV] : if (xWantedSize_53(D) != 0) goto ; [INV] else goto ; [INV] : xHeapStructSize.2_4 = 8; _5 = xWantedSize_53(D) + xHeapStructSize.2_4; if (xWantedSize_53(D) < _5) goto ; [INV] else goto ; [INV] : xHeapStructSize.3_6 = 8; xWantedSize_54 = xWantedSize_53(D) + xHeapStructSize.3_6; _7 = xWantedSize_54 & 7; if (_7 != 0) goto ; [INV] else goto ; [INV] : _8 = xWantedSize_54 & 4294967288; _9 = _8 + 8; if (xWantedSize_54 < _9) goto ; [INV] else goto ; [INV] : _10 = xWantedSize_54 & 4294967288; xWantedSize_56 = _10 + 8; _11 = xWantedSize_56 & 7; if (_11 != 0) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_75 : "i" 16 : "memory"); : : goto ; [INV] : xWantedSize_55 = 0; : # xWantedSize_40 = PHI goto ; [INV] : xWantedSize_57 = 0; : # xWantedSize_41 = PHI if (xWantedSize_41 != 0) goto ; [INV] else goto ; [INV] : xFreeBytesRemaining.4_12 = xFreeBytesRemaining; if (xWantedSize_41 <= xFreeBytesRemaining.4_12) goto ; [INV] else goto ; [INV] : pxPreviousBlock_58 = &xStart; pxBlock_59 = xStart.pxNextFreeBlock; goto ; [INV] : pxPreviousBlock_60 = pxBlock_42; pxBlock_61 = pxBlock_42->pxNextFreeBlock; : # pxBlock_42 = PHI # pxPreviousBlock_43 = PHI _13 = pxBlock_42->xBlockSize; if (xWantedSize_41 > _13) goto ; [INV] else goto ; [INV] : _14 = pxBlock_42->pxNextFreeBlock; if (_14 != 0B) goto ; [INV] else goto ; [INV] : pxEnd.5_15 = pxEnd; if (pxBlock_42 != pxEnd.5_15) goto ; [INV] else goto ; [INV] : _16 = pxPreviousBlock_43->pxNextFreeBlock; xHeapStructSize.6_17 = 8; pvReturn_62 = _16 + xHeapStructSize.6_17; _18 = pxBlock_42->pxNextFreeBlock; pxPreviousBlock_43->pxNextFreeBlock = _18; _19 = pxBlock_42->xBlockSize; _20 = _19 - xWantedSize_41; xHeapStructSize.7_21 = 8; _22 = xHeapStructSize.7_21 << 1; if (_20 > _22) goto ; [INV] else goto ; [INV] : pxNewBlockLink_64 = pxBlock_42 + xWantedSize_41; pxNewBlockLink.8_23 = (unsigned int) pxNewBlockLink_64; _24 = pxNewBlockLink.8_23 & 7; if (_24 != 0) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_76 : "i" 16 : "memory"); : : goto ; [INV] : _25 = pxBlock_42->xBlockSize; _26 = _25 - xWantedSize_41; pxNewBlockLink_64->xBlockSize = _26; pxBlock_42->xBlockSize = xWantedSize_41; prvInsertBlockIntoFreeList (pxNewBlockLink_64); : xFreeBytesRemaining.9_27 = xFreeBytesRemaining; _28 = pxBlock_42->xBlockSize; _29 = xFreeBytesRemaining.9_27 - _28; xFreeBytesRemaining = _29; xFreeBytesRemaining.10_30 = xFreeBytesRemaining; xMinimumEverFreeBytesRemaining.11_31 = xMinimumEverFreeBytesRemaining; if (xFreeBytesRemaining.10_30 < xMinimumEverFreeBytesRemaining.11_31) goto ; [INV] else goto ; [INV] : xFreeBytesRemaining.12_32 = xFreeBytesRemaining; xMinimumEverFreeBytesRemaining = xFreeBytesRemaining.12_32; : _33 = pxBlock_42->xBlockSize; xBlockAllocatedBit.13_34 = xBlockAllocatedBit; _35 = _33 | xBlockAllocatedBit.13_34; pxBlock_42->xBlockSize = _35; pxBlock_42->pxNextFreeBlock = 0B; xNumberOfSuccessfulAllocations.14_36 = xNumberOfSuccessfulAllocations; _37 = xNumberOfSuccessfulAllocations.14_36 + 1; xNumberOfSuccessfulAllocations = _37; : # pvReturn_44 = PHI xTaskResumeAll (); pvReturn.15_38 = (unsigned int) pvReturn_44; _39 = pvReturn.15_38 & 7; if (_39 != 0) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_77 : "i" 16 : "memory"); : : goto ; [INV] : _74 = pvReturn_44; : : return _74; }