def METHOD_NAME(self, align_bits):
    ''' align this region up to a given number of bits '''
    new_base = hardware.utils.align_up(self.base, align_bits)
    diff = new_base - self.base
    if self.size < diff:
        raise ValueError(
            'can''t align region base to {} bits, {} too small'.format(
                align_bits, self))
    # This could become an empty region now. We don't care, the caller has
    # to check if this region still fits its needs.
    return Region(new_base, self.size - diff, self.owner)