diff options
Diffstat (limited to 'src/cmd/asm/internal')
| -rw-r--r-- | src/cmd/asm/internal/asm/asm.go | 5 | ||||
| -rw-r--r-- | src/cmd/asm/internal/asm/testdata/loong64enc1.s | 3 | ||||
| -rw-r--r-- | src/cmd/asm/internal/asm/testdata/loong64enc5.s | 5 |
3 files changed, 10 insertions, 3 deletions
diff --git a/src/cmd/asm/internal/asm/asm.go b/src/cmd/asm/internal/asm/asm.go index c8ad5d28e1..9a6e22cab2 100644 --- a/src/cmd/asm/internal/asm/asm.go +++ b/src/cmd/asm/internal/asm/asm.go @@ -676,6 +676,11 @@ func (p *Parser) asmInstruction(op obj.As, cond string, a []obj.Addr) { prog.From = a[0] prog.To = a[1] prog.RegTo2 = a[2].Reg + + case arch.IsLoong64PRELD(op): + prog.From = a[0] + prog.AddRestSourceArgs([]obj.Addr{a[1], a[2]}) + default: prog.From = a[0] prog.Reg = p.getRegister(prog, op, &a[1]) diff --git a/src/cmd/asm/internal/asm/testdata/loong64enc1.s b/src/cmd/asm/internal/asm/testdata/loong64enc1.s index d5e9b6c899..bfff555782 100644 --- a/src/cmd/asm/internal/asm/testdata/loong64enc1.s +++ b/src/cmd/asm/internal/asm/testdata/loong64enc1.s @@ -1035,6 +1035,3 @@ lable2: PRELD (R4), $0 // 8000c02a PRELD -1(R4), $8 // 88fcff2a PRELD 8(R4), $31 // 9f20c02a - PRELDX (R4)(R5), $0 // 80142c38 - PRELDX (R4)(R6), $8 // 88182c38 - PRELDX (R4)(R7), $31 // 9f1c2c38 diff --git a/src/cmd/asm/internal/asm/testdata/loong64enc5.s b/src/cmd/asm/internal/asm/testdata/loong64enc5.s index 423e5c3b01..b7ecd6b63b 100644 --- a/src/cmd/asm/internal/asm/testdata/loong64enc5.s +++ b/src/cmd/asm/internal/asm/testdata/loong64enc5.s @@ -15,3 +15,8 @@ TEXT asmtest(SB),DUPOK|NOSPLIT,$0 AND $0xfedcba9876543210, R4 // AND $-81985529216486896, R4 // 7ea8ec14de4388031e539717deb73f0384f81400 AND $0xfedcba9876543210, R5, R4 // AND $-81985529216486896, R5, R4 // 7ea8ec14de4388031e539717deb73f03a4f81400 + PRELDX 0(R7), $0x80001021, $0 // PRELDX (R7), $2147487777, $0 // 1e020014de0380031e000016de130003e0782c38 + PRELDX -1(R7), $0x1021, $2 // PRELDX -1(R7), $4129, $2 // fe030014deffbf031e000016de030003e2782c38 + PRELDX 8(R7), $0x80100800, $31 // PRELDX 8(R7), $2148534272, $31 // 1ee00714de238003fe1f0016de130003ff782c38 + PRELDX 16(R7), $0x202040, $1 // PRELDX 16(R7), $2105408, $1 // 1e200014de4380033e000216de030003e1782c38 + |
