From 2cbc1c4161650daaa62f1cf0eadb870ddce2d33f Mon Sep 17 00:00:00 2001 From: Blaise Tine Date: Wed, 17 Mar 2021 09:52:33 -0400 Subject: [PATCH] adding texture test to tex_demo --- driver/tests/tex_demo/.depend | 3 +- driver/tests/tex_demo/Makefile | 4 +- driver/tests/tex_demo/common.h | 15 +- driver/tests/tex_demo/demo | Bin 48672 -> 154176 bytes driver/tests/tex_demo/demo.cpp | 157 +++--- driver/tests/tex_demo/kernel.bin | Bin 7004 -> 6340 bytes driver/tests/tex_demo/kernel.c | 62 ++- driver/tests/tex_demo/kernel.dump | 815 ++++++++++++------------------ driver/tests/tex_demo/kernel.elf | Bin 9104 -> 8176 bytes driver/tests/tex_demo/sample.tga | Bin 0 -> 197147 bytes driver/tests/tex_demo/utils.cpp | 115 +++++ driver/tests/tex_demo/utils.h | 15 + hw/VX_config.h | 4 +- hw/rtl/VX_config.vh | 39 +- hw/rtl/VX_define.vh | 4 +- hw/rtl/tex_unit/VX_tex_unit.v | 8 +- runtime/include/vx_intrinsics.h | 45 ++ 17 files changed, 654 insertions(+), 632 deletions(-) create mode 100755 driver/tests/tex_demo/sample.tga create mode 100644 driver/tests/tex_demo/utils.cpp create mode 100644 driver/tests/tex_demo/utils.h diff --git a/driver/tests/tex_demo/.depend b/driver/tests/tex_demo/.depend index 1647eae7..f4820fca 100644 --- a/driver/tests/tex_demo/.depend +++ b/driver/tests/tex_demo/.depend @@ -1 +1,2 @@ -demo.o: demo.cpp ../../include/vortex.h common.h +demo.o: demo.cpp ../../include/vortex.h common.h utils.h +utils.o: utils.cpp utils.h diff --git a/driver/tests/tex_demo/Makefile b/driver/tests/tex_demo/Makefile index 8ca0c6c8..6a600c3c 100644 --- a/driver/tests/tex_demo/Makefile +++ b/driver/tests/tex_demo/Makefile @@ -1,7 +1,7 @@ RISCV_TOOLCHAIN_PATH ?= /opt/riscv-gnu-toolchain VORTEX_RT_PATH ?= $(wildcard ../../../runtime) -OPTS ?= -n64 +#OPTS ?= -s1.0 VX_CC = $(RISCV_TOOLCHAIN_PATH)/bin/riscv32-unknown-elf-gcc VX_CXX = $(RISCV_TOOLCHAIN_PATH)/bin/riscv32-unknown-elf-g++ @@ -22,7 +22,7 @@ CXXFLAGS += -I../../include PROJECT = demo -SRCS = demo.cpp +SRCS = demo.cpp utils.cpp all: $(PROJECT) kernel.bin kernel.dump diff --git a/driver/tests/tex_demo/common.h b/driver/tests/tex_demo/common.h index d24a889c..9de20206 100644 --- a/driver/tests/tex_demo/common.h +++ b/driver/tests/tex_demo/common.h @@ -1,15 +1,14 @@ #ifndef _COMMON_H_ #define _COMMON_H_ - -#define KERNEL_ARG_DEV_MEM_ADDR 0x7ffff000 - -// #include - struct kernel_arg_t { uint32_t num_tasks; - uint32_t task_size; - uint32_t src0_ptr; - uint32_t src1_ptr; + uint32_t src_width; + uint32_t src_height; + uint32_t src_pitch; + uint32_t dst_width; + uint32_t dst_height; + uint32_t dst_pitch; + uint32_t src_ptr; uint32_t dst_ptr; }; diff --git a/driver/tests/tex_demo/demo b/driver/tests/tex_demo/demo index 69c2c6e82b9d04b09ed18fd211a977351fb32995..aee45cbcdbd45b1599163fa90c33cf441d2b698b 100755 GIT binary patch literal 154176 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 N_4*HFF321P{~w}N{=xtN literal 48672 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 +#include #include #include +#include #include #include "common.h" +#include "utils.h" #define RT_CHECK(_expr) \ do { \ @@ -17,22 +20,30 @@ /////////////////////////////////////////////////////////////////////////////// const char* kernel_file = "kernel.bin"; -uint32_t count = 0; +const char* input_file = "sample.tga"; +const char* output_file = "output.tga"; +float scale = 1.0f; vx_device_h device = nullptr; vx_buffer_h buffer = nullptr; static void show_usage() { - std::cout << "Vortex Driver Test." << std::endl; - std::cout << "Usage: [-k: kernel] [-n words] [-h: help]" << std::endl; + std::cout << "Vortex Texture Test." << std::endl; + std::cout << "Usage: [-k: kernel] [-i image] [-o image] [-s scale] [-h: help]" << std::endl; } static void parse_args(int argc, char **argv) { int c; - while ((c = getopt(argc, argv, "n:k:h?")) != -1) { + while ((c = getopt(argc, argv, "i:o:k:h?")) != -1) { switch (c) { - case 'n': - count = atoi(optarg); + case 'i': + input_file = optarg; + break; + case 'o': + output_file = optarg; + break; + case 's': + scale = std::stof(optarg, NULL); break; case 'k': kernel_file = optarg; @@ -58,9 +69,7 @@ void cleanup() { } } -int run_test(const kernel_arg_t& kernel_arg, - uint32_t buf_size, - uint32_t num_points) { +int run_test(const kernel_arg_t& kernel_arg, uint32_t buf_size, uint32_t width, uint32_t height, uint32_t dst_bpp) { // start device std::cout << "start device" << std::endl; RT_CHECK(vx_start(device)); @@ -73,40 +82,36 @@ int run_test(const kernel_arg_t& kernel_arg, std::cout << "download destination buffer" << std::endl; RT_CHECK(vx_copy_from_dev(buffer, kernel_arg.dst_ptr, buf_size, 0)); - // verify result - std::cout << "verify result" << std::endl; - { - int errors = 0; - auto buf_ptr = (int32_t*)vx_host_ptr(buffer); - for (uint32_t i = 0; i < num_points; ++i) { - int ref = 0xFAAF; - int cur = buf_ptr[i]; - if (cur != ref) { - std::cout << "error at result #" << i - << ": actual 0x" << cur << ", expected 0x" << ref << std::endl; - ++errors; - } - } - if (errors != 0) { - std::cout << "Found " << std::dec << errors << " errors!" << std::endl; - std::cout << "FAILED!" << std::endl; - return 1; - } - } + std::vector dst_pixels(buf_size); + auto buf_ptr = (int8_t*)vx_host_ptr(buffer); + for (uint32_t i = 0; i < buf_size; ++i) { + dst_pixels[i] = buf_ptr[i]; + } + + // save output image + std::cout << "save output image" << std::endl; + RT_CHECK(SaveTGA(output_file, dst_pixels, width, height, dst_bpp)); return 0; } int main(int argc, char *argv[]) { - size_t value; kernel_arg_t kernel_arg; - + std::vector src_pixels; + uint32_t src_width; + uint32_t src_height; + uint32_t src_bpp; + // parse command arguments parse_args(argc, argv); - if (count == 0) { - count = 1; - } + RT_CHECK(LoadTGA(input_file, src_pixels, &src_width, &src_height, &src_bpp)); + uint32_t src_bufsize = src_bpp * src_width * src_height; + + uint32_t dst_width = (uint32_t)(src_width * scale); + uint32_t dst_height = (uint32_t)(src_height * scale); + uint32_t dst_bpp = 4; + uint32_t dst_bufsize = dst_bpp * dst_width * dst_height; // open device connection std::cout << "open device connection" << std::endl; @@ -117,13 +122,11 @@ int main(int argc, char *argv[]) { RT_CHECK(vx_dev_caps(device, VX_CAPS_MAX_WARPS, &max_warps)); RT_CHECK(vx_dev_caps(device, VX_CAPS_MAX_THREADS, &max_threads)); - // uint32_t num_tasks = max_cores * max_warps * max_threads; - uint32_t num_tasks = 1; - uint32_t num_points = count * num_tasks; - uint32_t buf_size = num_points * sizeof(uint32_t); + uint32_t num_tasks = max_cores * max_warps * max_threads; - std::cout << "number of points: " << num_points << std::endl; - std::cout << "buffer size: " << buf_size << " bytes" << std::endl; + std::cout << "number of tasks: " << num_tasks << std::endl; + std::cout << "source buffer: width=" << src_width << ", heigth=" << src_height << ", size=" << src_bufsize << " bytes" << std::endl; + std::cout << "destination buffer: width=" << dst_width << ", heigth=" << dst_height << ", size=" << dst_bufsize << " bytes" << std::endl; // upload program std::cout << "upload program" << std::endl; @@ -131,67 +134,63 @@ int main(int argc, char *argv[]) { // allocate device memory std::cout << "allocate device memory" << std::endl; + size_t arg_addr, src_addr, dst_addr; + RT_CHECK(vx_alloc_dev_mem(device, sizeof(kernel_arg_t), &arg_addr)); + RT_CHECK(vx_alloc_dev_mem(device, src_bufsize, &src_addr)); + RT_CHECK(vx_alloc_dev_mem(device, dst_bufsize, &dst_addr)); - RT_CHECK(vx_alloc_dev_mem(device, buf_size, &value)); - kernel_arg.src0_ptr = value; - RT_CHECK(vx_alloc_dev_mem(device, buf_size, &value)); - kernel_arg.src1_ptr = value; - RT_CHECK(vx_alloc_dev_mem(device, buf_size, &value)); - kernel_arg.dst_ptr = value; + assert(arg_addr == ALLOC_BASE_ADDR); - kernel_arg.num_tasks = num_tasks; - kernel_arg.task_size = count; + std::cout << "arg_addr=" << std::hex << arg_addr << std::endl; + std::cout << "src_addr=" << std::hex << src_addr << std::endl; + std::cout << "dst_addr=" << std::hex << dst_addr << std::endl; - std::cout << "dev_src0=" << std::hex << kernel_arg.src0_ptr << std::endl; - std::cout << "dev_src1=" << std::hex << kernel_arg.src1_ptr << std::endl; - std::cout << "dev_dst=" << std::hex << kernel_arg.dst_ptr << std::endl; - - // allocate shared memory + // allocate staging shared memory std::cout << "allocate shared memory" << std::endl; - uint32_t alloc_size = std::max(buf_size, sizeof(kernel_arg_t)); + uint32_t alloc_size = std::max(sizeof(kernel_arg_t), std::max(src_bufsize, dst_bufsize)); RT_CHECK(vx_alloc_shared_mem(device, alloc_size, &buffer)); // upload kernel argument std::cout << "upload kernel argument" << std::endl; { + kernel_arg.num_tasks = std::min(num_tasks, dst_height); + kernel_arg.src_width = src_width; + kernel_arg.src_height = src_height; + kernel_arg.src_pitch = src_bpp * src_width * src_height; + kernel_arg.dst_width = dst_width; + kernel_arg.dst_height = dst_height; + kernel_arg.dst_pitch = dst_bpp * dst_width * dst_height; + kernel_arg.src_ptr = src_addr; + kernel_arg.dst_ptr = dst_addr; + auto buf_ptr = (int*)vx_host_ptr(buffer); memcpy(buf_ptr, &kernel_arg, sizeof(kernel_arg_t)); - RT_CHECK(vx_copy_to_dev(buffer, KERNEL_ARG_DEV_MEM_ADDR, sizeof(kernel_arg_t), 0)); + RT_CHECK(vx_copy_to_dev(buffer, arg_addr, sizeof(kernel_arg_t), 0)); } // upload source buffer0 - { - auto buf_ptr = (int32_t*)vx_host_ptr(buffer); - for (uint32_t i = 0; i < num_points; ++i) { - buf_ptr[i] = i-1; - } - } std::cout << "upload source buffer0" << std::endl; - RT_CHECK(vx_copy_to_dev(buffer, kernel_arg.src0_ptr, buf_size, 0)); - - // upload source buffer1 - { - auto buf_ptr = (int32_t*)vx_host_ptr(buffer); - for (uint32_t i = 0; i < num_points; ++i) { - buf_ptr[i] = i+1; - } + { + auto buf_ptr = (int8_t*)vx_host_ptr(buffer); + for (uint32_t i = 0; i < src_bufsize; ++i) { + buf_ptr[i] = src_pixels[i]; + } + RT_CHECK(vx_copy_to_dev(buffer, kernel_arg.src_ptr, src_bufsize, 0)); } - std::cout << "upload source buffer1" << std::endl; - RT_CHECK(vx_copy_to_dev(buffer, kernel_arg.src1_ptr, buf_size, 0)); // clear destination buffer - { - auto buf_ptr = (int32_t*)vx_host_ptr(buffer); - for (uint32_t i = 0; i < num_points; ++i) { - buf_ptr[i] = 0xdeadbeef; - } - } std::cout << "clear destination buffer" << std::endl; - RT_CHECK(vx_copy_to_dev(buffer, kernel_arg.dst_ptr, buf_size, 0)); + { + auto buf_ptr = (int32_t*)vx_host_ptr(buffer); + for (uint32_t i = 0; i < (dst_bufsize/4); ++i) { + buf_ptr[i] = 0xdeadbeef; + } + RT_CHECK(vx_copy_to_dev(buffer, kernel_arg.dst_ptr, dst_bufsize, 0)); + } // run tests std::cout << "run tests" << std::endl; - RT_CHECK(run_test(kernel_arg, buf_size, num_points)); + RT_CHECK(run_test(kernel_arg, dst_bufsize, dst_width, dst_height, dst_bpp)); // cleanup std::cout << "cleanup" << std::endl; diff --git a/driver/tests/tex_demo/kernel.bin b/driver/tests/tex_demo/kernel.bin index 71e9dd0366de9eca5f7bf8fcdaf72e6d2147c5ef..c992ca179c3cf86a25996c8145a9eb5d72ad4957 100755 GIT binary patch delta 330 zcmYjMJxc>Y5Ph55z2zj}og2IqBIxA<8zBZvV{wHd2bLBp>8`Lyp^zVtJ(8e=G+~RR z6D+Lkg4jkd|G~oEMmW151auNC92j0P?`z)oUn{Ml08FH6QdZfb@CbC_guqIp>3BvFC^>eApedulPJJMY7&s9`CBSO7+d^9#cFv?{T;aTDMD$k zf7rpDX*wTM4GYN6GXYYT9eES#abH0M8}-qT;ZxCn1` z9(>hg%6x4&-&sO3Hn5LZ5&EmpKcpeYCSj+qz|M?7iEXMsg^neOP!gJmMr4U})}B~_ z6m!`6-rx5o*1+ip+;ppyMXQuSzmbKjmow18-Fg`O4R6H)UlGi!HKA@-pe+HF_y@|L z<<7<)^(Bb$D|j`ZuxW(Wb3=)ZVNE3}WjJ4^nYSw7-I^mAg6NN;O@p@%SN8Sq@1fu( zKvEbdndp~JB>SZ_`n~M=mbALencF=S z#s!yF63)iYQ0K~H-1+m_A?HE+fL`1gs86;H9p`YCcc3n88)5tc!se2po-Y~BeQ_}I zT-_DiiCN^o1=SY3kt0Vc_v-f46G&@~cJwQ`NOp(8;ITld>97rKw$N=jTrn(klAK*0IzCXtMzVG-%Tl1B^4U39v~9xrr{?ds)4 zgwJZU2B5IHeyRG)>{L+qvg_ROt>IFl1$DZQHfhu#%3~u%0Uw1cMYBkWDC$x6#ru9y zCMrdh*vm(8jbbc6&*e$7A%$Pm*VysHQOmty%l{sY>xb-(5!Ceq<0pdfTRu86{tf8A Z`tLe=1g=l#1sz=#H^cmx%f&SD_!kfABBTHS diff --git a/driver/tests/tex_demo/kernel.c b/driver/tests/tex_demo/kernel.c index 9a936c1d..1e36b359 100644 --- a/driver/tests/tex_demo/kernel.c +++ b/driver/tests/tex_demo/kernel.c @@ -2,30 +2,56 @@ #include #include #include "common.h" +struct tile_arg_t { + struct kernel_arg_t karg; + uint32_t tile_width; + uint32_t tile_height; + float deltaX; + float deltaY; +}; void kernel_body(int task_id, void* arg) { - struct kernel_arg_t* _arg = (struct kernel_arg_t*)(arg); - uint32_t count = _arg->task_size; - // int32_t* src0_ptr = (int32_t*)_arg->src0_ptr; - // int32_t* src1_ptr = (int32_t*)_arg->src1_ptr; - int32_t* dst_ptr = (int32_t*)_arg->dst_ptr; + struct tile_arg_t* _arg = (struct tile_arg_t*)(arg); + + uint32_t xoffset = task_id * _arg->tile_width; + uint32_t yoffset = task_id * _arg->tile_height; + uint32_t* dst_ptr = (uint32_t*)_arg->karg.dst_ptr + xoffset + yoffset * _arg->karg.dst_pitch; - unsigned lod = 1; - unsigned u = 1; - unsigned v = 1; - unsigned t = 1; + float fu = xoffset * _arg->deltaX; + float fv = yoffset * _arg->deltaY; - // vx_csr_set(_arg->device_ptr, 0, 0xfd0, 0xffd); - - uint32_t offset = task_id * count; - - for (uint32_t i = 0; i < count; ++i) { - // dst_ptr[offset+i] = src0_ptr[offset+i] + src1_ptr[offset+i]; - dst_ptr[offset+i] = vx_tex(t, u, v, lod); + for (uint32_t y = 0; y < _arg->tile_height; ++y) { + for (uint32_t x = 0; x < _arg->tile_width; ++x) { + int32_t u = (int32_t)(fu * (1<<28)); + int32_t v = (int32_t)(fv * (1<<28)); + dst_ptr[x] = vx_tex(0, u, v, 0); + fu += _arg->deltaX; + } + dst_ptr += _arg->karg.dst_pitch; + fv += _arg->deltaY; } } int main() { - struct kernel_arg_t* arg = (struct kernel_arg_t*)KERNEL_ARG_DEV_MEM_ADDR; - vx_spawn_tasks(arg->num_tasks, kernel_body, arg); + struct kernel_arg_t* arg = (struct kernel_arg_t*)0x0; + + // configure texture unit + vx_csr_write(CSR_TEX0_ADDR, arg->src_ptr); + vx_csr_write(CSR_TEX0_FORMAT, 0); + vx_csr_write(CSR_TEX0_WIDTH, arg->src_width); + vx_csr_write(CSR_TEX0_HEIGHT, arg->src_height); + vx_csr_write(CSR_TEX0_PITCH, arg->src_pitch); + vx_csr_write(CSR_TEX0_WRAP_U, 0); + vx_csr_write(CSR_TEX0_WRAP_V, 0); + vx_csr_write(CSR_TEX0_MIN_FILTER, 0); + vx_csr_write(CSR_TEX0_MAX_FILTER, 0); + + struct tile_arg_t targ; + targ.karg = *arg; + targ.tile_width = arg->dst_width; + targ.tile_height = (arg->dst_height + arg->num_tasks - 1) / arg->num_tasks; + targ.deltaX = 1.0f / arg->dst_width; + targ.deltaY = 1.0f / arg->dst_height; + + vx_spawn_tasks(arg->num_tasks, kernel_body, targ); } \ No newline at end of file diff --git a/driver/tests/tex_demo/kernel.dump b/driver/tests/tex_demo/kernel.dump index da75481c..b9f88ac4 100644 --- a/driver/tests/tex_demo/kernel.dump +++ b/driver/tests/tex_demo/kernel.dump @@ -6,539 +6,360 @@ Disassembly of section .init: 80000000 <_start>: 80000000: 00000597 auipc a1,0x0 -80000004: 0f458593 addi a1,a1,244 # 800000f4 +80000004: 07858593 addi a1,a1,120 # 80000078 80000008: fc102573 csrr a0,0xfc1 8000000c: 00b5106b 0xb5106b -80000010: 0e4000ef jal ra,800000f4 +80000010: 068000ef jal ra,80000078 80000014: 00100513 li a0,1 80000018: 0005006b 0x5006b 8000001c: 00002517 auipc a0,0x2 -80000020: b4050513 addi a0,a0,-1216 # 80001b5c +80000020: 8a850513 addi a0,a0,-1880 # 800018c4 <__BSS_END__> 80000024: 00002617 auipc a2,0x2 -80000028: bb860613 addi a2,a2,-1096 # 80001bdc <__BSS_END__> +80000028: 8a060613 addi a2,a2,-1888 # 800018c4 <__BSS_END__> 8000002c: 40a60633 sub a2,a2,a0 80000030: 00000593 li a1,0 -80000034: 458000ef jal ra,8000048c +80000034: 1c0000ef jal ra,800001f4 80000038: 00000517 auipc a0,0x0 -8000003c: 35c50513 addi a0,a0,860 # 80000394 <__libc_fini_array> -80000040: 30c000ef jal ra,8000034c -80000044: 3ac000ef jal ra,800003f0 <__libc_init_array> +8000003c: 0c450513 addi a0,a0,196 # 800000fc <__libc_fini_array> +80000040: 074000ef jal ra,800000b4 +80000044: 114000ef jal ra,80000158 <__libc_init_array> 80000048: 008000ef jal ra,80000050
-8000004c: 3140006f j 80000360 +8000004c: 07c0006f j 800000c8 Disassembly of section .text: 80000050
: -80000050: 7ffff7b7 lui a5,0x7ffff -80000054: 0007a503 lw a0,0(a5) # 7ffff000 <__stack_size+0x7fffec00> -80000058: 800005b7 lui a1,0x80000 -8000005c: 7ffff637 lui a2,0x7ffff -80000060: 08058593 addi a1,a1,128 # 80000080 <__stack_top+0x81000080> -80000064: 18c0006f j 800001f0 +80000050: 01c02783 lw a5,28(zero) # 1c <__stack_usage+0x1c> +80000054: 00100073 ebreak -80000068 : -80000068: 00000793 li a5,0 -8000006c: 00078863 beqz a5,8000007c -80000070: 80000537 lui a0,0x80000 -80000074: 39450513 addi a0,a0,916 # 80000394 <__stack_top+0x81000394> -80000078: 2d40006f j 8000034c -8000007c: 00008067 ret +80000058 : +80000058: 00000793 li a5,0 +8000005c: 00078863 beqz a5,8000006c +80000060: 80000537 lui a0,0x80000 +80000064: 0fc50513 addi a0,a0,252 # 800000fc <__stack_top+0x810000fc> +80000068: 04c0006f j 800000b4 +8000006c: 00008067 ret -80000080 : -80000080: 0045a783 lw a5,4(a1) -80000084: 0105a703 lw a4,16(a1) -80000088: 02f50533 mul a0,a0,a5 -8000008c: 04078e63 beqz a5,800000e8 -80000090: ff010113 addi sp,sp,-16 -80000094: 00912223 sw s1,4(sp) -80000098: 00a784b3 add s1,a5,a0 -8000009c: 00249493 slli s1,s1,0x2 -800000a0: 00251513 slli a0,a0,0x2 -800000a4: 00812423 sw s0,8(sp) -800000a8: 00112623 sw ra,12(sp) -800000ac: 00e50433 add s0,a0,a4 -800000b0: 00e484b3 add s1,s1,a4 -800000b4: 00100693 li a3,1 -800000b8: 00100613 li a2,1 -800000bc: 00100593 li a1,1 -800000c0: 00100513 li a0,1 -800000c4: 274000ef jal ra,80000338 -800000c8: 00a42023 sw a0,0(s0) -800000cc: 00440413 addi s0,s0,4 -800000d0: fe8492e3 bne s1,s0,800000b4 -800000d4: 00c12083 lw ra,12(sp) -800000d8: 00812403 lw s0,8(sp) -800000dc: 00412483 lw s1,4(sp) -800000e0: 01010113 addi sp,sp,16 -800000e4: 00008067 ret -800000e8: 00008067 ret +80000070 <_exit>: +80000070: 00000513 li a0,0 +80000074: 0005006b 0x5006b -800000ec <_exit>: -800000ec: 00000513 li a0,0 -800000f0: 0005006b 0x5006b +80000078 : +80000078: fc002573 csrr a0,0xfc0 +8000007c: 0005006b 0x5006b +80000080: 00002197 auipc gp,0x2 +80000084: c1818193 addi gp,gp,-1000 # 80001c98 <__global_pointer> +80000088: 7f000117 auipc sp,0x7f000 +8000008c: f7810113 addi sp,sp,-136 # ff000000 <__stack_top> +80000090: 40000593 li a1,1024 +80000094: cc102673 csrr a2,0xcc1 +80000098: 02c585b3 mul a1,a1,a2 +8000009c: 40b10133 sub sp,sp,a1 +800000a0: cc3026f3 csrr a3,0xcc3 +800000a4: 00068663 beqz a3,800000b0 +800000a8: 00000513 li a0,0 +800000ac: 0005006b 0x5006b -800000f4 : -800000f4: fc002573 csrr a0,0xfc0 -800000f8: 0005006b 0x5006b -800000fc: 00002197 auipc gp,0x2 -80000100: e3418193 addi gp,gp,-460 # 80001f30 <__global_pointer> -80000104: 7f000117 auipc sp,0x7f000 -80000108: efc10113 addi sp,sp,-260 # ff000000 <__stack_top> -8000010c: 40000593 li a1,1024 -80000110: cc102673 csrr a2,0xcc1 -80000114: 02c585b3 mul a1,a1,a2 -80000118: 40b10133 sub sp,sp,a1 -8000011c: cc3026f3 csrr a3,0xcc3 -80000120: 00068663 beqz a3,8000012c -80000124: 00000513 li a0,0 -80000128: 0005006b 0x5006b +800000b0 : +800000b0: 00008067 ret -8000012c : -8000012c: 00008067 ret +800000b4 : +800000b4: 00050593 mv a1,a0 +800000b8: 00000693 li a3,0 +800000bc: 00000613 li a2,0 +800000c0: 00000513 li a0,0 +800000c4: 20c0006f j 800002d0 <__register_exitproc> -80000130 : -80000130: fe010113 addi sp,sp,-32 -80000134: 00112e23 sw ra,28(sp) -80000138: 00812c23 sw s0,24(sp) -8000013c: 00912a23 sw s1,20(sp) -80000140: 01212823 sw s2,16(sp) -80000144: 01312623 sw s3,12(sp) -80000148: fc0027f3 csrr a5,0xfc0 -8000014c: 0007806b 0x7806b -80000150: cc5026f3 csrr a3,0xcc5 -80000154: cc3029f3 csrr s3,0xcc3 -80000158: cc002773 csrr a4,0xcc0 -8000015c: fc002673 csrr a2,0xfc0 -80000160: 800027b7 lui a5,0x80002 -80000164: 00269693 slli a3,a3,0x2 -80000168: b5c78793 addi a5,a5,-1188 # 80001b5c <__stack_top+0x81001b5c> -8000016c: 00d787b3 add a5,a5,a3 -80000170: 0007a483 lw s1,0(a5) -80000174: 0104a403 lw s0,16(s1) -80000178: 00c4a683 lw a3,12(s1) -8000017c: 0089a933 slt s2,s3,s0 -80000180: 00040793 mv a5,s0 -80000184: 00d90933 add s2,s2,a3 -80000188: 03368433 mul s0,a3,s3 -8000018c: 00f9d463 bge s3,a5,80000194 -80000190: 00098793 mv a5,s3 -80000194: 00f40433 add s0,s0,a5 -80000198: 0084a683 lw a3,8(s1) -8000019c: 02c40433 mul s0,s0,a2 -800001a0: 02e907b3 mul a5,s2,a4 -800001a4: 00d40433 add s0,s0,a3 -800001a8: 00f40433 add s0,s0,a5 -800001ac: 00890933 add s2,s2,s0 -800001b0: 01245e63 bge s0,s2,800001cc -800001b4: 0004a783 lw a5,0(s1) -800001b8: 0044a583 lw a1,4(s1) -800001bc: 00040513 mv a0,s0 -800001c0: 00140413 addi s0,s0,1 -800001c4: 000780e7 jalr a5 -800001c8: fe8916e3 bne s2,s0,800001b4 -800001cc: 0019b993 seqz s3,s3 -800001d0: 0009806b 0x9806b -800001d4: 01c12083 lw ra,28(sp) -800001d8: 01812403 lw s0,24(sp) -800001dc: 01412483 lw s1,20(sp) -800001e0: 01012903 lw s2,16(sp) -800001e4: 00c12983 lw s3,12(sp) -800001e8: 02010113 addi sp,sp,32 -800001ec: 00008067 ret +800000c8 : +800000c8: ff010113 addi sp,sp,-16 +800000cc: 00000593 li a1,0 +800000d0: 00812423 sw s0,8(sp) +800000d4: 00112623 sw ra,12(sp) +800000d8: 00050413 mv s0,a0 +800000dc: 290000ef jal ra,8000036c <__call_exitprocs> +800000e0: 800027b7 lui a5,0x80002 +800000e4: 8c07a503 lw a0,-1856(a5) # 800018c0 <__stack_top+0x810018c0> +800000e8: 03c52783 lw a5,60(a0) +800000ec: 00078463 beqz a5,800000f4 +800000f0: 000780e7 jalr a5 +800000f4: 00040513 mv a0,s0 +800000f8: f79ff0ef jal ra,80000070 <_exit> -800001f0 : -800001f0: fc010113 addi sp,sp,-64 -800001f4: 02112e23 sw ra,60(sp) -800001f8: 02812c23 sw s0,56(sp) -800001fc: 02912a23 sw s1,52(sp) -80000200: 03212823 sw s2,48(sp) -80000204: 03312623 sw s3,44(sp) -80000208: fc2026f3 csrr a3,0xfc2 -8000020c: fc102873 csrr a6,0xfc1 -80000210: fc002473 csrr s0,0xfc0 -80000214: cc5027f3 csrr a5,0xcc5 -80000218: 01f00713 li a4,31 -8000021c: 0cf74463 blt a4,a5,800002e4 -80000220: 030408b3 mul a7,s0,a6 -80000224: 00100713 li a4,1 -80000228: 00a8d463 bge a7,a0,80000230 -8000022c: 03154733 div a4,a0,a7 -80000230: 0ce6c863 blt a3,a4,80000300 -80000234: 0ae7d863 bge a5,a4,800002e4 -80000238: fff68693 addi a3,a3,-1 -8000023c: 02e54333 div t1,a0,a4 -80000240: 00030893 mv a7,t1 -80000244: 00f69663 bne a3,a5,80000250 -80000248: 02e56533 rem a0,a0,a4 -8000024c: 006508b3 add a7,a0,t1 -80000250: 0288c4b3 div s1,a7,s0 -80000254: 0288e933 rem s2,a7,s0 -80000258: 0b04ca63 blt s1,a6,8000030c -8000025c: 00100693 li a3,1 -80000260: 0304c733 div a4,s1,a6 -80000264: 00070663 beqz a4,80000270 -80000268: 00070693 mv a3,a4 -8000026c: 0304e733 rem a4,s1,a6 -80000270: 800029b7 lui s3,0x80002 -80000274: b5c98993 addi s3,s3,-1188 # 80001b5c <__stack_top+0x81001b5c> -80000278: 00e12e23 sw a4,28(sp) -8000027c: 00c10713 addi a4,sp,12 -80000280: 00b12623 sw a1,12(sp) -80000284: 00c12823 sw a2,16(sp) -80000288: 00d12c23 sw a3,24(sp) -8000028c: 02f30333 mul t1,t1,a5 -80000290: 00279793 slli a5,a5,0x2 -80000294: 00f987b3 add a5,s3,a5 -80000298: 00e7a023 sw a4,0(a5) -8000029c: 00612a23 sw t1,20(sp) -800002a0: 06904c63 bgtz s1,80000318 -800002a4: 04090063 beqz s2,800002e4 -800002a8: 02848433 mul s0,s1,s0 -800002ac: 00812a23 sw s0,20(sp) -800002b0: 0009006b 0x9006b -800002b4: cc5027f3 csrr a5,0xcc5 -800002b8: cc202573 csrr a0,0xcc2 -800002bc: 00279793 slli a5,a5,0x2 -800002c0: 00f989b3 add s3,s3,a5 -800002c4: 0009a783 lw a5,0(s3) -800002c8: 0087a683 lw a3,8(a5) -800002cc: 0007a703 lw a4,0(a5) -800002d0: 0047a583 lw a1,4(a5) -800002d4: 00d50533 add a0,a0,a3 -800002d8: 000700e7 jalr a4 -800002dc: 00100793 li a5,1 -800002e0: 0007806b 0x7806b -800002e4: 03c12083 lw ra,60(sp) -800002e8: 03812403 lw s0,56(sp) -800002ec: 03412483 lw s1,52(sp) -800002f0: 03012903 lw s2,48(sp) -800002f4: 02c12983 lw s3,44(sp) -800002f8: 04010113 addi sp,sp,64 -800002fc: 00008067 ret -80000300: 00068713 mv a4,a3 -80000304: f2e7cae3 blt a5,a4,80000238 -80000308: fddff06f j 800002e4 -8000030c: 00000713 li a4,0 -80000310: 00100693 li a3,1 -80000314: f5dff06f j 80000270 -80000318: 00048713 mv a4,s1 -8000031c: 00985463 bge a6,s1,80000324 -80000320: 00080713 mv a4,a6 -80000324: 800007b7 lui a5,0x80000 -80000328: 13078793 addi a5,a5,304 # 80000130 <__stack_top+0x81000130> -8000032c: 00f7106b 0xf7106b -80000330: e01ff0ef jal ra,80000130 -80000334: f71ff06f j 800002a4 +800000fc <__libc_fini_array>: +800000fc: ff010113 addi sp,sp,-16 +80000100: 00812423 sw s0,8(sp) +80000104: 800017b7 lui a5,0x80001 +80000108: 80001437 lui s0,0x80001 +8000010c: 49440413 addi s0,s0,1172 # 80001494 <__stack_top+0x81001494> +80000110: 49478793 addi a5,a5,1172 # 80001494 <__stack_top+0x81001494> +80000114: 408787b3 sub a5,a5,s0 +80000118: 00912223 sw s1,4(sp) +8000011c: 00112623 sw ra,12(sp) +80000120: 4027d493 srai s1,a5,0x2 +80000124: 02048063 beqz s1,80000144 <__libc_fini_array+0x48> +80000128: ffc78793 addi a5,a5,-4 +8000012c: 00878433 add s0,a5,s0 +80000130: 00042783 lw a5,0(s0) +80000134: fff48493 addi s1,s1,-1 +80000138: ffc40413 addi s0,s0,-4 +8000013c: 000780e7 jalr a5 +80000140: fe0498e3 bnez s1,80000130 <__libc_fini_array+0x34> +80000144: 00c12083 lw ra,12(sp) +80000148: 00812403 lw s0,8(sp) +8000014c: 00412483 lw s1,4(sp) +80000150: 01010113 addi sp,sp,16 +80000154: 00008067 ret -80000338 : -80000338: 00869693 slli a3,a3,0x8 -8000033c: 00a6e6b3 or a3,a3,a0 -80000340: 00000513 li a0,0 -80000344: 6ac5d56b 0x6ac5d56b -80000348: 00008067 ret +80000158 <__libc_init_array>: +80000158: ff010113 addi sp,sp,-16 +8000015c: 00812423 sw s0,8(sp) +80000160: 01212023 sw s2,0(sp) +80000164: 80001437 lui s0,0x80001 +80000168: 80001937 lui s2,0x80001 +8000016c: 49040793 addi a5,s0,1168 # 80001490 <__stack_top+0x81001490> +80000170: 49090913 addi s2,s2,1168 # 80001490 <__stack_top+0x81001490> +80000174: 40f90933 sub s2,s2,a5 +80000178: 00112623 sw ra,12(sp) +8000017c: 00912223 sw s1,4(sp) +80000180: 40295913 srai s2,s2,0x2 +80000184: 02090063 beqz s2,800001a4 <__libc_init_array+0x4c> +80000188: 49040413 addi s0,s0,1168 +8000018c: 00000493 li s1,0 +80000190: 00042783 lw a5,0(s0) +80000194: 00148493 addi s1,s1,1 +80000198: 00440413 addi s0,s0,4 +8000019c: 000780e7 jalr a5 +800001a0: fe9918e3 bne s2,s1,80000190 <__libc_init_array+0x38> +800001a4: 80001437 lui s0,0x80001 +800001a8: 80001937 lui s2,0x80001 +800001ac: 49040793 addi a5,s0,1168 # 80001490 <__stack_top+0x81001490> +800001b0: 49490913 addi s2,s2,1172 # 80001494 <__stack_top+0x81001494> +800001b4: 40f90933 sub s2,s2,a5 +800001b8: 40295913 srai s2,s2,0x2 +800001bc: 02090063 beqz s2,800001dc <__libc_init_array+0x84> +800001c0: 49040413 addi s0,s0,1168 +800001c4: 00000493 li s1,0 +800001c8: 00042783 lw a5,0(s0) +800001cc: 00148493 addi s1,s1,1 +800001d0: 00440413 addi s0,s0,4 +800001d4: 000780e7 jalr a5 +800001d8: fe9918e3 bne s2,s1,800001c8 <__libc_init_array+0x70> +800001dc: 00c12083 lw ra,12(sp) +800001e0: 00812403 lw s0,8(sp) +800001e4: 00412483 lw s1,4(sp) +800001e8: 00012903 lw s2,0(sp) +800001ec: 01010113 addi sp,sp,16 +800001f0: 00008067 ret -8000034c : -8000034c: 00050593 mv a1,a0 -80000350: 00000693 li a3,0 -80000354: 00000613 li a2,0 -80000358: 00000513 li a0,0 -8000035c: 20c0006f j 80000568 <__register_exitproc> +800001f4 : +800001f4: 00f00313 li t1,15 +800001f8: 00050713 mv a4,a0 +800001fc: 02c37e63 bgeu t1,a2,80000238 +80000200: 00f77793 andi a5,a4,15 +80000204: 0a079063 bnez a5,800002a4 +80000208: 08059263 bnez a1,8000028c +8000020c: ff067693 andi a3,a2,-16 +80000210: 00f67613 andi a2,a2,15 +80000214: 00e686b3 add a3,a3,a4 +80000218: 00b72023 sw a1,0(a4) +8000021c: 00b72223 sw a1,4(a4) +80000220: 00b72423 sw a1,8(a4) +80000224: 00b72623 sw a1,12(a4) +80000228: 01070713 addi a4,a4,16 +8000022c: fed766e3 bltu a4,a3,80000218 +80000230: 00061463 bnez a2,80000238 +80000234: 00008067 ret +80000238: 40c306b3 sub a3,t1,a2 +8000023c: 00269693 slli a3,a3,0x2 +80000240: 00000297 auipc t0,0x0 +80000244: 005686b3 add a3,a3,t0 +80000248: 00c68067 jr 12(a3) +8000024c: 00b70723 sb a1,14(a4) +80000250: 00b706a3 sb a1,13(a4) +80000254: 00b70623 sb a1,12(a4) +80000258: 00b705a3 sb a1,11(a4) +8000025c: 00b70523 sb a1,10(a4) +80000260: 00b704a3 sb a1,9(a4) +80000264: 00b70423 sb a1,8(a4) +80000268: 00b703a3 sb a1,7(a4) +8000026c: 00b70323 sb a1,6(a4) +80000270: 00b702a3 sb a1,5(a4) +80000274: 00b70223 sb a1,4(a4) +80000278: 00b701a3 sb a1,3(a4) +8000027c: 00b70123 sb a1,2(a4) +80000280: 00b700a3 sb a1,1(a4) +80000284: 00b70023 sb a1,0(a4) +80000288: 00008067 ret +8000028c: 0ff5f593 andi a1,a1,255 +80000290: 00859693 slli a3,a1,0x8 +80000294: 00d5e5b3 or a1,a1,a3 +80000298: 01059693 slli a3,a1,0x10 +8000029c: 00d5e5b3 or a1,a1,a3 +800002a0: f6dff06f j 8000020c +800002a4: 00279693 slli a3,a5,0x2 +800002a8: 00000297 auipc t0,0x0 +800002ac: 005686b3 add a3,a3,t0 +800002b0: 00008293 mv t0,ra +800002b4: fa0680e7 jalr -96(a3) +800002b8: 00028093 mv ra,t0 +800002bc: ff078793 addi a5,a5,-16 +800002c0: 40f70733 sub a4,a4,a5 +800002c4: 00f60633 add a2,a2,a5 +800002c8: f6c378e3 bgeu t1,a2,80000238 +800002cc: f3dff06f j 80000208 -80000360 : -80000360: ff010113 addi sp,sp,-16 -80000364: 00000593 li a1,0 -80000368: 00812423 sw s0,8(sp) -8000036c: 00112623 sw ra,12(sp) -80000370: 00050413 mv s0,a0 -80000374: 290000ef jal ra,80000604 <__call_exitprocs> -80000378: 800027b7 lui a5,0x80002 -8000037c: b587a503 lw a0,-1192(a5) # 80001b58 <__stack_top+0x81001b58> -80000380: 03c52783 lw a5,60(a0) -80000384: 00078463 beqz a5,8000038c -80000388: 000780e7 jalr a5 -8000038c: 00040513 mv a0,s0 -80000390: d5dff0ef jal ra,800000ec <_exit> +800002d0 <__register_exitproc>: +800002d0: 800027b7 lui a5,0x80002 +800002d4: 8c07a703 lw a4,-1856(a5) # 800018c0 <__stack_top+0x810018c0> +800002d8: 14872783 lw a5,328(a4) +800002dc: 04078c63 beqz a5,80000334 <__register_exitproc+0x64> +800002e0: 0047a703 lw a4,4(a5) +800002e4: 01f00813 li a6,31 +800002e8: 06e84e63 blt a6,a4,80000364 <__register_exitproc+0x94> +800002ec: 00271813 slli a6,a4,0x2 +800002f0: 02050663 beqz a0,8000031c <__register_exitproc+0x4c> +800002f4: 01078333 add t1,a5,a6 +800002f8: 08c32423 sw a2,136(t1) +800002fc: 1887a883 lw a7,392(a5) +80000300: 00100613 li a2,1 +80000304: 00e61633 sll a2,a2,a4 +80000308: 00c8e8b3 or a7,a7,a2 +8000030c: 1917a423 sw a7,392(a5) +80000310: 10d32423 sw a3,264(t1) +80000314: 00200693 li a3,2 +80000318: 02d50463 beq a0,a3,80000340 <__register_exitproc+0x70> +8000031c: 00170713 addi a4,a4,1 +80000320: 00e7a223 sw a4,4(a5) +80000324: 010787b3 add a5,a5,a6 +80000328: 00b7a423 sw a1,8(a5) +8000032c: 00000513 li a0,0 +80000330: 00008067 ret +80000334: 14c70793 addi a5,a4,332 +80000338: 14f72423 sw a5,328(a4) +8000033c: fa5ff06f j 800002e0 <__register_exitproc+0x10> +80000340: 18c7a683 lw a3,396(a5) +80000344: 00170713 addi a4,a4,1 +80000348: 00e7a223 sw a4,4(a5) +8000034c: 00c6e633 or a2,a3,a2 +80000350: 18c7a623 sw a2,396(a5) +80000354: 010787b3 add a5,a5,a6 +80000358: 00b7a423 sw a1,8(a5) +8000035c: 00000513 li a0,0 +80000360: 00008067 ret +80000364: fff00513 li a0,-1 +80000368: 00008067 ret -80000394 <__libc_fini_array>: -80000394: ff010113 addi sp,sp,-16 -80000398: 00812423 sw s0,8(sp) -8000039c: 800017b7 lui a5,0x80001 -800003a0: 80001437 lui s0,0x80001 -800003a4: 72c40413 addi s0,s0,1836 # 8000172c <__stack_top+0x8100172c> -800003a8: 72c78793 addi a5,a5,1836 # 8000172c <__stack_top+0x8100172c> -800003ac: 408787b3 sub a5,a5,s0 -800003b0: 00912223 sw s1,4(sp) -800003b4: 00112623 sw ra,12(sp) -800003b8: 4027d493 srai s1,a5,0x2 -800003bc: 02048063 beqz s1,800003dc <__libc_fini_array+0x48> -800003c0: ffc78793 addi a5,a5,-4 -800003c4: 00878433 add s0,a5,s0 -800003c8: 00042783 lw a5,0(s0) -800003cc: fff48493 addi s1,s1,-1 -800003d0: ffc40413 addi s0,s0,-4 -800003d4: 000780e7 jalr a5 -800003d8: fe0498e3 bnez s1,800003c8 <__libc_fini_array+0x34> -800003dc: 00c12083 lw ra,12(sp) -800003e0: 00812403 lw s0,8(sp) -800003e4: 00412483 lw s1,4(sp) -800003e8: 01010113 addi sp,sp,16 -800003ec: 00008067 ret - -800003f0 <__libc_init_array>: -800003f0: ff010113 addi sp,sp,-16 -800003f4: 00812423 sw s0,8(sp) -800003f8: 01212023 sw s2,0(sp) -800003fc: 80001437 lui s0,0x80001 -80000400: 80001937 lui s2,0x80001 -80000404: 72840793 addi a5,s0,1832 # 80001728 <__stack_top+0x81001728> -80000408: 72890913 addi s2,s2,1832 # 80001728 <__stack_top+0x81001728> -8000040c: 40f90933 sub s2,s2,a5 -80000410: 00112623 sw ra,12(sp) -80000414: 00912223 sw s1,4(sp) -80000418: 40295913 srai s2,s2,0x2 -8000041c: 02090063 beqz s2,8000043c <__libc_init_array+0x4c> -80000420: 72840413 addi s0,s0,1832 -80000424: 00000493 li s1,0 -80000428: 00042783 lw a5,0(s0) -8000042c: 00148493 addi s1,s1,1 -80000430: 00440413 addi s0,s0,4 -80000434: 000780e7 jalr a5 -80000438: fe9918e3 bne s2,s1,80000428 <__libc_init_array+0x38> -8000043c: 80001437 lui s0,0x80001 -80000440: 80001937 lui s2,0x80001 -80000444: 72840793 addi a5,s0,1832 # 80001728 <__stack_top+0x81001728> -80000448: 72c90913 addi s2,s2,1836 # 8000172c <__stack_top+0x8100172c> -8000044c: 40f90933 sub s2,s2,a5 -80000450: 40295913 srai s2,s2,0x2 -80000454: 02090063 beqz s2,80000474 <__libc_init_array+0x84> -80000458: 72840413 addi s0,s0,1832 -8000045c: 00000493 li s1,0 -80000460: 00042783 lw a5,0(s0) -80000464: 00148493 addi s1,s1,1 -80000468: 00440413 addi s0,s0,4 -8000046c: 000780e7 jalr a5 -80000470: fe9918e3 bne s2,s1,80000460 <__libc_init_array+0x70> -80000474: 00c12083 lw ra,12(sp) -80000478: 00812403 lw s0,8(sp) -8000047c: 00412483 lw s1,4(sp) -80000480: 00012903 lw s2,0(sp) -80000484: 01010113 addi sp,sp,16 -80000488: 00008067 ret - -8000048c : -8000048c: 00f00313 li t1,15 -80000490: 00050713 mv a4,a0 -80000494: 02c37e63 bgeu t1,a2,800004d0 -80000498: 00f77793 andi a5,a4,15 -8000049c: 0a079063 bnez a5,8000053c -800004a0: 08059263 bnez a1,80000524 -800004a4: ff067693 andi a3,a2,-16 -800004a8: 00f67613 andi a2,a2,15 -800004ac: 00e686b3 add a3,a3,a4 -800004b0: 00b72023 sw a1,0(a4) -800004b4: 00b72223 sw a1,4(a4) -800004b8: 00b72423 sw a1,8(a4) -800004bc: 00b72623 sw a1,12(a4) -800004c0: 01070713 addi a4,a4,16 -800004c4: fed766e3 bltu a4,a3,800004b0 -800004c8: 00061463 bnez a2,800004d0 -800004cc: 00008067 ret -800004d0: 40c306b3 sub a3,t1,a2 -800004d4: 00269693 slli a3,a3,0x2 -800004d8: 00000297 auipc t0,0x0 -800004dc: 005686b3 add a3,a3,t0 -800004e0: 00c68067 jr 12(a3) -800004e4: 00b70723 sb a1,14(a4) -800004e8: 00b706a3 sb a1,13(a4) -800004ec: 00b70623 sb a1,12(a4) -800004f0: 00b705a3 sb a1,11(a4) -800004f4: 00b70523 sb a1,10(a4) -800004f8: 00b704a3 sb a1,9(a4) -800004fc: 00b70423 sb a1,8(a4) -80000500: 00b703a3 sb a1,7(a4) -80000504: 00b70323 sb a1,6(a4) -80000508: 00b702a3 sb a1,5(a4) -8000050c: 00b70223 sb a1,4(a4) -80000510: 00b701a3 sb a1,3(a4) -80000514: 00b70123 sb a1,2(a4) -80000518: 00b700a3 sb a1,1(a4) -8000051c: 00b70023 sb a1,0(a4) -80000520: 00008067 ret -80000524: 0ff5f593 andi a1,a1,255 -80000528: 00859693 slli a3,a1,0x8 -8000052c: 00d5e5b3 or a1,a1,a3 -80000530: 01059693 slli a3,a1,0x10 -80000534: 00d5e5b3 or a1,a1,a3 -80000538: f6dff06f j 800004a4 -8000053c: 00279693 slli a3,a5,0x2 -80000540: 00000297 auipc t0,0x0 -80000544: 005686b3 add a3,a3,t0 -80000548: 00008293 mv t0,ra -8000054c: fa0680e7 jalr -96(a3) -80000550: 00028093 mv ra,t0 -80000554: ff078793 addi a5,a5,-16 -80000558: 40f70733 sub a4,a4,a5 -8000055c: 00f60633 add a2,a2,a5 -80000560: f6c378e3 bgeu t1,a2,800004d0 -80000564: f3dff06f j 800004a0 - -80000568 <__register_exitproc>: -80000568: 800027b7 lui a5,0x80002 -8000056c: b587a703 lw a4,-1192(a5) # 80001b58 <__stack_top+0x81001b58> -80000570: 14872783 lw a5,328(a4) -80000574: 04078c63 beqz a5,800005cc <__register_exitproc+0x64> -80000578: 0047a703 lw a4,4(a5) -8000057c: 01f00813 li a6,31 -80000580: 06e84e63 blt a6,a4,800005fc <__register_exitproc+0x94> -80000584: 00271813 slli a6,a4,0x2 -80000588: 02050663 beqz a0,800005b4 <__register_exitproc+0x4c> -8000058c: 01078333 add t1,a5,a6 -80000590: 08c32423 sw a2,136(t1) -80000594: 1887a883 lw a7,392(a5) -80000598: 00100613 li a2,1 -8000059c: 00e61633 sll a2,a2,a4 -800005a0: 00c8e8b3 or a7,a7,a2 -800005a4: 1917a423 sw a7,392(a5) -800005a8: 10d32423 sw a3,264(t1) -800005ac: 00200693 li a3,2 -800005b0: 02d50463 beq a0,a3,800005d8 <__register_exitproc+0x70> -800005b4: 00170713 addi a4,a4,1 -800005b8: 00e7a223 sw a4,4(a5) -800005bc: 010787b3 add a5,a5,a6 -800005c0: 00b7a423 sw a1,8(a5) -800005c4: 00000513 li a0,0 -800005c8: 00008067 ret -800005cc: 14c70793 addi a5,a4,332 -800005d0: 14f72423 sw a5,328(a4) -800005d4: fa5ff06f j 80000578 <__register_exitproc+0x10> -800005d8: 18c7a683 lw a3,396(a5) -800005dc: 00170713 addi a4,a4,1 -800005e0: 00e7a223 sw a4,4(a5) -800005e4: 00c6e633 or a2,a3,a2 -800005e8: 18c7a623 sw a2,396(a5) -800005ec: 010787b3 add a5,a5,a6 -800005f0: 00b7a423 sw a1,8(a5) -800005f4: 00000513 li a0,0 -800005f8: 00008067 ret -800005fc: fff00513 li a0,-1 -80000600: 00008067 ret - -80000604 <__call_exitprocs>: -80000604: fd010113 addi sp,sp,-48 -80000608: 800027b7 lui a5,0x80002 -8000060c: 01412c23 sw s4,24(sp) -80000610: b587aa03 lw s4,-1192(a5) # 80001b58 <__stack_top+0x81001b58> -80000614: 03212023 sw s2,32(sp) -80000618: 02112623 sw ra,44(sp) -8000061c: 148a2903 lw s2,328(s4) -80000620: 02812423 sw s0,40(sp) -80000624: 02912223 sw s1,36(sp) -80000628: 01312e23 sw s3,28(sp) -8000062c: 01512a23 sw s5,20(sp) -80000630: 01612823 sw s6,16(sp) -80000634: 01712623 sw s7,12(sp) -80000638: 01812423 sw s8,8(sp) -8000063c: 04090063 beqz s2,8000067c <__call_exitprocs+0x78> -80000640: 00050b13 mv s6,a0 -80000644: 00058b93 mv s7,a1 -80000648: 00100a93 li s5,1 -8000064c: fff00993 li s3,-1 -80000650: 00492483 lw s1,4(s2) -80000654: fff48413 addi s0,s1,-1 -80000658: 02044263 bltz s0,8000067c <__call_exitprocs+0x78> -8000065c: 00249493 slli s1,s1,0x2 -80000660: 009904b3 add s1,s2,s1 -80000664: 040b8463 beqz s7,800006ac <__call_exitprocs+0xa8> -80000668: 1044a783 lw a5,260(s1) -8000066c: 05778063 beq a5,s7,800006ac <__call_exitprocs+0xa8> -80000670: fff40413 addi s0,s0,-1 -80000674: ffc48493 addi s1,s1,-4 -80000678: ff3416e3 bne s0,s3,80000664 <__call_exitprocs+0x60> -8000067c: 02c12083 lw ra,44(sp) -80000680: 02812403 lw s0,40(sp) -80000684: 02412483 lw s1,36(sp) -80000688: 02012903 lw s2,32(sp) -8000068c: 01c12983 lw s3,28(sp) -80000690: 01812a03 lw s4,24(sp) -80000694: 01412a83 lw s5,20(sp) -80000698: 01012b03 lw s6,16(sp) -8000069c: 00c12b83 lw s7,12(sp) -800006a0: 00812c03 lw s8,8(sp) -800006a4: 03010113 addi sp,sp,48 -800006a8: 00008067 ret -800006ac: 00492783 lw a5,4(s2) -800006b0: 0044a683 lw a3,4(s1) -800006b4: fff78793 addi a5,a5,-1 -800006b8: 04878e63 beq a5,s0,80000714 <__call_exitprocs+0x110> -800006bc: 0004a223 sw zero,4(s1) -800006c0: fa0688e3 beqz a3,80000670 <__call_exitprocs+0x6c> -800006c4: 18892783 lw a5,392(s2) -800006c8: 008a9733 sll a4,s5,s0 -800006cc: 00492c03 lw s8,4(s2) -800006d0: 00f777b3 and a5,a4,a5 -800006d4: 02079263 bnez a5,800006f8 <__call_exitprocs+0xf4> -800006d8: 000680e7 jalr a3 -800006dc: 00492703 lw a4,4(s2) -800006e0: 148a2783 lw a5,328(s4) -800006e4: 01871463 bne a4,s8,800006ec <__call_exitprocs+0xe8> -800006e8: f8f904e3 beq s2,a5,80000670 <__call_exitprocs+0x6c> -800006ec: f80788e3 beqz a5,8000067c <__call_exitprocs+0x78> -800006f0: 00078913 mv s2,a5 -800006f4: f5dff06f j 80000650 <__call_exitprocs+0x4c> -800006f8: 18c92783 lw a5,396(s2) -800006fc: 0844a583 lw a1,132(s1) -80000700: 00f77733 and a4,a4,a5 -80000704: 00071c63 bnez a4,8000071c <__call_exitprocs+0x118> -80000708: 000b0513 mv a0,s6 -8000070c: 000680e7 jalr a3 -80000710: fcdff06f j 800006dc <__call_exitprocs+0xd8> -80000714: 00892223 sw s0,4(s2) -80000718: fa9ff06f j 800006c0 <__call_exitprocs+0xbc> -8000071c: 00058513 mv a0,a1 -80000720: 000680e7 jalr a3 -80000724: fb9ff06f j 800006dc <__call_exitprocs+0xd8> +8000036c <__call_exitprocs>: +8000036c: fd010113 addi sp,sp,-48 +80000370: 800027b7 lui a5,0x80002 +80000374: 01412c23 sw s4,24(sp) +80000378: 8c07aa03 lw s4,-1856(a5) # 800018c0 <__stack_top+0x810018c0> +8000037c: 03212023 sw s2,32(sp) +80000380: 02112623 sw ra,44(sp) +80000384: 148a2903 lw s2,328(s4) +80000388: 02812423 sw s0,40(sp) +8000038c: 02912223 sw s1,36(sp) +80000390: 01312e23 sw s3,28(sp) +80000394: 01512a23 sw s5,20(sp) +80000398: 01612823 sw s6,16(sp) +8000039c: 01712623 sw s7,12(sp) +800003a0: 01812423 sw s8,8(sp) +800003a4: 04090063 beqz s2,800003e4 <__call_exitprocs+0x78> +800003a8: 00050b13 mv s6,a0 +800003ac: 00058b93 mv s7,a1 +800003b0: 00100a93 li s5,1 +800003b4: fff00993 li s3,-1 +800003b8: 00492483 lw s1,4(s2) +800003bc: fff48413 addi s0,s1,-1 +800003c0: 02044263 bltz s0,800003e4 <__call_exitprocs+0x78> +800003c4: 00249493 slli s1,s1,0x2 +800003c8: 009904b3 add s1,s2,s1 +800003cc: 040b8463 beqz s7,80000414 <__call_exitprocs+0xa8> +800003d0: 1044a783 lw a5,260(s1) +800003d4: 05778063 beq a5,s7,80000414 <__call_exitprocs+0xa8> +800003d8: fff40413 addi s0,s0,-1 +800003dc: ffc48493 addi s1,s1,-4 +800003e0: ff3416e3 bne s0,s3,800003cc <__call_exitprocs+0x60> +800003e4: 02c12083 lw ra,44(sp) +800003e8: 02812403 lw s0,40(sp) +800003ec: 02412483 lw s1,36(sp) +800003f0: 02012903 lw s2,32(sp) +800003f4: 01c12983 lw s3,28(sp) +800003f8: 01812a03 lw s4,24(sp) +800003fc: 01412a83 lw s5,20(sp) +80000400: 01012b03 lw s6,16(sp) +80000404: 00c12b83 lw s7,12(sp) +80000408: 00812c03 lw s8,8(sp) +8000040c: 03010113 addi sp,sp,48 +80000410: 00008067 ret +80000414: 00492783 lw a5,4(s2) +80000418: 0044a683 lw a3,4(s1) +8000041c: fff78793 addi a5,a5,-1 +80000420: 04878e63 beq a5,s0,8000047c <__call_exitprocs+0x110> +80000424: 0004a223 sw zero,4(s1) +80000428: fa0688e3 beqz a3,800003d8 <__call_exitprocs+0x6c> +8000042c: 18892783 lw a5,392(s2) +80000430: 008a9733 sll a4,s5,s0 +80000434: 00492c03 lw s8,4(s2) +80000438: 00f777b3 and a5,a4,a5 +8000043c: 02079263 bnez a5,80000460 <__call_exitprocs+0xf4> +80000440: 000680e7 jalr a3 +80000444: 00492703 lw a4,4(s2) +80000448: 148a2783 lw a5,328(s4) +8000044c: 01871463 bne a4,s8,80000454 <__call_exitprocs+0xe8> +80000450: f8f904e3 beq s2,a5,800003d8 <__call_exitprocs+0x6c> +80000454: f80788e3 beqz a5,800003e4 <__call_exitprocs+0x78> +80000458: 00078913 mv s2,a5 +8000045c: f5dff06f j 800003b8 <__call_exitprocs+0x4c> +80000460: 18c92783 lw a5,396(s2) +80000464: 0844a583 lw a1,132(s1) +80000468: 00f77733 and a4,a4,a5 +8000046c: 00071c63 bnez a4,80000484 <__call_exitprocs+0x118> +80000470: 000b0513 mv a0,s6 +80000474: 000680e7 jalr a3 +80000478: fcdff06f j 80000444 <__call_exitprocs+0xd8> +8000047c: 00892223 sw s0,4(s2) +80000480: fa9ff06f j 80000428 <__call_exitprocs+0xbc> +80000484: 00058513 mv a0,a1 +80000488: 000680e7 jalr a3 +8000048c: fb9ff06f j 80000444 <__call_exitprocs+0xd8> Disassembly of section .init_array: -80001728 <__init_array_start>: -80001728: 0068 addi a0,sp,12 -8000172a: 8000 0x8000 +80001490 <__init_array_start>: +80001490: 0058 addi a4,sp,4 +80001492: 8000 0x8000 Disassembly of section .data: -80001730 : -80001730: 0000 unimp -80001732: 0000 unimp -80001734: 1a1c addi a5,sp,304 -80001736: 8000 0x8000 -80001738: 1a84 addi s1,sp,368 -8000173a: 8000 0x8000 -8000173c: 1aec addi a1,sp,380 -8000173e: 8000 0x8000 +80001498 : +80001498: 0000 unimp +8000149a: 0000 unimp +8000149c: 1784 addi s1,sp,992 +8000149e: 8000 0x8000 +800014a0: 17ec addi a1,sp,1004 +800014a2: 8000 0x8000 +800014a4: 1854 addi a3,sp,52 +800014a6: 8000 0x8000 ... -800017d8: 0001 nop -800017da: 0000 unimp -800017dc: 0000 unimp -800017de: 0000 unimp -800017e0: 330e fld ft6,224(sp) -800017e2: abcd j 80001dd4 <__BSS_END__+0x1f8> -800017e4: 1234 addi a3,sp,296 -800017e6: e66d bnez a2,800018d0 -800017e8: deec sw a1,124(a3) -800017ea: 0005 c.nop 1 -800017ec: 0000000b 0xb +80001540: 0001 nop +80001542: 0000 unimp +80001544: 0000 unimp +80001546: 0000 unimp +80001548: 330e fld ft6,224(sp) +8000154a: abcd j 80001b3c <__BSS_END__+0x278> +8000154c: 1234 addi a3,sp,296 +8000154e: e66d bnez a2,80001638 +80001550: deec sw a1,124(a3) +80001552: 0005 c.nop 1 +80001554: 0000000b 0xb ... Disassembly of section .sdata: -80001b58 <_global_impure_ptr>: -80001b58: 1730 addi a2,sp,936 -80001b5a: 8000 0x8000 - -Disassembly of section .bss: - -80001b5c : - ... +800018c0 <_global_impure_ptr>: +800018c0: 1498 addi a4,sp,608 +800018c2: 8000 0x8000 Disassembly of section .comment: diff --git a/driver/tests/tex_demo/kernel.elf b/driver/tests/tex_demo/kernel.elf index b2e5502f561d10df91a6c7f7db79566aeb49379f..a928fbde411fd70ee3eaa33b496d719b834f1b14 100755 GIT binary patch delta 1320 zcmZ9LT}TvB6vxlZ&hE5jIXc_!;Hv4aUlB;uk`YFmAIOAR4;GfvWSfK;6|61 zI&*g|kxWDps)KEz4YZylFlqcEn>DQvvATH%^XyOi@@m7{5%?mnMjw?YZm97_Ejy;o z(jwU&-L26WvI31ny8A{d&;;x8q;`6qMghA8cMT)A>3gpoRno}p5=cG7_ z36&^zOQkk9*}8k796sfY%{i1`JKjiHu5rJfNNh+Z-vuN}=u&b;lvOl{UVTTaIyuq2 z;EG*W>8GtCPoc%7nH61qm>F~xKJc&%dUUaz^+`!^bHs-SS_ zF6qa%Mq}iabwx47kk1h9zV&_%GxK3<-I*a@r6jA9;^O8fFd3iUCm92UR&oRBI!gYA z_8Vm1O-^UN1#Fi*?Gwj?=Of%sj&b2(nf}k{F=P%oY+Z%J;30`@(D3KaERRGAE$232 z{F20;>ed9;Hh?mo-eL$F4(oGpyMsF&e89m+9DD-Idv3vYB~*ZjK+VR)Sq!F%-@?1U z=HNRHo&lG7!SNXfzjyF=a7i?L*Dr=b%kUE|Cvq#`Qu8!4PesF~s|(HK1Ov=|&Z&TZ z8+bq>`ysdzjoS;(64^sVJ_Ls3_{I5y;4APmbNmSSoQv!R*h)&s^q`PnAI=9zbQ%0v zUM-LU&lgXZH+av%Pr!e$A^uV>@C=N#>~%$c0e%g}z0CV(!KJ@PYbS-~F|oG5WdyF} zPw;=h0+HeZAHf&FBx<&FirZTrS6Nnkd^k2{U5XE%8KDxzN3V{ElXY){mesYtf4|ky z-DCDy7Fi>whsTFuu8fY0gY_L^3i_?SU5+ZkAFB26@uq!ZPblQ!ec}R~!jR8k&Jd|k z)h^Vh?NAnM6vwhE>|-^dxGC6YLB1M74mY)C5w2n0i`gKQPgR357cLeCkg{r`FOoPK R4jDgchz1L@`8Ti5@(&};-$noc delta 2264 zcmZ8iZERCz6h8N(y(sHW+NtpD~`?dbj8Tp7Lek7D#cGXp%4`X zeJBxO;1#B88NhsWHn7LN#&`Eq3L8@`I5|*Sb<_)ytTx-Hoiz4x<6xXyeW%3g{u!*t4Plqgf<@@s zpUG4vWbtt|rIJ(R|9l(_x01D~+ij6YH4_QhA6tD8=gdQ#VYISr#BuJL!kIwTy-8B~ zG%(Xbrt2z=6Bb40ye(iv0V4_+QNV}-Mr1IdI*cUUGcut?MXsKIU7XR^)g}Am)#nu}p*g$4 zJCx2`zlybH_(%@m4mISHZK%VYI1-&A-}|aB(P?=)OTeF2qv*T|QOc4lug?k-XBO0pA>JCLIXPox?PY(=gw z6h9X2j`59V9|b>d^>Y~49PQ;*xp7p8wsj7>9h~bFFg?F1l;^x0Ih#s<%`63|m9p{p z9V!6PCs&lmIM*VK$@o2$n*hyoTA=GOXAqjlw?gL{kMGL?XvX^&;P3+6z5qvwVsj=A z@ZKEC2227oDM9cdVTt*T{RIrQv!pSNJqz%_0(=oTM>_kD^7``)=>-lhJir++@I3S~ zFp%#&*l`#Ds!8q_SV5Xk&N5E(^-0^~^fbUW^Adi0yth&h#Kr_CP^|!ace;GLZ9(bqgVf@%n zFpSQgD;*h+0_V;d<3E6psAP{i0c1)8Bbak$c!9gXn~-4s?D)UHPt3zI{^jM)wGOJh zzz^fQ*3(H$oS(o7IBZ9NwX*?>fbYz!&*XgjHHucMSgB7+3^bDTL$d5Dz5#3gH7SfWg(W_@=a?XmdHycE_0QI6Sxi0p*|8 A`v3p{ diff --git a/driver/tests/tex_demo/sample.tga b/driver/tests/tex_demo/sample.tga new file mode 100755 index 0000000000000000000000000000000000000000..1b04c9257e38b554c70f09068b153476f8549bc3 GIT binary patch literal 197147 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 + +struct __attribute__((__packed__)) tga_header_t { + int8_t idlength; + int8_t colormaptype; + int8_t imagetype; + int16_t colormaporigin; + int16_t colormaplength; + int8_t colormapdepth; + int16_t xoffset; + int16_t yoffset; + int16_t width; + int16_t height; + int8_t bitsperpixel; + int8_t imagedescriptor; +}; + +int LoadTGA(const char *filename, + std::vector &pixels, + uint32_t *width, + uint32_t *height, + uint32_t *bpp) { + std::ifstream ifs(filename, std::ios::in | std::ios::binary); + if (!ifs.is_open()) { + std::cerr << "couldn't open file: " << filename << "!" << std::endl; + return -1; + } + + tga_header_t header; + ifs.read(reinterpret_cast(&header), sizeof(tga_header_t)); + if (ifs.fail()) { + std::cerr << "invalid TGA file header!" << std::endl; + return -1; + } + + if (header.imagetype != 2) { + std::cerr << "unsupported TGA encoding format!" << std::endl; + return -1; + } + + ifs.seekg(header.idlength, std::ios::cur); // skip string + if (ifs.fail()) { + std::cerr << "invalid TGA file!" << std::endl; + return -1; + } + + switch (header.bitsperpixel) { + case 24: + case 32: { + auto stride = header.bitsperpixel / 8; + auto pitch = header.width * stride; + pixels.resize(header.height * pitch); + + // we are going to load the pixel data line by line + for (int y = 0; y < header.height; ++y) { + // Read current line of pixels + auto line = pixels.data() + y * pitch; + ifs.read(reinterpret_cast(line), pitch); + if (ifs.fail()) { + std::cerr << "invalid TGA file!" << std::endl; + return -1; + } + + // Because the TGA is BGR instead of RGB, we must swap RG components + for (int i = 0; i < pitch; i += stride) { + auto tmp = line[i]; + line[i] = line[i + 2]; + line[i + 2] = tmp; + } + } + break; + } + default: + std::cerr << "unsupported TGA bitsperpixel!" << std::endl; + return -1; + } + + *width = header.width; + *height = header.height; + *bpp = header.bitsperpixel / 8; + + return 0; +} + +int SaveTGA(const char *filename, + const std::vector &pixels, + uint32_t width, + uint32_t height, + uint32_t bpp) { + std::ofstream ofs(filename, std::ios::out | std::ios::binary); + if (!ofs.is_open()) { + std::cerr << "couldn't create file: " << filename << "!" << std::endl; + return -1; + } + + tga_header_t header; + header.idlength = 0; + header.colormaptype = 0; // no palette + header.imagetype = 2; // color mapped data + header.colormaporigin = 0; + header.colormaplength = 0; + header.colormapdepth = 0; + header.xoffset = 0; + header.yoffset = 0; + header.width = width; + header.height = height; + header.bitsperpixel = bpp * 8; + header.imagedescriptor = 0; + + ofs.write(reinterpret_cast(&header), sizeof(tga_header_t)); + ofs.write((const char*)pixels.data(), pixels.size()); + + return 0; +} \ No newline at end of file diff --git a/driver/tests/tex_demo/utils.h b/driver/tests/tex_demo/utils.h new file mode 100644 index 00000000..b1d15e3b --- /dev/null +++ b/driver/tests/tex_demo/utils.h @@ -0,0 +1,15 @@ +#include +#include +#include + +int LoadTGA(const char *filename, + std::vector &pixels, + uint32_t *width, + uint32_t *height, + uint32_t *bpp); + +int SaveTGA(const char *filename, + const std::vector &pixels, + uint32_t width, + uint32_t height, + uint32_t bpp); \ No newline at end of file diff --git a/hw/VX_config.h b/hw/VX_config.h index 05339ece..1be339ed 100644 --- a/hw/VX_config.h +++ b/hw/VX_config.h @@ -253,7 +253,7 @@ #define CSR_TEX0_FORMAT CSR_TEX_BEGIN + 0x1 #define CSR_TEX0_WIDTH CSR_TEX_BEGIN + 0x2 #define CSR_TEX0_HEIGHT CSR_TEX_BEGIN + 0x3 -#define CSR_TEX0_STRIDE CSR_TEX_BEGIN + 0x4 +#define CSR_TEX0_PITCH CSR_TEX_BEGIN + 0x4 #define CSR_TEX0_WRAP_U CSR_TEX_BEGIN + 0x5 #define CSR_TEX0_WRAP_V CSR_TEX_BEGIN + 0x6 #define CSR_TEX0_MIN_FILTER CSR_TEX_BEGIN + 0x7 @@ -264,7 +264,7 @@ #define CSR_TEX1_FORMAT CSR_TEX_BEGIN + 0xA #define CSR_TEX1_WIDTH CSR_TEX_BEGIN + 0xB #define CSR_TEX1_HEIGHT CSR_TEX_BEGIN + 0xC -#define CSR_TEX1_STRIDE CSR_TEX_BEGIN + 0xD +#define CSR_TEX1_PITCH CSR_TEX_BEGIN + 0xD #define CSR_TEX1_WRAP_U CSR_TEX_BEGIN + 0xE #define CSR_TEX1_WRAP_V CSR_TEX_BEGIN + 0xF #define CSR_TEX1_MIN_FILTER CSR_TEX_BEGIN + 0x10 diff --git a/hw/rtl/VX_config.vh b/hw/rtl/VX_config.vh index 2fc873fc..897e9f4b 100644 --- a/hw/rtl/VX_config.vh +++ b/hw/rtl/VX_config.vh @@ -238,30 +238,33 @@ `define CSR_NC 12'hFC2 ////////// Texture Unit CSRs ///////////// + `define CSR_TEX_BEGIN 12'hFD0 + // Unit 1 -`define CSR_TEX0_ADDR `CSR_TEX_BEGIN -`define CSR_TEX0_FORMAT `CSR_TEX_BEGIN + 12'h1 -`define CSR_TEX0_WIDTH `CSR_TEX_BEGIN + 12'h2 -`define CSR_TEX0_HEIGHT `CSR_TEX_BEGIN + 12'h3 -`define CSR_TEX0_STRIDE `CSR_TEX_BEGIN + 12'h4 -`define CSR_TEX0_WRAP_U `CSR_TEX_BEGIN + 12'h5 -`define CSR_TEX0_WRAP_V `CSR_TEX_BEGIN + 12'h6 -`define CSR_TEX0_MIN_FILTER `CSR_TEX_BEGIN + 12'h7 -`define CSR_TEX0_MAX_FILTER `CSR_TEX_BEGIN + 12'h8 +`define CSR_TEX0_ADDR `CSR_TEX_BEGIN +`define CSR_TEX0_FORMAT `CSR_TEX_BEGIN + 12'h1 +`define CSR_TEX0_WIDTH `CSR_TEX_BEGIN + 12'h2 +`define CSR_TEX0_HEIGHT `CSR_TEX_BEGIN + 12'h3 +`define CSR_TEX0_PITCH `CSR_TEX_BEGIN + 12'h4 +`define CSR_TEX0_WRAP_U `CSR_TEX_BEGIN + 12'h5 +`define CSR_TEX0_WRAP_V `CSR_TEX_BEGIN + 12'h6 +`define CSR_TEX0_MIN_FILTER `CSR_TEX_BEGIN + 12'h7 +`define CSR_TEX0_MAX_FILTER `CSR_TEX_BEGIN + 12'h8 // Unit 2 -`define CSR_TEX1_ADDR `CSR_TEX_BEGIN + 12'h9 -`define CSR_TEX1_FORMAT `CSR_TEX_BEGIN + 12'hA -`define CSR_TEX1_WIDTH `CSR_TEX_BEGIN + 12'hB -`define CSR_TEX1_HEIGHT `CSR_TEX_BEGIN + 12'hC -`define CSR_TEX1_STRIDE `CSR_TEX_BEGIN + 12'hD -`define CSR_TEX1_WRAP_U `CSR_TEX_BEGIN + 12'hE -`define CSR_TEX1_WRAP_V `CSR_TEX_BEGIN + 12'hF -`define CSR_TEX1_MIN_FILTER `CSR_TEX_BEGIN + 12'h10 -`define CSR_TEX1_MAX_FILTER `CSR_TEX_BEGIN + 12'h11 +`define CSR_TEX1_ADDR `CSR_TEX_BEGIN + 12'h9 +`define CSR_TEX1_FORMAT `CSR_TEX_BEGIN + 12'hA +`define CSR_TEX1_WIDTH `CSR_TEX_BEGIN + 12'hB +`define CSR_TEX1_HEIGHT `CSR_TEX_BEGIN + 12'hC +`define CSR_TEX1_PITCH `CSR_TEX_BEGIN + 12'hD +`define CSR_TEX1_WRAP_U `CSR_TEX_BEGIN + 12'hE +`define CSR_TEX1_WRAP_V `CSR_TEX_BEGIN + 12'hF +`define CSR_TEX1_MIN_FILTER `CSR_TEX_BEGIN + 12'h10 +`define CSR_TEX1_MAX_FILTER `CSR_TEX_BEGIN + 12'h11 `define CSR_TEX_END `CSR_TEX1_MAX_FILTER + // Pipeline Queues //////////////////////////////////////////////////////////// // Size of LSU Request Queue diff --git a/hw/rtl/VX_define.vh b/hw/rtl/VX_define.vh index e8b7668a..d70841a2 100644 --- a/hw/rtl/VX_define.vh +++ b/hw/rtl/VX_define.vh @@ -389,9 +389,7 @@ `define MAXHTW 8 `define MAXFTW 8 `define MAXFMW 8 -`define MAXAMW 8 -`define TAGW 8 -`define DATAW 32 +`define MAXAMW 8 //////////////////////////////////////////////////////////////////////////////////////// `include "VX_types.vh" diff --git a/hw/rtl/tex_unit/VX_tex_unit.v b/hw/rtl/tex_unit/VX_tex_unit.v index 1485e32c..08ecbcd3 100644 --- a/hw/rtl/tex_unit/VX_tex_unit.v +++ b/hw/rtl/tex_unit/VX_tex_unit.v @@ -55,7 +55,7 @@ module VX_tex_unit #( `CSR_TEX0_FORMAT : tex_format[0] <= tex_csr_if.write_data; `CSR_TEX0_WIDTH : tex_width[0] <= tex_csr_if.write_data; `CSR_TEX0_HEIGHT : tex_height[0] <= tex_csr_if.write_data; - `CSR_TEX0_STRIDE : tex_stride[0] <= tex_csr_if.write_data; + `CSR_TEX0_PITCH : tex_stride[0] <= tex_csr_if.write_data; `CSR_TEX0_WRAP_U : tex_wrap_u[0] <= tex_csr_if.write_data; `CSR_TEX0_WRAP_V : tex_wrap_v[0] <= tex_csr_if.write_data; `CSR_TEX0_MIN_FILTER : tex_min_filter[0] <= tex_csr_if.write_data; @@ -65,7 +65,7 @@ module VX_tex_unit #( `CSR_TEX1_FORMAT : tex_format[1] <= tex_csr_if.write_data; `CSR_TEX1_WIDTH : tex_width[1] <= tex_csr_if.write_data; `CSR_TEX1_HEIGHT : tex_height[1] <= tex_csr_if.write_data; - `CSR_TEX1_STRIDE : tex_stride[1] <= tex_csr_if.write_data; + `CSR_TEX1_PITCH : tex_stride[1] <= tex_csr_if.write_data; `CSR_TEX1_WRAP_U : tex_wrap_u[1] <= tex_csr_if.write_data; `CSR_TEX1_WRAP_V : tex_wrap_v[1] <= tex_csr_if.write_data; `CSR_TEX1_MIN_FILTER : tex_min_filter[1] <= tex_csr_if.write_data; @@ -88,7 +88,7 @@ module VX_tex_unit #( assign rsp_PC = tex_req_if.PC; assign rsp_rd = tex_req_if.rd; assign rsp_wb = tex_req_if.wb; - assign rsp_data = {`NUM_THREADS{32'hFAAF}}; // dummy color value + assign rsp_data = {`NUM_THREADS{32'hFF0000FF}}; // dummy blue value // output assign stall_out = ~tex_rsp_if.ready && tex_rsp_if.valid; @@ -116,7 +116,7 @@ module VX_tex_unit #( $display("%t: core%0d-tex_csr: csr_tex0_format, csr_data=%0h", $time, CORE_ID, tex_format[0]); $display("%t: core%0d-tex_csr: csr_tex0_width, csr_data=%0h", $time, CORE_ID, tex_width[0]); $display("%t: core%0d-tex_csr: csr_tex0_height, csr_data=%0h", $time, CORE_ID, tex_height[0]); - $display("%t: core%0d-tex_csr: csr_tex0_stride, csr_data=%0h", $time, CORE_ID, tex_stride[0]); + $display("%t: core%0d-tex_csr: CSR_TEX0_PITCH, csr_data=%0h", $time, CORE_ID, tex_stride[0]); $display("%t: core%0d-tex_csr: csr_tex0_wrap_u, csr_data=%0h", $time, CORE_ID, tex_wrap_u[0]); $display("%t: core%0d-tex_csr: csr_tex0_wrap_v, csr_data=%0h", $time, CORE_ID, tex_wrap_v[0]); $display("%t: core%0d-tex_csr: csr_tex0_min_filter, csr_data=%0h", $time, CORE_ID, tex_min_filter[0]); diff --git a/runtime/include/vx_intrinsics.h b/runtime/include/vx_intrinsics.h index 48e27851..67644ff0 100644 --- a/runtime/include/vx_intrinsics.h +++ b/runtime/include/vx_intrinsics.h @@ -5,7 +5,52 @@ #ifdef __cplusplus extern "C" { + #endif +#ifdef __ASSEMBLY__ +#define __ASM_STR(x) x +#else +#define __ASM_STR(x) #x +#endif + +#define vx_csr_swap(csr, val) ({ \ + unsigned long __v = (unsigned long)(val); \ + __asm__ __volatile__ ("csrrw %0, " __ASM_STR(csr) ", %1" : "=r" (__v) : "rK" (__v) : "memory"); \ + __v; \ +}) + +#define vx_csr_read(csr) ({ \ + register unsigned long __v; \ + __asm__ __volatile__ ("csrr %0, " __ASM_STR(csr) : "=r" (__v) :: "memory"); \ + __v; \ +}) + +#define vx_csr_write(csr, val) ({ \ + unsigned long __v = (unsigned long)(val); \ + __asm__ __volatile__ ("csrw " __ASM_STR(csr) ", %0" :: "rK" (__v) : "memory"); \ +}) + +#define vx_csr_read_set(csr, val) ({ \ + unsigned long __v = (unsigned long)(val); \ + __asm__ __volatile__ ("csrrs %0, " __ASM_STR(csr) ", %1" : "=r" (__v) : "rK" (__v) : "memory"); \ + __v; \ +}) + +#define vx_csr_set(csr, val) ({ \ + unsigned long __v = (unsigned long)(val); \ + __asm__ __volatile__ ("csrs " __ASM_STR(csr) ", %0" :: "rK" (__v) : "memory"); \ +}) + +#define vx_csr_read_clear(csr, val) ({ \ + unsigned long __v = (unsigned long)(val); \ + __asm__ __volatile__ ("csrrc %0, " __ASM_STR(csr) ", %1" : "=r" (__v) : "rK" (__v) : "memory"); \ + __v; \ +}) + +#define vx_csr_clear(csr, val) ({ \ + unsigned long __v = (unsigned long)(val); \ + __asm__ __volatile__ ("csrc " __ASM_STR(csr) ", %0" :: "rK" (__v) : "memory"); \ +}) // Set thread mask inline void vx_tmc(unsigned num_threads) {