| // Copyright 2020 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. |
| |
| #include "textflag.h" |
| |
| TEXT ·asmAddFlags(SB),NOSPLIT,$0-24 |
| MOVD x+0(FP), R0 |
| MOVD y+8(FP), R1 |
| CMN R0, R1 |
| WORD $0xd53b4200 // MOVD NZCV, R0 |
| MOVD R0, ret+16(FP) |
| RET |
| |
| TEXT ·asmSubFlags(SB),NOSPLIT,$0-24 |
| MOVD x+0(FP), R0 |
| MOVD y+8(FP), R1 |
| CMP R1, R0 |
| WORD $0xd53b4200 // MOVD NZCV, R0 |
| MOVD R0, ret+16(FP) |
| RET |
| |
| TEXT ·asmAndFlags(SB),NOSPLIT,$0-24 |
| MOVD x+0(FP), R0 |
| MOVD y+8(FP), R1 |
| TST R1, R0 |
| WORD $0xd53b4200 // MOVD NZCV, R0 |
| BIC $0x30000000, R0 // clear C, V bits, as TST does not change those flags |
| MOVD R0, ret+16(FP) |
| RET |