112771Sqtt2@cornell.edu# See LICENSE for license details. 212771Sqtt2@cornell.edu 312771Sqtt2@cornell.edu#***************************************************************************** 412771Sqtt2@cornell.edu# jalr.S 512771Sqtt2@cornell.edu#----------------------------------------------------------------------------- 612771Sqtt2@cornell.edu# 712771Sqtt2@cornell.edu# Test jalr instruction. 812771Sqtt2@cornell.edu# 912771Sqtt2@cornell.edu 1012771Sqtt2@cornell.edu#include "riscv_test.h" 1112771Sqtt2@cornell.edu#include "test_macros.h" 1212771Sqtt2@cornell.edu 1312771Sqtt2@cornell.eduRVTEST_RV64U 1412771Sqtt2@cornell.eduRVTEST_CODE_BEGIN 1512771Sqtt2@cornell.edu 1612771Sqtt2@cornell.edu #------------------------------------------------------------- 1712771Sqtt2@cornell.edu # Test 2: Basic test 1812771Sqtt2@cornell.edu #------------------------------------------------------------- 1912771Sqtt2@cornell.edu 2012771Sqtt2@cornell.edutest_2: 2112771Sqtt2@cornell.edu li TESTNUM, 2 2212771Sqtt2@cornell.edu li t0, 0 2312771Sqtt2@cornell.edu la t1, target_2 2412771Sqtt2@cornell.edu 2512771Sqtt2@cornell.edu jalr t0, t1, 0 2612771Sqtt2@cornell.edulinkaddr_2: 2712771Sqtt2@cornell.edu j fail 2812771Sqtt2@cornell.edu 2912771Sqtt2@cornell.edutarget_2: 3012771Sqtt2@cornell.edu la t1, linkaddr_2 3112771Sqtt2@cornell.edu bne t0, t1, fail 3212771Sqtt2@cornell.edu 3312771Sqtt2@cornell.edu #------------------------------------------------------------- 3412771Sqtt2@cornell.edu # Bypassing tests 3512771Sqtt2@cornell.edu #------------------------------------------------------------- 3612771Sqtt2@cornell.edu 3712771Sqtt2@cornell.edu TEST_JALR_SRC1_BYPASS( 4, 0, jalr ); 3812771Sqtt2@cornell.edu TEST_JALR_SRC1_BYPASS( 5, 1, jalr ); 3912771Sqtt2@cornell.edu TEST_JALR_SRC1_BYPASS( 6, 2, jalr ); 4012771Sqtt2@cornell.edu 4112771Sqtt2@cornell.edu #------------------------------------------------------------- 4212771Sqtt2@cornell.edu # Test delay slot instructions not executed nor bypassed 4312771Sqtt2@cornell.edu #------------------------------------------------------------- 4412771Sqtt2@cornell.edu 4512771Sqtt2@cornell.edu .option push 4612771Sqtt2@cornell.edu .align 2 4712771Sqtt2@cornell.edu .option norvc 4812771Sqtt2@cornell.edu TEST_CASE( 7, t0, 4, \ 4912771Sqtt2@cornell.edu li t0, 1; \ 5012771Sqtt2@cornell.edu la t1, 1f; \ 5112771Sqtt2@cornell.edu jr t1, -4; \ 5212771Sqtt2@cornell.edu addi t0, t0, 1; \ 5312771Sqtt2@cornell.edu addi t0, t0, 1; \ 5412771Sqtt2@cornell.edu addi t0, t0, 1; \ 5512771Sqtt2@cornell.edu addi t0, t0, 1; \ 5612771Sqtt2@cornell.edu1: addi t0, t0, 1; \ 5712771Sqtt2@cornell.edu addi t0, t0, 1; \ 5812771Sqtt2@cornell.edu ) 5912771Sqtt2@cornell.edu .option pop 6012771Sqtt2@cornell.edu 6112771Sqtt2@cornell.edu TEST_PASSFAIL 6212771Sqtt2@cornell.edu 6312771Sqtt2@cornell.eduRVTEST_CODE_END 6412771Sqtt2@cornell.edu 6512771Sqtt2@cornell.edu .data 6612771Sqtt2@cornell.eduRVTEST_DATA_BEGIN 6712771Sqtt2@cornell.edu 6812771Sqtt2@cornell.edu TEST_DATA 6912771Sqtt2@cornell.edu 7012771Sqtt2@cornell.eduRVTEST_DATA_END 71