(self, action, addr, addrs)
return variable
Create a SimStackVariable or SimMemoryVariable based on action objects and its address.

        :param SimAction action: The action to work with.
        :param int addr:         The address of the memory variable in creation.
        :param list addrs:       A list of all addresses that the action was effective on.
        :return:
Create a SimStackVariable or SimMemoryVariable based on action objects and its address.
Create a SimStackVariable or SimMemoryVariable based on action objects and its address .
def _create_memory_variable(self, action, addr, addrs):
        """
        Create a SimStackVariable or SimMemoryVariable based on action objects and its address.

        :param SimAction action: The action to work with.
        :param int addr:         The address of the memory variable in creation.
        :param list addrs:       A list of all addresses that the action was effective on.
        :return:
        """

        variable = None
        if len(addrs) == 1 and len(action.addr.tmp_deps) == 1:
            addr_tmp = list(action.addr.tmp_deps)[0]
            if addr_tmp in self._temp_register_symbols:
                # it must be a stack variable
                sort, offset = self._temp_register_symbols[addr_tmp]
                base_addr = addr - offset
                if base_addr < 0:
                    base_addr += (1 << self.project.arch.bits)
                variable = SimStackVariable(offset, action.size.ast // 8, base=sort, base_addr=base_addr)

        if variable is None:
            variable = SimMemoryVariable(addr, action.size.ast // 8)

        return variable
def _create_memory_variable ( self , action , addr , addrs ) : variable = None if len ( addrs ) == 1 and len ( action . addr . tmp_deps ) == 1 : addr_tmp = list ( action . addr . tmp_deps ) [ 0 ] if addr_tmp in self . _temp_register_symbols : # it must be a stack variable sort , offset = self . _temp_register_symbols [ addr_tmp ] base_addr = addr - offset if base_addr < 0 : base_addr += ( 1 << self . project . arch . bits ) variable = SimStackVariable ( offset , action . size . ast // 8 , base = sort , base_addr = base_addr ) if variable is None : variable = SimMemoryVariable ( addr , action . size . ast // 8 ) return variable