// asmcheck -gcflags=-clobberdeadreg

// +build amd64

// Copyright 2021 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.

package codegen

type S struct {
	a, b, c, d, e, f int
}

func F(a, b, c int, d S) {
	// -2401018187971961171 is 0xdeaddeaddeaddead
	// amd64:`MOVQ\t\$-2401018187971961171, AX`, `MOVQ\t\$-2401018187971961171, BX`, `MOVQ\t\$-2401018187971961171, CX`
	// amd64:`MOVQ\t\$-2401018187971961171, DX`, `MOVQ\t\$-2401018187971961171, SI`, `MOVQ\t\$-2401018187971961171, DI`
	// amd64:`MOVQ\t\$-2401018187971961171, R8`, `MOVQ\t\$-2401018187971961171, R9`, `MOVQ\t\$-2401018187971961171, R10`
	// amd64:`MOVQ\t\$-2401018187971961171, R11`, `MOVQ\t\$-2401018187971961171, R12`, `MOVQ\t\$-2401018187971961171, R13`
	// amd64:-`MOVQ\t\$-2401018187971961171, BP` // frame pointer is not clobbered
	StackArgsCall([10]int{a, b, c})
	// amd64:`MOVQ\t\$-2401018187971961171, R12`, `MOVQ\t\$-2401018187971961171, R13`, `MOVQ\t\$-2401018187971961171, DX`
	// amd64:-`MOVQ\t\$-2401018187971961171, AX`, -`MOVQ\t\$-2401018187971961171, R11` // register args are not clobbered
	RegArgsCall(a, b, c, d)
}

//go:noinline
func StackArgsCall([10]int) {}

//go:noinline
//go:registerparams
func RegArgsCall(int, int, int, S) {}
