dgryski / go-farm

go-farm: a pure-Go farmhash implementation
MIT License
245 stars 22 forks source link

Regenerate amd64 assembly with avo v0.6.0 #21

Closed dnr closed 1 month ago

dnr commented 2 months ago

This regenerates the amd64 assembly to avoid issues with clobbering BP.

This includes avo's fix https://github.com/mmcloughlin/avo/pull/174 for issue https://github.com/mmcloughlin/avo/issues/156: it turns out BP actually is callee-save, and this can cause crashes when the new (Go 1.21) frame pointer stack unwinder tries to unwind a stack frame that has called one of these functions.

This passes this repo's tests. I also wrote a crash reproducer that would reliably crash, which fails to crash with this change.

dnr commented 2 months ago

Benchstat results: https://gist.github.com/dnr/5e35fb9331043d29a457aae81f3a8649 This is from my laptop without controlling for anything, so almost meaningless, but seems like there's no regression.

dgryski commented 1 month ago

Thanks!