// Copyright 2012 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. | |
// This code was translated into a form compatible with 6a from the public | |
// domain sources in SUPERCOP: http://bench.cr.yp.to/supercop.html | |
// +build amd64,!gccgo,!appengine | |
// func cswap(inout *[5]uint64, v uint64) | |
TEXT ·cswap(SB),7,$0 | |
MOVQ inout+0(FP),DI | |
MOVQ v+8(FP),SI | |
CMPQ SI,$1 | |
MOVQ 0(DI),SI | |
MOVQ 80(DI),DX | |
MOVQ 8(DI),CX | |
MOVQ 88(DI),R8 | |
MOVQ SI,R9 | |
CMOVQEQ DX,SI | |
CMOVQEQ R9,DX | |
MOVQ CX,R9 | |
CMOVQEQ R8,CX | |
CMOVQEQ R9,R8 | |
MOVQ SI,0(DI) | |
MOVQ DX,80(DI) | |
MOVQ CX,8(DI) | |
MOVQ R8,88(DI) | |
MOVQ 16(DI),SI | |
MOVQ 96(DI),DX | |
MOVQ 24(DI),CX | |
MOVQ 104(DI),R8 | |
MOVQ SI,R9 | |
CMOVQEQ DX,SI | |
CMOVQEQ R9,DX | |
MOVQ CX,R9 | |
CMOVQEQ R8,CX | |
CMOVQEQ R9,R8 | |
MOVQ SI,16(DI) | |
MOVQ DX,96(DI) | |
MOVQ CX,24(DI) | |
MOVQ R8,104(DI) | |
MOVQ 32(DI),SI | |
MOVQ 112(DI),DX | |
MOVQ 40(DI),CX | |
MOVQ 120(DI),R8 | |
MOVQ SI,R9 | |
CMOVQEQ DX,SI | |
CMOVQEQ R9,DX | |
MOVQ CX,R9 | |
CMOVQEQ R8,CX | |
CMOVQEQ R9,R8 | |
MOVQ SI,32(DI) | |
MOVQ DX,112(DI) | |
MOVQ CX,40(DI) | |
MOVQ R8,120(DI) | |
MOVQ 48(DI),SI | |
MOVQ 128(DI),DX | |
MOVQ 56(DI),CX | |
MOVQ 136(DI),R8 | |
MOVQ SI,R9 | |
CMOVQEQ DX,SI | |
CMOVQEQ R9,DX | |
MOVQ CX,R9 | |
CMOVQEQ R8,CX | |
CMOVQEQ R9,R8 | |
MOVQ SI,48(DI) | |
MOVQ DX,128(DI) | |
MOVQ CX,56(DI) | |
MOVQ R8,136(DI) | |
MOVQ 64(DI),SI | |
MOVQ 144(DI),DX | |
MOVQ 72(DI),CX | |
MOVQ 152(DI),R8 | |
MOVQ SI,R9 | |
CMOVQEQ DX,SI | |
CMOVQEQ R9,DX | |
MOVQ CX,R9 | |
CMOVQEQ R8,CX | |
CMOVQEQ R9,R8 | |
MOVQ SI,64(DI) | |
MOVQ DX,144(DI) | |
MOVQ CX,72(DI) | |
MOVQ R8,152(DI) | |
MOVQ DI,AX | |
MOVQ SI,DX | |
RET |