// Copyright (c) 2026 Petr Balvín (https://petrbalvin.org) // SPDX-License-Identifier: BSD-3-Clause // Seed corpus for FuzzAssembleRISCV64: branches over their offset range, the // jumps and calls, the system instructions, the atomics with the LR/SC pair, // the FP arithmetic, compare, conversion and fused multiply-add families in // every width including quad. #include "textflag.h" TEXT ·branches(SB), NOSPLIT, $0 BEQ X5, X6, b1 BNE X5, X6, b2 BLT X5, X6, b1 BGE X5, X6, b2 BLTU X5, X6, b1 BGEU X5, X6, b2 BGT X6, X5, b1 BLE X6, X5, b2 BGTU X6, X5, b1 BLEU X6, X5, b2 b1: ADDI $1, X5, X5 b2: ADDI $-1, X6, X6 BEQ X5, X6, b1 RET TEXT ·farBranch(SB), NOSPLIT, $0 BEQ X5, X6, far SLTI $2047, X5, X6 BEQ X5, X6, far far: SLTIU $2047, X5, X6 BGE X5, X6, far RET TEXT ·jumps(SB), NOSPLIT, $0 JAL X1, j1 j1: JALR X0, (X1) JALR X1, 0(X5) JMP j2 j2: JMP (X5) CALL (X5) JMP -3(PC) CALL runtime·morestack_noctxt(SB) RET TEXT ·system(SB), NOSPLIT, $0 FENCE FENCE.TSO PAUSE ECALL EBREAK RET TEXT ·atomics(SB), NOSPLIT, $0 AMOSWAPW X5, (X6), X7 AMOSWAPD X5, (X6), X7 AMOADDW X5, (X6), X7 AMOADDD X5, (X6), X7 AMOANDW X5, (X6), X7 AMOORW X5, (X6), X7 AMOXORW X5, (X6), X7 AMOMINW X5, (X6), X7 AMOMAXW X5, (X6), X7 AMOMINUW X5, (X6), X7 AMOMAXUW X5, (X6), X7 AMOMIND X5, (X6), X7 AMOMAXD X5, (X6), X7 AMOMINUD X5, (X6), X7 AMOMAXUD X5, (X6), X7 LRW (X6), X7 LRD (X6), X7 SCW X5, (X6), X7 SCD X5, (X6), X7 RET TEXT ·fpArith(SB), NOSPLIT, $0 FADDS F1, F2, F3 FSUBS F1, F2, F3 FMULS F1, F2, F3 FDIVS F1, F2, F3 FADDD F1, F2, F3 FSUBD F1, F2, F3 FMULD F1, F2, F3 FDIVD F1, F2, F3 FADDQ F1, F2, F3 FSUBQ F1, F2, F3 FMULQ F1, F2, F3 FDIVQ F1, F2, F3 FSQRTS F1, F2 FSQRTD F1, F2 FSQRTQ F1, F2 FMINS F1, F2, F3 FMAXS F1, F2, F3 FMIND F1, F2, F3 FMAXD F1, F2, F3 FMINQ F1, F2, F3 FMAXQ F1, F2, F3 RET TEXT ·fpFma(SB), NOSPLIT, $0 FMADDS F1, F2, F3, F4 FMSUBS F1, F2, F3, F4 FNMSUBS F1, F2, F3, F4 FNMADDS F1, F2, F3, F4 FMADDD F1, F2, F3, F4 FMSUBD F1, F2, F3, F4 FNMSUBD F1, F2, F3, F4 FNMADDD F1, F2, F3, F4 FMADDQ F1, F2, F3, F4 FMSUBQ F1, F2, F3, F4 FNMSUBQ F1, F2, F3, F4 FNMADDQ F1, F2, F3, F4 RET TEXT ·fpCvt(SB), NOSPLIT, $0 FCVTWS F1, X5 FCVTWUS F1, X5 FCVTLS F1, X5 FCVTLUS F1, X5 FCVTWD F1, X5 FCVTWUD F1, X5 FCVTLD F1, X5 FCVTLUD F1, X5 FCVTSW X5, F1 FCVTSWU X5, F1 FCVTSL X5, F1 FCVTSLU X5, F1 FCVTDW X5, F1 FCVTDWU X5, F1 FCVTDL X5, F1 FCVTDLU X5, F1 FCVTSD F1, F2 FCVTDS F1, F2 FCVTSQ F1, F2 FCVTDQ F1, F2 FCVTQS F1, F2 FCVTQD F1, F2 FCVTWQ F1, X5 FCVTLQ F1, X5 FCVTQW X5, F1 FCVTQL X5, F1 FCLASSS F1, X5 FCLASSD F1, X5 FCLASSQ F1, X5 FMVXD F1, X5 FMVDX X5, F1 FMVXW F1, X5 FMVWX X5, F1 RET TEXT ·fpSign(SB), NOSPLIT, $0 FSGNJS F1, F0, F2 FSGNJNS F1, F0, F2 FSGNJXS F1, F0, F2 FSGNJD F1, F0, F2 FSGNJND F1, F0, F2 FSGNJXD F1, F0, F2 FLTS F1, F2, X5 FLES F1, F2, X5 FEQS F1, F2, X5 FLTD F1, F2, X5 FLED F1, F2, X5 FEQD F1, F2, X5 FLTQ F1, F2, X5 FLEQ F1, F2, X5 FEQQ F1, F2, X5 RET