Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

examples: test failures under rosetta 2 #170

Closed
mmcloughlin opened this issue Apr 7, 2021 · 1 comment · Fixed by #171
Closed

examples: test failures under rosetta 2 #170

mmcloughlin opened this issue Apr 7, 2021 · 1 comment · Fixed by #171
Labels
bug Something isn't working

Comments

@mmcloughlin
Copy link
Owner

On Apple Silicon with Rosetta 2 emulation we see SIGILL: illegal instruction errors in:

  • github.com/mmcloughlin/avo/examples/dot
  • github.com/mmcloughlin/avo/examples/geohash

It seems this is probably because of missing CPU feature checks (see #168).

Full Test Output
m1:avo mbm$ go test ./...
?   	github.com/mmcloughlin/avo	[no test files]
ok  	github.com/mmcloughlin/avo/attr	0.330s
ok  	github.com/mmcloughlin/avo/build	0.567s
ok  	github.com/mmcloughlin/avo/buildtags	0.377s
?   	github.com/mmcloughlin/avo/examples	[no test files]
ok  	github.com/mmcloughlin/avo/examples/add	0.439s
ok  	github.com/mmcloughlin/avo/examples/args	0.528s
ok  	github.com/mmcloughlin/avo/examples/complex	0.425s
ok  	github.com/mmcloughlin/avo/examples/data	0.454s
SIGILL: illegal instruction
PC=0x110b00f m=0 sigcode=2
instruction bytes: 0xc5 0xfc 0x57 0xc0 0xc5 0xf4 0x57 0xc9 0xc5 0xec 0x57 0xd2 0xc5 0xe4 0x57 0xdb

goroutine 6 [running]:
github.com/mmcloughlin/avo/examples/dot.Dot(0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
	/Users/mbm/Development/avo/examples/dot/dot.s:11 +0xf fp=0xc000040728 sp=0xc000040720 pc=0x110b00f
github.com/mmcloughlin/avo/examples/dot.TestEmpty(0xc000001380)
	/Users/mbm/Development/avo/examples/dot/dot_test.go:11 +0x37 fp=0xc000040780 sp=0xc000040728 pc=0x110ab37
testing.tRunner(0xc000001380, 0x114e5a0)
	/usr/local/go/src/testing/testing.go:1194 +0xef fp=0xc0000407d0 sp=0xc000040780 pc=0x10ccfef
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1371 +0x1 fp=0xc0000407d8 sp=0xc0000407d0 pc=0x106c101
created by testing.(*T).Run
	/usr/local/go/src/testing/testing.go:1239 +0x2b3

goroutine 1 [chan receive]:
testing.(*T).Run(0xc000001380, 0x11456c5, 0x9, 0x114e5a0, 0x107ef86)
	/usr/local/go/src/testing/testing.go:1240 +0x2da
testing.runTests.func1(0xc000001200)
	/usr/local/go/src/testing/testing.go:1512 +0x78
testing.tRunner(0xc000001200, 0xc000105de0)
	/usr/local/go/src/testing/testing.go:1194 +0xef
testing.runTests(0xc00000c030, 0x12197e0, 0x2, 0x2, 0xc0136bbb9ff40dc0, 0x8bb2ddaab7, 0x1220f80, 0x11464f3)
	/usr/local/go/src/testing/testing.go:1510 +0x2fe
testing.(*M).Run(0xc00011a000, 0x0)
	/usr/local/go/src/testing/testing.go:1418 +0x1eb
main.main()
	_testmain.go:45 +0x138

rax    0x0
rbx    0xc000001380
rcx    0x0
rdx    0x0
rdi    0xc000001500
rsi    0xc0136b259ff503d8
rbp    0xc000040770
rsp    0xc000040720
r8     0x381
r9     0x0
r10    0x10ccf33
r11    0xc9d6
r12    0xf3
r13    0x0
r14    0x116bafc
r15    0x0
rip    0x110b00f
rflags 0x206
cs     0x2b
fs     0x0
gs     0x0
FAIL	github.com/mmcloughlin/avo/examples/dot	0.534s
ok  	github.com/mmcloughlin/avo/examples/ext	0.577s
?   	github.com/mmcloughlin/avo/examples/ext/ext	[no test files]
ok  	github.com/mmcloughlin/avo/examples/fnv1a	0.543s
SIGILL: illegal instruction
PC=0x110a21e m=0 sigcode=2
instruction bytes: 0xc4 0xe2 0xf3 0xf5 0xd 0xc1 0x1c 0x6 0x0 0xc4 0xe2 0xfb 0xf5 0x5 0xb8 0x1c

goroutine 6 [running]:
github.com/mmcloughlin/avo/examples/geohash.EncodeInt(0x403bfcf13cee9dd8, 0x4055bb37c1376d55, 0x187e692525c59)
	/Users/mbm/Development/avo/examples/geohash/geohash.s:18 +0x3e fp=0xc000040758 sp=0xc000040750 pc=0x110a21e
github.com/mmcloughlin/avo/examples/geohash.TestEncodeIntMountEverest(0xc000001380)
	/Users/mbm/Development/avo/examples/geohash/geohash_test.go:8 +0x3d fp=0xc000040780 sp=0xc000040758 pc=0x110a19d
testing.tRunner(0xc000001380, 0x114ce38)
	/usr/local/go/src/testing/testing.go:1194 +0xef fp=0xc0000407d0 sp=0xc000040780 pc=0x10ccd6f
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1371 +0x1 fp=0xc0000407d8 sp=0xc0000407d0 pc=0x106c101
created by testing.(*T).Run
	/usr/local/go/src/testing/testing.go:1239 +0x2b3

goroutine 1 [chan receive]:
testing.(*T).Run(0xc000001380, 0x11476c2, 0x19, 0x114ce38, 0x107ef86)
	/usr/local/go/src/testing/testing.go:1240 +0x2da
testing.runTests.func1(0xc000001200)
	/usr/local/go/src/testing/testing.go:1512 +0x78
testing.tRunner(0xc000001200, 0xc000105de0)
	/usr/local/go/src/testing/testing.go:1194 +0xef
testing.runTests(0xc00000c030, 0x1215da0, 0x1, 0x1, 0xc0136bbbb68b68d0, 0x8bb2dd4045, 0x121dbe0, 0x1144de0)
	/usr/local/go/src/testing/testing.go:1510 +0x2fe
testing.(*M).Run(0xc000116000, 0x0)
	/usr/local/go/src/testing/testing.go:1418 +0x1eb
main.main()
	_testmain.go:43 +0x138

rax    0x3ffbdd04391
rbx    0xc000001380
rcx    0x3ffa7ce23e4
rdx    0x114ce38
rdi    0xc000001500
rsi    0xc0136b25b68c3008
rbp    0xc000040770
rsp    0xc000040750
r8     0x381
r9     0x0
r10    0x10cccb3
r11    0xc699
r12    0xf3
r13    0x0
r14    0x116a1f8
r15    0x0
rip    0x110a21e
rflags 0x206
cs     0x2b
fs     0x0
gs     0x0
FAIL	github.com/mmcloughlin/avo/examples/geohash	0.626s
ok  	github.com/mmcloughlin/avo/examples/pragma	0.659s
ok  	github.com/mmcloughlin/avo/examples/returns	0.666s
ok  	github.com/mmcloughlin/avo/examples/sha1	0.677s
ok  	github.com/mmcloughlin/avo/examples/stadtx	0.676s
ok  	github.com/mmcloughlin/avo/examples/sum	0.747s
ok  	github.com/mmcloughlin/avo/gotypes	3.386s
?   	github.com/mmcloughlin/avo/internal/cmd/asmdecl	[no test files]
?   	github.com/mmcloughlin/avo/internal/cmd/avogen	[no test files]
ok  	github.com/mmcloughlin/avo/internal/gen	0.465s
ok  	github.com/mmcloughlin/avo/internal/inst	0.803s
ok  	github.com/mmcloughlin/avo/internal/load	0.837s
ok  	github.com/mmcloughlin/avo/internal/opcodescsv	0.581s
ok  	github.com/mmcloughlin/avo/internal/opcodesxml	0.916s
?   	github.com/mmcloughlin/avo/internal/prnt	[no test files]
ok  	github.com/mmcloughlin/avo/internal/stack	0.792s
?   	github.com/mmcloughlin/avo/internal/test	[no test files]
ok  	github.com/mmcloughlin/avo/ir	0.787s
ok  	github.com/mmcloughlin/avo/operand	0.663s
ok  	github.com/mmcloughlin/avo/pass	0.400s
ok  	github.com/mmcloughlin/avo/printer	0.626s
ok  	github.com/mmcloughlin/avo/reg	0.466s
ok  	github.com/mmcloughlin/avo/src	0.370s
?   	github.com/mmcloughlin/avo/tests	[no test files]
ok  	github.com/mmcloughlin/avo/tests/alloc/gp8	0.500s
ok  	github.com/mmcloughlin/avo/tests/alloc/masks	0.631s
ok  	github.com/mmcloughlin/avo/tests/alloc/upper32	0.629s
ok  	github.com/mmcloughlin/avo/tests/cast	0.609s
?   	github.com/mmcloughlin/avo/tests/fixedbugs/issue100/allocfail	[no test files]
ok  	github.com/mmcloughlin/avo/tests/fixedbugs/issue100/minrepro	0.630s
ok  	github.com/mmcloughlin/avo/tests/fixedbugs/issue122	0.631s
ok  	github.com/mmcloughlin/avo/tests/fixedbugs/issue50	0.643s
ok  	github.com/mmcloughlin/avo/tests/fixedbugs/issue62	0.608s
?   	github.com/mmcloughlin/avo/tests/fixedbugs/issue65	[no test files]
ok  	github.com/mmcloughlin/avo/tests/fixedbugs/issue68	0.653s
ok  	github.com/mmcloughlin/avo/tests/fixedbugs/issue76	0.667s
ok  	github.com/mmcloughlin/avo/tests/fixedbugs/issue89	0.673s
?   	github.com/mmcloughlin/avo/tests/fmt	[no test files]
ok  	github.com/mmcloughlin/avo/tests/labels	0.679s
ok  	github.com/mmcloughlin/avo/tests/textflag	0.662s
ok  	github.com/mmcloughlin/avo/tests/thirdparty	0.630s
ok  	github.com/mmcloughlin/avo/x86	0.568s
FAIL
@mmcloughlin mmcloughlin added the bug Something isn't working label Apr 7, 2021
@mmcloughlin
Copy link
Owner Author

mmcloughlin commented Apr 7, 2021

Related to #153, where these errors are probably due to very old x86 platforms.

mmcloughlin added a commit that referenced this issue Apr 7, 2021
Add necessary feature checks to the dot and geohash examples to prevent illegal instruction errors.

Fixes #170 #153
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant