internal/load: support additional MOVQ forms
The Go assembler merges MOVD/MOVQ instruction forms. The logic in the avo instruction loader was discarding the MOVD forms. This diff should merge them correctly. Updates #50
This commit is contained in:
21
tests/fixedbugs/issue50/asm.go
Normal file
21
tests/fixedbugs/issue50/asm.go
Normal file
@@ -0,0 +1,21 @@
|
||||
// +build ignore
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
. "github.com/mmcloughlin/avo/build"
|
||||
)
|
||||
|
||||
func main() {
|
||||
TEXT("Issue50", NOSPLIT, "func(x uint32) uint32")
|
||||
Doc(
|
||||
"Issue50 reported that MOVD/MOVQ was missing the r32, xmm form.",
|
||||
"This function deliberately exercises this instruction form.",
|
||||
)
|
||||
x := Load(Param("x"), GP32())
|
||||
xmm := XMM()
|
||||
MOVQ(x, xmm)
|
||||
Store(xmm, ReturnIndex(0))
|
||||
RET()
|
||||
Generate()
|
||||
}
|
||||
Reference in New Issue
Block a user