diff options
Diffstat (limited to 'src/cmd/internal/obj')
| -rw-r--r-- | src/cmd/internal/obj/loong64/a.out.go | 4 | ||||
| -rw-r--r-- | src/cmd/internal/obj/loong64/anames.go | 2 | ||||
| -rw-r--r-- | src/cmd/internal/obj/loong64/asm.go | 6 |
3 files changed, 12 insertions, 0 deletions
diff --git a/src/cmd/internal/obj/loong64/a.out.go b/src/cmd/internal/obj/loong64/a.out.go index 7c20df3b2d..60b0a62180 100644 --- a/src/cmd/internal/obj/loong64/a.out.go +++ b/src/cmd/internal/obj/loong64/a.out.go @@ -385,6 +385,10 @@ const ( AMOVVF AMOVVD + // 2.2.1.8 + AORN + AANDN + // 2.2.7. Atomic Memory Access Instructions AAMSWAPB AAMSWAPH diff --git a/src/cmd/internal/obj/loong64/anames.go b/src/cmd/internal/obj/loong64/anames.go index ed3d5b25ce..ddf13eec6e 100644 --- a/src/cmd/internal/obj/loong64/anames.go +++ b/src/cmd/internal/obj/loong64/anames.go @@ -127,6 +127,8 @@ var Anames = []string{ "MOVDV", "MOVVF", "MOVVD", + "ORN", + "ANDN", "AMSWAPB", "AMSWAPH", "AMSWAPW", diff --git a/src/cmd/internal/obj/loong64/asm.go b/src/cmd/internal/obj/loong64/asm.go index 261e4a13c8..4e5bc15d33 100644 --- a/src/cmd/internal/obj/loong64/asm.go +++ b/src/cmd/internal/obj/loong64/asm.go @@ -1100,6 +1100,8 @@ func buildop(ctxt *obj.Link) { case AAND: opset(AOR, r0) opset(AXOR, r0) + opset(AORN, r0) + opset(AANDN, r0) case ABEQ: opset(ABNE, r0) @@ -1858,6 +1860,10 @@ func (c *ctxt0) oprrr(a obj.As) uint32 { return 0x2a << 15 case AXOR: return 0x2b << 15 + case AORN: + return 0x2c << 15 // orn + case AANDN: + return 0x2d << 15 // andn case ASUB: return 0x22 << 15 case ASUBU, ANEGW: |
