• diaxu01's avatar
    cmd/internal/obj/arm64: add error checking for system registers. · 9ce5cad0
    diaxu01 authored
    This CL adds system register error checking test cases. There're two kinds of
    error test cases:
    
    1. illegal combination.
    MRS should be used in this way: MRS <system register>, <general register>.
    MSR should be used in this way: MSR <general register>, <system register>.
    Error usage examples:
    MRS     R8, VTCR_EL2    // ERROR "illegal combination"
    MSR     VTCR_EL2, R8    // ERROR "illegal combination"
    
    2. illegal read or write access.
    Error usage examples:
    MSR     R7, MIDR_EL1    // ERROR "expected writable system register or pstate"
    MRS     OSLAR_EL1, R3   // ERROR "expected readable system register"
    
    This CL reads system registers readable and writeable property to check whether
    they're used with legal read or write access. This property is named AccessFlags
    in sysRegEnc.go, and it is automatically generated by modifing the system register
    generator.
    
    Change-Id: Ic83d5f372de38d1ecd0df1ca56b354ee157f16b4
    Reviewed-on: https://go-review.googlesource.com/c/go/+/194917Reviewed-by: default avatarCherry Zhang <cherryyz@google.com>
    Run-TryBot: Cherry Zhang <cherryyz@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    9ce5cad0
list7.go 6.76 KB