def METHOD_NAME(
    self,
    bus=0,
    device=0,
    function=0,
    register=0,
    space=0,
    aliased=0,
    prefetchable=0,
    relocatable=0,
    addr=0,
):
    busf = bus & 0xFF
    devicef = device & 0x1F
    functionf = function & 0x7
    registerf = register & 0xFF
    spacef = space & 0x3
    aliasedf = aliased & 0x1
    prefetchablef = prefetchable & 0x1
    relocatablef = relocatable & 0x1
    if (
        busf != bus
        or devicef != device
        or functionf != function
        or registerf != register
        or spacef != space
        or aliasedf != aliased
        or prefetchablef != prefetchable
        or relocatablef != relocatable
    ):
        fatal("One of the fields for the PCI address is out of bounds")
    address = (
        registerf
        | (functionf << 8)
        | (devicef << 11)
        | (busf << 16)
        | (spacef << 24)
        | (aliasedf << 29)
        | (prefetchablef << 30)
        | (relocatablef << 31)
    )
    low_addr = addr & 0xFFFFFFFF
    high_addr = (addr >> 32) & 0xFFFFFFFF
    return [address, high_addr, low_addr]