diff options
Diffstat (limited to 'src/cmd/asm/internal/asm/testdata/386enc.s')
-rw-r--r-- | src/cmd/asm/internal/asm/testdata/386enc.s | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/cmd/asm/internal/asm/testdata/386enc.s b/src/cmd/asm/internal/asm/testdata/386enc.s new file mode 100644 index 0000000..4af6de3 --- /dev/null +++ b/src/cmd/asm/internal/asm/testdata/386enc.s @@ -0,0 +1,37 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +#include "../../../../../runtime/textflag.h" + +TEXT asmtest(SB),DUPOK|NOSPLIT,$0 + // Instructions that were encoded with BYTE sequences. + // Included to simplify validation of CL that fixed that. + MOVQ (AX), M0 // 0f6f00 + MOVQ M0, 8(SP) // 0f7f442408 + MOVQ 8(SP), M0 // 0f6f442408 + MOVQ M0, (AX) // 0f7f00 + MOVQ M0, (BX) // 0f7f03 + // On non-64bit arch, Go asm allowed uint32 offsets instead of int32. + // These tests check that property for backwards-compatibility. + MOVL 2147483648(AX), AX // 8b8000000080 + MOVL -2147483648(AX), AX // 8b8000000080 + ADDL 2147483648(AX), AX // 038000000080 + ADDL -2147483648(AX), AX // 038000000080 + // Make sure MOV CR/DR continues to work after changing its movtabs. + MOVL CR0, AX // 0f20c0 + MOVL CR0, DX // 0f20c2 + MOVL CR4, DI // 0f20e7 + MOVL AX, CR0 // 0f22c0 + MOVL DX, CR0 // 0f22c2 + MOVL DI, CR4 // 0f22e7 + MOVL DR0, AX // 0f21c0 + MOVL DR6, DX // 0f21f2 + MOVL DR7, SI // 0f21fe + // Test other movtab entries. + PUSHL SS // 16 + PUSHL FS // 0fa0 + POPL FS // 0fa1 + POPL SS // 17 + // End of tests. + RET |