1/* 2 * This file and its contents are supplied under the terms of the 3 * Common Development and Distribution License ("CDDL"), version 1.0. 4 * You may only use this file in accordance with the terms of version 5 * 1.0 of the CDDL. 6 * 7 * A full copy of the text of the CDDL should have accompanied this 8 * source. A copy of the CDDL is also available via the Internet at 9 * http://www.illumos.org/license/CDDL. 10 */ 11 12/* 13 * Copyright 2018, Joyent, Inc. 14 */ 15 16/* 17 * Test our disassembly of the RV32F instructions. Instructions are ordered per 18 * the ISA manual. 19 */ 20 21.text 22.align 16 23.globl libdis_test 24.type libdis_test, @function 25libdis_test: 26 flw ft1, (s2) 27 flw ft1, -0x4(s2) 28 flw ft1, 0x42(s2) 29 fsw ft1, (s2) 30 fsw ft1, -0x4(s2) 31 fsw ft1, 0x42(s2) 32 33 fmadd.s ft1, ft2, ft3, ft4 34 fmadd.s ft1, ft2, ft3, ft4, rne 35 fmadd.s ft1, ft2, ft3, ft4, rtz 36 fmadd.s ft1, ft2, ft3, ft4, rdn 37 fmadd.s ft1, ft2, ft3, ft4, rup 38 fmadd.s ft1, ft2, ft3, ft4, rmm 39 40 fmsub.s ft1, ft2, ft3, ft4 41 fmsub.s ft1, ft2, ft3, ft4, rne 42 fmsub.s ft1, ft2, ft3, ft4, rtz 43 fmsub.s ft1, ft2, ft3, ft4, rdn 44 fmsub.s ft1, ft2, ft3, ft4, rup 45 fmsub.s ft1, ft2, ft3, ft4, rmm 46 47 fnmsub.s ft1, ft2, ft3, ft4 48 fnmsub.s ft1, ft2, ft3, ft4, rne 49 fnmsub.s ft1, ft2, ft3, ft4, rtz 50 fnmsub.s ft1, ft2, ft3, ft4, rdn 51 fnmsub.s ft1, ft2, ft3, ft4, rup 52 fnmsub.s ft1, ft2, ft3, ft4, rmm 53 54 fnmadd.s ft1, ft2, ft3, ft4 55 fnmadd.s ft1, ft2, ft3, ft4, rne 56 fnmadd.s ft1, ft2, ft3, ft4, rtz 57 fnmadd.s ft1, ft2, ft3, ft4, rdn 58 fnmadd.s ft1, ft2, ft3, ft4, rup 59 fnmadd.s ft1, ft2, ft3, ft4, rmm 60 61 fadd.s fs0, fs1, fs2 62 fadd.s fs1, fs2, fs3, rne 63 fadd.s fs2, fs3, fs4, rtz 64 fadd.s fs3, fs4, fs5, rdn 65 fadd.s fs4, fs5, fs6, rup 66 fadd.s fs5, fs6, fs7, rmm 67 68 fsub.s fs0, fs1, fs2 69 fsub.s fs1, fs2, fs3, rne 70 fsub.s fs2, fs3, fs4, rtz 71 fsub.s fs3, fs4, fs5, rdn 72 fsub.s fs4, fs5, fs6, rup 73 fsub.s fs5, fs6, fs7, rmm 74 75 fmul.s fs0, fs1, fs2 76 fmul.s fs1, fs2, fs3, rne 77 fmul.s fs2, fs3, fs4, rtz 78 fmul.s fs3, fs4, fs5, rdn 79 fmul.s fs4, fs5, fs6, rup 80 fmul.s fs5, fs6, fs7, rmm 81 82 fdiv.s fs0, fs1, fs2 83 fdiv.s fs1, fs2, fs3, rne 84 fdiv.s fs2, fs3, fs4, rtz 85 fdiv.s fs3, fs4, fs5, rdn 86 fdiv.s fs4, fs5, fs6, rup 87 fdiv.s fs5, fs6, fs7, rmm 88 89 fsqrt.s fs0, fs1 90 fsqrt.s fs1, fs2, rne 91 fsqrt.s fs2, fs3, rtz 92 fsqrt.s fs3, fs4, rdn 93 fsqrt.s fs4, fs5, rup 94 fsqrt.s fs5, fs6, rmm 95 96 fsgnj.s fa0, fa1, fa2 97 fsgnjn.s fa0, fa1, fa2 98 fsgnjx.s fa0, fa1, fa2 99 fmin.s fa0, fa1, fa2 100 fmax.s fa0, fa1, fa2 101 102 fcvt.w.s t0, ft1 103 fcvt.w.s t1, ft2, rne 104 fcvt.w.s t2, ft3, rtz 105 fcvt.w.s t3, ft4, rdn 106 fcvt.w.s t4, ft5, rup 107 fcvt.w.s t5, ft6, rmm 108 109 fcvt.wu.s t0, ft1 110 fcvt.wu.s t1, ft2, rne 111 fcvt.wu.s t2, ft3, rtz 112 fcvt.wu.s t3, ft4, rdn 113 fcvt.wu.s t4, ft5, rup 114 fcvt.wu.s t5, ft6, rmm 115 116 fmv.x.w t0, ft1 117 feq.s a0, ft8, ft7 118 flt.s a1, ft8, ft7 119 fle.s a2, ft8, ft7 120 fclass.s a3, ft8 121 122 fcvt.s.w ft1, t2 123 fcvt.s.w ft2, t3, rne 124 fcvt.s.w ft3, t4, rtz 125 fcvt.s.w ft4, t5, rdn 126 fcvt.s.w ft5, t6, rup 127 fcvt.s.w ft6, t6, rmm 128 129 fcvt.s.wu ft1, t2 130 fcvt.s.wu ft2, t3, rne 131 fcvt.s.wu ft3, t4, rtz 132 fcvt.s.wu ft4, t5, rdn 133 fcvt.s.wu ft5, t6, rup 134 fcvt.s.wu ft6, t6, rmm 135 136 fmv.w.x fs10, s10 137.size libdis_test, [.-libdis_test] 138