• Rob Pike's avatar
    cmd/internal/obj: make Dconv a portable top-level function · 29421cbb
    Rob Pike authored
    Each architecture had its own Dconv (operand printer) but the syntax is
    close to uniform and the code overlap was considerable. Consolidate these
    into a single top-level function. A similar but smaller unification is done
    for Mconv ("Name" formatter) as well.
    
    The signature is changed. The flag was unused so drop it. Add a
    function argument, Rconv, that must be supplied by the caller.
    TODO: A future change will unify Rconv as well and this argument
    will go away.
    
    Some formats changed, because of the automatic consistency
    created by unification. For instance, 0(R1) always prints as (R1)
    now, and foo+0(SB) is just foo(SB). Before, some made these
    simplifications and some didn't; now they all do.
    
    Update the asm tests that depend on the format.
    
    Change-Id: I6e3310bc19814c0c784ff0b960a154521acd9532
    Reviewed-on: https://go-review.googlesource.com/5920Reviewed-by: default avatarRuss Cox <rsc@golang.org>
    29421cbb
arch.go 12.7 KB