|
|
|
C:\!microtesk\MicroTESK-RISC-V\microtesk-riscv\microtesk-riscv\src\main\arch\riscv\templates>C:\!microtesk\MicroTESK-RISC-V\microtesk-riscv\microtesk-riscv\build\target\bin\generate.bat riscv isa_tests/rv64uf/fmadd.rb --code-file-prefix isa_tests/rv64uf/madd --code-file-extension s -v --ri RV64FULL
|
|
|
|
C:\!microtesk\MicroTESK-RISC-V\microtesk-riscv\microtesk-riscv\src\main\arch\riscv\templates>java -ea -jar "C:\!microtesk\MicroTESK-RISC-V\microtesk-riscv\microtesk-riscv\build\target/lib/jars/microtesk.jar" -g riscv isa_tests/rv64uf/fmadd.rb --code-file-prefix isa_tests/rv64uf/madd --code-file-extension s -v --ri RV64FULL
|
|
Home: C:\!microtesk\MicroTESK-RISC-V\microtesk-riscv\microtesk-riscv\build\target
|
|
Current directory: C:\!microtesk\MicroTESK-RISC-V\microtesk-riscv\microtesk-riscv\src\main\arch\riscv\templates
|
|
Model name: riscv
|
|
Template file: isa_tests/rv64uf/fmadd.rb
|
|
Loaded template RiscVBaseTemplate defined in C:/!microtesk/MicroTESK-RISC-V/microtesk-riscv/microtesk-riscv/src/main/arch/riscv/templates/riscv_base.rb
|
|
Loaded template FmaddTemplate defined in C:/!microtesk/MicroTESK-RISC-V/microtesk-riscv/microtesk-riscv/src/main/arch/riscv/templates/isa_tests/rv64uf/fmadd.rb
|
|
Processing template FmaddTemplate defined in C:/!microtesk/MicroTESK-RISC-V/microtesk-riscv/microtesk-riscv/src/main/arch/riscv/templates/isa_tests/rv64uf/fmadd.rb...
|
|
Instance number: 1
|
|
|
|
----------------------- Initializing Processing Elements -----------------------
|
|
|
|
The "instantiate" operation is undefined.
|
|
Warning: Failed to load the MMU model. Physical memory will be accessed directly.
|
|
|
|
------------------------- Started Processing Template --------------------------
|
|
|
|
|
|
------------------ Started Processing Initialization Section -------------------
|
|
|
|
|
|
------------------------------- Allocating data --------------------------------
|
|
|
|
Section: .data [pa=0x0000000080022000, va=0x0000000080022000]
|
|
Allocation starts: 0x0000000080022000
|
|
|
|
.align 4
|
|
.globl begin_signature
|
|
begin_signature:
|
|
|
|
------------------------------- Allocating data --------------------------------
|
|
|
|
Section: .data [pa=0x0000000080022000, va=0x0000000080022000]
|
|
Allocation starts: 0x0000000080022000
|
|
|
|
.align 4
|
|
.globl end_signature
|
|
end_signature:
|
|
|
|
------------------- Ended Processing Initialization Section --------------------
|
|
|
|
|
|
------------------- Started Processing Finalization Section --------------------
|
|
|
|
|
|
-------------------- Ended Processing Finalization Section ---------------------
|
|
|
|
|
|
----------------------- Started Processing Main Section ------------------------
|
|
|
|
|
|
------------------------------- Allocating data --------------------------------
|
|
|
|
Section: .data [pa=0x0000000080022000, va=0x0000000080022000]
|
|
Allocation starts: 0x0000000080022000
|
|
|
|
.align 2
|
|
test_2_data:
|
|
0x0000000080022000 (PA): .float 1.0
|
|
0x0000000080022004 (PA): .float 2.5
|
|
0x0000000080022008 (PA): .float 1.0
|
|
0x000000008002200c (PA): .float 3.5
|
|
|
|
------------------------------- Allocating data --------------------------------
|
|
|
|
Section: .data [pa=0x0000000080022000, va=0x0000000080022000]
|
|
Allocation starts: 0x0000000080022010
|
|
|
|
.align 2
|
|
test_3_data:
|
|
0x0000000080022010 (PA): .float -1.0
|
|
0x0000000080022014 (PA): .float -1235.1
|
|
0x0000000080022018 (PA): .float 1.1
|
|
0x000000008002201c (PA): .float 1236.2
|
|
|
|
------------------------------- Allocating data --------------------------------
|
|
|
|
Section: .data [pa=0x0000000080022000, va=0x0000000080022000]
|
|
Allocation starts: 0x0000000080022020
|
|
|
|
.align 2
|
|
test_4_data:
|
|
0x0000000080022020 (PA): .float 2.0
|
|
0x0000000080022024 (PA): .float -5.0
|
|
0x0000000080022028 (PA): .float -2.0
|
|
0x000000008002202c (PA): .float -12.0
|
|
|
|
------------------------------- Allocating data --------------------------------
|
|
|
|
Section: .data [pa=0x0000000080022000, va=0x0000000080022000]
|
|
Allocation starts: 0x0000000080022030
|
|
|
|
.align 2
|
|
test_5_data:
|
|
0x0000000080022030 (PA): .float 1.0
|
|
0x0000000080022034 (PA): .float 2.5
|
|
0x0000000080022038 (PA): .float 1.0
|
|
0x000000008002203c (PA): .float -3.5
|
|
|
|
------------------------------- Allocating data --------------------------------
|
|
|
|
Section: .data [pa=0x0000000080022000, va=0x0000000080022000]
|
|
Allocation starts: 0x0000000080022040
|
|
|
|
.align 2
|
|
test_6_data:
|
|
0x0000000080022040 (PA): .float -1.0
|
|
0x0000000080022044 (PA): .float -1235.1
|
|
0x0000000080022048 (PA): .float 1.1
|
|
0x000000008002204c (PA): .float -1236.2
|
|
|
|
------------------------------- Allocating data --------------------------------
|
|
|
|
Section: .data [pa=0x0000000080022000, va=0x0000000080022000]
|
|
Allocation starts: 0x0000000080022050
|
|
|
|
.align 2
|
|
test_7_data:
|
|
0x0000000080022050 (PA): .float 2.0
|
|
0x0000000080022054 (PA): .float -5.0
|
|
0x0000000080022058 (PA): .float -2.0
|
|
0x000000008002205c (PA): .float 12.0
|
|
|
|
------------------------------- Allocating data --------------------------------
|
|
|
|
Section: .data [pa=0x0000000080022000, va=0x0000000080022000]
|
|
Allocation starts: 0x0000000080022060
|
|
|
|
.align 2
|
|
test_8_data:
|
|
0x0000000080022060 (PA): .float 1.0
|
|
0x0000000080022064 (PA): .float 2.5
|
|
0x0000000080022068 (PA): .float 1.0
|
|
0x000000008002206c (PA): .float 1.5
|
|
|
|
------------------------------- Allocating data --------------------------------
|
|
|
|
Section: .data [pa=0x0000000080022000, va=0x0000000080022000]
|
|
Allocation starts: 0x0000000080022070
|
|
|
|
.align 2
|
|
test_9_data:
|
|
0x0000000080022070 (PA): .float -1.0
|
|
0x0000000080022074 (PA): .float -1235.1
|
|
0x0000000080022078 (PA): .float 1.1
|
|
0x000000008002207c (PA): .float 0f:000004D2
|
|
|
|
------------------------------- Allocating data --------------------------------
|
|
|
|
Section: .data [pa=0x0000000080022000, va=0x0000000080022000]
|
|
Allocation starts: 0x0000000080022080
|
|
|
|
.align 2
|
|
test_10_data:
|
|
0x0000000080022080 (PA): .float 2.0
|
|
0x0000000080022084 (PA): .float -5.0
|
|
0x0000000080022088 (PA): .float -2.0
|
|
0x000000008002208c (PA): .float -8.0
|
|
|
|
------------------------------- Allocating data --------------------------------
|
|
|
|
Section: .data [pa=0x0000000080022000, va=0x0000000080022000]
|
|
Allocation starts: 0x0000000080022090
|
|
|
|
.align 2
|
|
test_11_data:
|
|
0x0000000080022090 (PA): .float 1.0
|
|
0x0000000080022094 (PA): .float 2.5
|
|
0x0000000080022098 (PA): .float 1.0
|
|
0x000000008002209c (PA): .float -1.5
|
|
|
|
------------------------------- Allocating data --------------------------------
|
|
|
|
Section: .data [pa=0x0000000080022000, va=0x0000000080022000]
|
|
Allocation starts: 0x00000000800220a0
|
|
|
|
.align 2
|
|
test_12_data:
|
|
0x00000000800220a0 (PA): .float -1.0
|
|
0x00000000800220a4 (PA): .float -1235.1
|
|
0x00000000800220a8 (PA): .float 1.1
|
|
0x00000000800220ac (PA): .float 0f:FFFFFB2E
|
|
|
|
------------------------------- Allocating data --------------------------------
|
|
|
|
Section: .data [pa=0x0000000080022000, va=0x0000000080022000]
|
|
Allocation starts: 0x00000000800220b0
|
|
|
|
.align 2
|
|
test_13_data:
|
|
0x00000000800220b0 (PA): .float 2.0
|
|
0x00000000800220b4 (PA): .float -5.0
|
|
0x00000000800220b8 (PA): .float -2.0
|
|
0x00000000800220bc (PA): .float 8.0
|
|
|
|
------------------- Constructed Prologue (riscv_test.rb:231) -------------------
|
|
|
|
.section .text.init
|
|
.align 6
|
|
.weak stvec_handler
|
|
.weak mtvec_handler
|
|
.globl _start
|
|
_start:
|
|
j reset_vector
|
|
.align 2
|
|
trap_vector:
|
|
csrr t5, mcause
|
|
li t6, 0x8
|
|
beq t5, t6, write_tohost
|
|
li t6, 0x9
|
|
beq t5, t6, write_tohost
|
|
li t6, 0xb
|
|
beq t5, t6, write_tohost
|
|
la t5, mtvec_handler
|
|
beqz t5, 1f
|
|
jr t5
|
|
1:
|
|
csrr t5, mcause
|
|
bgez t5, handle_exception
|
|
j other_exception
|
|
handle_exception:
|
|
other_exception:
|
|
1:
|
|
ori gp, gp, 1337
|
|
write_tohost:
|
|
nop
|
|
nop
|
|
j write_tohost
|
|
reset_vector:
|
|
csrr a0, mhartid
|
|
1:
|
|
bnez a0, 1b
|
|
la t0, 1f
|
|
csrw mtvec, t0
|
|
csrwi satp, 0x0
|
|
.align 2
|
|
1:
|
|
la t0, 1f
|
|
csrw mtvec, t0
|
|
li t0, 0xffffffffffffffff
|
|
csrw pmpaddr0, t0
|
|
li t0, 0x1f
|
|
csrw pmpcfg0, t0
|
|
.align 2
|
|
1:
|
|
la t0, 1f
|
|
csrw mtvec, t0
|
|
csrwi medeleg, 0x0
|
|
csrwi mideleg, 0x0
|
|
csrwi mie, 0x0
|
|
.align 2
|
|
1:
|
|
li gp, 0x0
|
|
la t0, trap_vector
|
|
csrw mtvec, t0
|
|
li a0, 0x1
|
|
slli a0, a0, 0x1f
|
|
bgez a0, 1f
|
|
fence
|
|
li gp, 0x1
|
|
ecall
|
|
1:
|
|
la t0, stvec_handler
|
|
beqz t0, 1f
|
|
csrw stvec, t0
|
|
li t0, 0xb109
|
|
csrw medeleg, t0
|
|
csrr t1, medeleg
|
|
bne t0, t1, other_exception
|
|
1:
|
|
csrwi mstatus, 0x0
|
|
|
|
# RVTEST_FP_ENABLE
|
|
li a0, 0x2000
|
|
csrs mstatus, a0
|
|
csrwi fcsr, 0x0
|
|
|
|
la t0, 1f
|
|
csrw mepc, t0
|
|
csrr a0, mhartid
|
|
mret
|
|
1:
|
|
|
|
------------------------------- Allocating code --------------------------------
|
|
|
|
Section: .section .text.init [pa=0x0000000080000000, va=0x0000000080000000]
|
|
|
|
|
|
------------- Constructed External Code (riscv_test_macros.rb:491) -------------
|
|
|
|
test_2:
|
|
li gp, 0x2
|
|
la a0, test_2_data
|
|
flw ft0, 0(a0)
|
|
flw ft1, 4(a0)
|
|
flw ft2, 8(a0)
|
|
lw a3, 12(a0)
|
|
fmadd.s ft3, ft0, ft1, ft2
|
|
fmv.x.s a0, ft3
|
|
fsflags a1, zero
|
|
li a2, 0x0
|
|
bne a0, a3, fail
|
|
bne a1, a2, fail
|
|
test_3:
|
|
li gp, 0x3
|
|
la a0, test_3_data
|
|
flw ft0, 0(a0)
|
|
flw ft1, 4(a0)
|
|
flw ft2, 8(a0)
|
|
lw a3, 12(a0)
|
|
fmadd.s ft3, ft0, ft1, ft2
|
|
fmv.x.s a0, ft3
|
|
fsflags a1, zero
|
|
li a2, 0x1
|
|
bne a0, a3, fail
|
|
bne a1, a2, fail
|
|
test_4:
|
|
li gp, 0x4
|
|
la a0, test_4_data
|
|
flw ft0, 0(a0)
|
|
flw ft1, 4(a0)
|
|
flw ft2, 8(a0)
|
|
lw a3, 12(a0)
|
|
fmadd.s ft3, ft0, ft1, ft2
|
|
fmv.x.s a0, ft3
|
|
fsflags a1, zero
|
|
li a2, 0x0
|
|
bne a0, a3, fail
|
|
bne a1, a2, fail
|
|
test_5:
|
|
li gp, 0x5
|
|
la a0, test_5_data
|
|
flw ft0, 0(a0)
|
|
flw ft1, 4(a0)
|
|
flw ft2, 8(a0)
|
|
lw a3, 12(a0)
|
|
fnmadd.s ft3, ft0, ft1, ft2
|
|
fmv.x.s a0, ft3
|
|
fsflags a1, zero
|
|
li a2, 0x0
|
|
bne a0, a3, fail
|
|
bne a1, a2, fail
|
|
test_6:
|
|
li gp, 0x6
|
|
la a0, test_6_data
|
|
flw ft0, 0(a0)
|
|
flw ft1, 4(a0)
|
|
flw ft2, 8(a0)
|
|
lw a3, 12(a0)
|
|
fnmadd.s ft3, ft0, ft1, ft2
|
|
fmv.x.s a0, ft3
|
|
fsflags a1, zero
|
|
li a2, 0x1
|
|
bne a0, a3, fail
|
|
bne a1, a2, fail
|
|
test_7:
|
|
li gp, 0x7
|
|
la a0, test_7_data
|
|
flw ft0, 0(a0)
|
|
flw ft1, 4(a0)
|
|
flw ft2, 8(a0)
|
|
lw a3, 12(a0)
|
|
fnmadd.s ft3, ft0, ft1, ft2
|
|
fmv.x.s a0, ft3
|
|
fsflags a1, zero
|
|
li a2, 0x0
|
|
bne a0, a3, fail
|
|
bne a1, a2, fail
|
|
test_8:
|
|
li gp, 0x8
|
|
la a0, test_8_data
|
|
flw ft0, 0(a0)
|
|
flw ft1, 4(a0)
|
|
flw ft2, 8(a0)
|
|
lw a3, 12(a0)
|
|
fmsub.s ft3, ft0, ft1, ft2
|
|
fmv.x.s a0, ft3
|
|
fsflags a1, zero
|
|
li a2, 0x0
|
|
bne a0, a3, fail
|
|
bne a1, a2, fail
|
|
test_9:
|
|
li gp, 0x9
|
|
la a0, test_9_data
|
|
flw ft0, 0(a0)
|
|
flw ft1, 4(a0)
|
|
flw ft2, 8(a0)
|
|
lw a3, 12(a0)
|
|
fmsub.s ft3, ft0, ft1, ft2
|
|
fmv.x.s a0, ft3
|
|
fsflags a1, zero
|
|
li a2, 0x1
|
|
bne a0, a3, fail
|
|
bne a1, a2, fail
|
|
test_10:
|
|
li gp, 0xa
|
|
la a0, test_10_data
|
|
flw ft0, 0(a0)
|
|
flw ft1, 4(a0)
|
|
flw ft2, 8(a0)
|
|
lw a3, 12(a0)
|
|
fmsub.s ft3, ft0, ft1, ft2
|
|
fmv.x.s a0, ft3
|
|
fsflags a1, zero
|
|
li a2, 0x0
|
|
bne a0, a3, fail
|
|
bne a1, a2, fail
|
|
test_11:
|
|
li gp, 0xb
|
|
la a0, test_11_data
|
|
flw ft0, 0(a0)
|
|
flw ft1, 4(a0)
|
|
flw ft2, 8(a0)
|
|
lw a3, 12(a0)
|
|
fnmsub.s ft3, ft0, ft1, ft2
|
|
fmv.x.s a0, ft3
|
|
fsflags a1, zero
|
|
li a2, 0x0
|
|
bne a0, a3, fail
|
|
bne a1, a2, fail
|
|
test_12:
|
|
li gp, 0xc
|
|
la a0, test_12_data
|
|
flw ft0, 0(a0)
|
|
flw ft1, 4(a0)
|
|
flw ft2, 8(a0)
|
|
lw a3, 12(a0)
|
|
fnmsub.s ft3, ft0, ft1, ft2
|
|
fmv.x.s a0, ft3
|
|
fsflags a1, zero
|
|
li a2, 0x1
|
|
bne a0, a3, fail
|
|
bne a1, a2, fail
|
|
test_13:
|
|
li gp, 0xd
|
|
la a0, test_13_data
|
|
flw ft0, 0(a0)
|
|
flw ft1, 4(a0)
|
|
flw ft2, 8(a0)
|
|
lw a3, 12(a0)
|
|
fnmsub.s ft3, ft0, ft1, ft2
|
|
fmv.x.s a0, ft3
|
|
fsflags a1, zero
|
|
li a2, 0x0
|
|
bne a0, a3, fail
|
|
bne a1, a2, fail
|
|
|
|
------------------------------- Allocating code --------------------------------
|
|
|
|
Section: .section .text.init [pa=0x0000000080000000, va=0x0000000080000000]
|
|
|
|
|
|
------------------------ Ended Processing Main Section -------------------------
|
|
|
|
|
|
------------- Running Execution from Prologue (riscv_test.rb:231) --------------
|
|
|
|
|
|
---------------------------------- Instance 0 ----------------------------------
|
|
|
|
Execution status: 0x0000000080000000
|
|
|
|
.align 6
|
|
.weak stvec_handler
|
|
.weak mtvec_handler
|
|
_start:
|
|
0x0000000080000000 j reset_vector
|
|
Jump to 0x000000008000004c
|
|
reset_vector:
|
|
0x000000008000004c csrr a0, mhartid
|
|
1:
|
|
0x0000000080000050 bnez a0, 1b
|
|
0x0000000080000054 la t0, 1f
|
|
0x000000008000005c csrw mtvec, t0
|
|
0x0000000080000060 csrwi satp, 0x0
|
|
.align 2
|
|
1:
|
|
0x0000000080000064 la t0, 1f
|
|
0x000000008000006c csrw mtvec, t0
|
|
0x0000000080000070 li t0, 0xffffffffffffffff
|
|
0x0000000080000074 csrw pmpaddr0, t0
|
|
0x0000000080000078 li t0, 0x1f
|
|
0x000000008000007c csrw pmpcfg0, t0
|
|
.align 2
|
|
1:
|
|
0x0000000080000080 la t0, 1f
|
|
0x0000000080000088 csrw mtvec, t0
|
|
0x000000008000008c csrwi medeleg, 0x0
|
|
0x0000000080000090 csrwi mideleg, 0x0
|
|
0x0000000080000094 csrwi mie, 0x0
|
|
.align 2
|
|
1:
|
|
0x0000000080000098 li gp, 0x0
|
|
0x000000008000009c la t0, trap_vector
|
|
0x00000000800000a4 csrw mtvec, t0
|
|
0x00000000800000a8 li a0, 0x1
|
|
0x00000000800000ac slli a0, a0, 0x1f
|
|
0x00000000800000b0 bgez a0, 1f
|
|
Jump to 0x00000000800000c0
|
|
1:
|
|
0x00000000800000c0 la t0, stvec_handler
|
|
0x00000000800000c8 beqz t0, 1f
|
|
Jump to 0x00000000800000e4
|
|
1:
|
|
0x00000000800000e4 csrwi mstatus, 0x0
|
|
0x00000000800000e8 li a0, 0x2000
|
|
0x00000000800000f0 csrs mstatus, a0
|
|
0x00000000800000f4 csrwi fcsr, 0x0
|
|
0x00000000800000f8 la t0, 1f
|
|
0x0000000080000100 csrw mepc, t0
|
|
0x0000000080000104 csrr a0, mhartid
|
|
0x0000000080000108 mret
|
|
1:
|
|
test_2:
|
|
0x000000008000010c li gp, 0x2
|
|
0x0000000080000110 la a0, test_2_data
|
|
0x0000000080000118 flw ft0, 0(a0)
|
|
0x000000008000011c flw ft1, 4(a0)
|
|
0x0000000080000120 flw ft2, 8(a0)
|
|
0x0000000080000124 lw a3, 12(a0)
|
|
0x0000000080000128 fmadd.s ft3, ft0, ft1, ft2
|
|
0x000000008000012c fmv.x.s a0, ft3
|
|
0x0000000080000130 fsflags a1, zero
|
|
0x0000000080000134 li a2, 0x0
|
|
Reference to undefined label fail:
|
|
Check: a0(0x0000000040600000) == a3(0x0000000040600000)
|
|
0x0000000080000138 bne a0, a3, fail
|
|
Call is not executed. Simulation is paused until the label is allocated.
|
|
|
|
--------------- Constructed Epilogue (riscv_test_macros.rb:870) ----------------
|
|
|
|
bne zero, gp, pass
|
|
fail:
|
|
fence
|
|
1:
|
|
beqz gp, 1b
|
|
sll gp, gp, ra
|
|
or gp, gp, ra
|
|
ecall
|
|
pass:
|
|
fence
|
|
li gp, 0x1
|
|
ecall
|
|
unimp
|
|
|
|
------------------------------- Allocating code --------------------------------
|
|
|
|
Section: .section .text.init [pa=0x0000000080000000, va=0x0000000080000000]
|
|
|
|
|
|
---------- Running Execution from Epilogue (riscv_test_macros.rb:870) ----------
|
|
|
|
|
|
---------------------------------- Instance 0 ----------------------------------
|
|
|
|
Execution status: 0x0000000080000138 (waiting for label fail)
|
|
|
|
Check: a0(0x0000000040600000) == a3(0x0000000040600000)
|
|
0x0000000080000138 bne a0, a3, fail
|
|
Check: a1(0x0000000000000000) == a2(0x0000000000000000)
|
|
0x000000008000013c bne a1, a2, fail
|
|
test_3:
|
|
0x0000000080000140 li gp, 0x3
|
|
0x0000000080000144 la a0, test_3_data
|
|
0x000000008000014c flw ft0, 0(a0)
|
|
0x0000000080000150 flw ft1, 4(a0)
|
|
0x0000000080000154 flw ft2, 8(a0)
|
|
0x0000000080000158 lw a3, 12(a0)
|
|
0x000000008000015c fmadd.s ft3, ft0, ft1, ft2
|
|
0x0000000080000160 fmv.x.s a0, ft3
|
|
0x0000000080000164 fsflags a1, zero
|
|
0x0000000080000168 li a2, 0x1
|
|
Check: a0(0x00000000449a8666) == a3(0x00000000449a8666)
|
|
0x000000008000016c bne a0, a3, fail
|
|
Check: a1(0x0000000000000001) == a2(0x0000000000000001)
|
|
0x0000000080000170 bne a1, a2, fail
|
|
test_4:
|
|
0x0000000080000174 li gp, 0x4
|
|
0x0000000080000178 la a0, test_4_data
|
|
0x0000000080000180 flw ft0, 0(a0)
|
|
0x0000000080000184 flw ft1, 4(a0)
|
|
0x0000000080000188 flw ft2, 8(a0)
|
|
0x000000008000018c lw a3, 12(a0)
|
|
0x0000000080000190 fmadd.s ft3, ft0, ft1, ft2
|
|
0x0000000080000194 fmv.x.s a0, ft3
|
|
0x0000000080000198 fsflags a1, zero
|
|
0x000000008000019c li a2, 0x0
|
|
Check: a0(0xffffffffc1400000) == a3(0xffffffffc1400000)
|
|
0x00000000800001a0 bne a0, a3, fail
|
|
Check: a1(0x0000000000000000) == a2(0x0000000000000000)
|
|
0x00000000800001a4 bne a1, a2, fail
|
|
test_5:
|
|
0x00000000800001a8 li gp, 0x5
|
|
0x00000000800001ac la a0, test_5_data
|
|
0x00000000800001b4 flw ft0, 0(a0)
|
|
0x00000000800001b8 flw ft1, 4(a0)
|
|
0x00000000800001bc flw ft2, 8(a0)
|
|
0x00000000800001c0 lw a3, 12(a0)
|
|
0x00000000800001c4 fnmadd.s ft3, ft0, ft1, ft2
|
|
0x00000000800001c8 fmv.x.s a0, ft3
|
|
0x00000000800001cc fsflags a1, zero
|
|
0x00000000800001d0 li a2, 0x0
|
|
Check: a0(0xffffffffc0600000) == a3(0xffffffffc0600000)
|
|
0x00000000800001d4 bne a0, a3, fail
|
|
Check: a1(0x0000000000000000) == a2(0x0000000000000000)
|
|
0x00000000800001d8 bne a1, a2, fail
|
|
test_6:
|
|
0x00000000800001dc li gp, 0x6
|
|
0x00000000800001e0 la a0, test_6_data
|
|
0x00000000800001e8 flw ft0, 0(a0)
|
|
0x00000000800001ec flw ft1, 4(a0)
|
|
0x00000000800001f0 flw ft2, 8(a0)
|
|
0x00000000800001f4 lw a3, 12(a0)
|
|
0x00000000800001f8 fnmadd.s ft3, ft0, ft1, ft2
|
|
0x00000000800001fc fmv.x.s a0, ft3
|
|
0x0000000080000200 fsflags a1, zero
|
|
0x0000000080000204 li a2, 0x1
|
|
Check: a0(0xffffffffc49a8666) == a3(0xffffffffc49a8666)
|
|
0x0000000080000208 bne a0, a3, fail
|
|
Check: a1(0x0000000000000001) == a2(0x0000000000000001)
|
|
0x000000008000020c bne a1, a2, fail
|
|
test_7:
|
|
0x0000000080000210 li gp, 0x7
|
|
0x0000000080000214 la a0, test_7_data
|
|
0x000000008000021c flw ft0, 0(a0)
|
|
0x0000000080000220 flw ft1, 4(a0)
|
|
0x0000000080000224 flw ft2, 8(a0)
|
|
0x0000000080000228 lw a3, 12(a0)
|
|
0x000000008000022c fnmadd.s ft3, ft0, ft1, ft2
|
|
0x0000000080000230 fmv.x.s a0, ft3
|
|
0x0000000080000234 fsflags a1, zero
|
|
0x0000000080000238 li a2, 0x0
|
|
Check: a0(0x0000000041400000) == a3(0x0000000041400000)
|
|
0x000000008000023c bne a0, a3, fail
|
|
Check: a1(0x0000000000000000) == a2(0x0000000000000000)
|
|
0x0000000080000240 bne a1, a2, fail
|
|
test_8:
|
|
0x0000000080000244 li gp, 0x8
|
|
0x0000000080000248 la a0, test_8_data
|
|
0x0000000080000250 flw ft0, 0(a0)
|
|
0x0000000080000254 flw ft1, 4(a0)
|
|
0x0000000080000258 flw ft2, 8(a0)
|
|
0x000000008000025c lw a3, 12(a0)
|
|
0x0000000080000260 fmsub.s ft3, ft0, ft1, ft2
|
|
0x0000000080000264 fmv.x.s a0, ft3
|
|
0x0000000080000268 fsflags a1, zero
|
|
0x000000008000026c li a2, 0x0
|
|
Check: a0(0x000000003fc00000) == a3(0x000000003fc00000)
|
|
0x0000000080000270 bne a0, a3, fail
|
|
Check: a1(0x0000000000000000) == a2(0x0000000000000000)
|
|
0x0000000080000274 bne a1, a2, fail
|
|
test_9:
|
|
0x0000000080000278 li gp, 0x9
|
|
0x000000008000027c la a0, test_9_data
|
|
0x0000000080000284 flw ft0, 0(a0)
|
|
0x0000000080000288 flw ft1, 4(a0)
|
|
0x000000008000028c flw ft2, 8(a0)
|
|
0x0000000080000290 lw a3, 12(a0)
|
|
0x0000000080000294 fmsub.s ft3, ft0, ft1, ft2
|
|
0x0000000080000298 fmv.x.s a0, ft3
|
|
0x000000008000029c fsflags a1, zero
|
|
0x00000000800002a0 li a2, 0x1
|
|
Check: a0(0x00000000449a4000) == a3(0x00000000000004d2)
|
|
0x00000000800002a4 bne a0, a3, fail
|
|
Jump to 0x0000000080000380
|
|
Error: Test failed (self check did not pass)!
|
|
fail:
|
|
0x0000000080000380 fence
|
|
1:
|
|
0x0000000080000384 beqz gp, 1b
|
|
0x0000000080000388 sll gp, gp, ra
|
|
0x000000008000038c or gp, gp, ra
|
|
0x0000000080000390 ecall
|
|
pass:
|
|
0x0000000080000394 fence
|
|
0x0000000080000398 li gp, 0x1
|
|
0x000000008000039c ecall
|
|
0x00000000800003a0 unimp
|
|
Allocated entries: []
|
|
|
|
--------------------- Printing test program to madd_0000.s ---------------------
|
|
|
|
|
|
-------------------------- Ended Processing Template ---------------------------
|
|
|
|
|
|
-------------- Printing linker script to isa_tests/rv64uf/madd.ld --------------
|
|
|
|
Generation Statistics
|
|
Generation time: 0.530 seconds
|
|
Generation rate: 400 instructions/second
|
|
Programs/stimuli/instructions: 1/0/212
|