diff --git a/tests/example/coremark/Makefile b/tests/example/coremark/Makefile new file mode 100644 index 0000000..3940933 --- /dev/null +++ b/tests/example/coremark/Makefile @@ -0,0 +1,18 @@ +RISCV_ARCH := rv32im +RISCV_ABI := ilp32 + +TARGET := coremark + +C_SRCS := \ + core_list_join.c \ + core_main.c \ + core_matrix.c \ + core_state.c \ + core_util.c \ + core_portme.c \ + +CFLAGS := -O2 -fno-common -funroll-loops -finline-functions --param max-inline-insns-auto=20 -falign-functions=4 -falign-jumps=4 -falign-loops=4 +CFLAGS += -DFLAGS_STR=\""$(CFLAGS)"\" +CFLAGS += -DITERATIONS=10000 -DPERFORMANCE_RUN=1 + +include ../common.mk diff --git a/tests/example/coremark/README.md b/tests/example/coremark/README.md new file mode 100644 index 0000000..c471aaa --- /dev/null +++ b/tests/example/coremark/README.md @@ -0,0 +1 @@ +由于coremark程序编译出来的bin文件将近30KB,因此需要将link.lds文件里的flash加到到30KB或以上,RAM加大到10KB或以上。 \ No newline at end of file diff --git a/tests/example/coremark/core_list_join.c b/tests/example/coremark/core_list_join.c new file mode 100644 index 0000000..dd2d4d7 --- /dev/null +++ b/tests/example/coremark/core_list_join.c @@ -0,0 +1,496 @@ +/* +Author : Shay Gal-On, EEMBC + +This file is part of EEMBC(R) and CoreMark(TM), which are Copyright (C) 2009 +All rights reserved. + +EEMBC CoreMark Software is a product of EEMBC and is provided under the terms of the +CoreMark License that is distributed with the official EEMBC COREMARK Software release. +If you received this EEMBC CoreMark Software without the accompanying CoreMark License, +you must discontinue use and download the official release from www.coremark.org. + +Also, if you are publicly displaying scores generated from the EEMBC CoreMark software, +make sure that you are in compliance with Run and Reporting rules specified in the accompanying readme.txt file. + +EEMBC +4354 Town Center Blvd. Suite 114-200 +El Dorado Hills, CA, 95762 +*/ + +#include "coremark.h" +/* +Topic: Description + Benchmark using a linked list. + + Linked list is a common data structure used in many applications. + + For our purposes, this will excercise the memory units of the processor. + In particular, usage of the list pointers to find and alter data. + + We are not using Malloc since some platforms do not support this library. + + Instead, the memory block being passed in is used to create a list, + and the benchmark takes care not to add more items then can be + accomodated by the memory block. The porting layer will make sure + that we have a valid memory block. + + All operations are done in place, without using any extra memory. + + The list itself contains list pointers and pointers to data items. + Data items contain the following: + + idx - An index that captures the initial order of the list. + data - Variable data initialized based on the input parameters. The 16b are divided as follows: + o Upper 8b are backup of original data. + o Bit 7 indicates if the lower 7 bits are to be used as is or calculated. + o Bits 0-2 indicate type of operation to perform to get a 7b value. + o Bits 3-6 provide input for the operation. + +*/ + +/* local functions */ + +list_head *core_list_find(list_head *list,list_data *info); +list_head *core_list_reverse(list_head *list); +list_head *core_list_remove(list_head *item); +list_head *core_list_undo_remove(list_head *item_removed, list_head *item_modified); +list_head *core_list_insert_new(list_head *insert_point + , list_data *info, list_head **memblock, list_data **datablock + , list_head *memblock_end, list_data *datablock_end); +typedef ee_s32(*list_cmp)(list_data *a, list_data *b, core_results *res); +list_head *core_list_mergesort(list_head *list, list_cmp cmp, core_results *res); + +ee_s16 calc_func(ee_s16 *pdata, core_results *res) { + ee_s16 data=*pdata; + ee_s16 retval; + ee_u8 optype=(data>>7) & 1; /* bit 7 indicates if the function result has been cached */ + if (optype) /* if cached, use cache */ + return (data & 0x007f); + else { /* otherwise calculate and cache the result */ + ee_s16 flag=data & 0x7; /* bits 0-2 is type of function to perform */ + ee_s16 dtype=((data>>3) & 0xf); /* bits 3-6 is specific data for the operation */ + dtype |= dtype << 4; /* replicate the lower 4 bits to get an 8b value */ + switch (flag) { + case 0: + if (dtype<0x22) /* set min period for bit corruption */ + dtype=0x22; + retval=core_bench_state(res->size,res->memblock[3],res->seed1,res->seed2,dtype,res->crc); + if (res->crcstate==0) + res->crcstate=retval; + break; + case 1: + retval=core_bench_matrix(&(res->mat),dtype,res->crc); + if (res->crcmatrix==0) + res->crcmatrix=retval; + break; + default: + retval=data; + break; + } + res->crc=crcu16(retval,res->crc); + retval &= 0x007f; + *pdata = (data & 0xff00) | 0x0080 | retval; /* cache the result */ + return retval; + } +} +/* Function: cmp_complex + Compare the data item in a list cell. + + Can be used by mergesort. +*/ +ee_s32 cmp_complex(list_data *a, list_data *b, core_results *res) { + ee_s16 val1=calc_func(&(a->data16),res); + ee_s16 val2=calc_func(&(b->data16),res); + return val1 - val2; +} + +/* Function: cmp_idx + Compare the idx item in a list cell, and regen the data. + + Can be used by mergesort. +*/ +ee_s32 cmp_idx(list_data *a, list_data *b, core_results *res) { + if (res==NULL) { + a->data16 = (a->data16 & 0xff00) | (0x00ff & (a->data16>>8)); + b->data16 = (b->data16 & 0xff00) | (0x00ff & (b->data16>>8)); + } + return a->idx - b->idx; +} + +void copy_info(list_data *to,list_data *from) { + to->data16=from->data16; + to->idx=from->idx; +} + +/* Benchmark for linked list: + - Try to find multiple data items. + - List sort + - Operate on data from list (crc) + - Single remove/reinsert + * At the end of this function, the list is back to original state +*/ +ee_u16 core_bench_list(core_results *res, ee_s16 finder_idx) { + ee_u16 retval=0; + ee_u16 found=0,missed=0; + list_head *list=res->list; + ee_s16 find_num=res->seed3; + list_head *this_find; + list_head *finder, *remover; + list_data info; + ee_s16 i; + + info.idx=finder_idx; + /* find values in the list, and change the list each time (reverse and cache if value found) */ + for (i=0; inext->info->data16 >> 8) & 1; + } + else { + found++; + if (this_find->info->data16 & 0x1) /* use found value */ + retval+=(this_find->info->data16 >> 9) & 1; + /* and cache next item at the head of the list (if any) */ + if (this_find->next != NULL) { + finder = this_find->next; + this_find->next = finder->next; + finder->next=list->next; + list->next=finder; + } + } + if (info.idx>=0) + info.idx++; +#if CORE_DEBUG + ee_printf("List find %d: [%d,%d,%d]\n",i,retval,missed,found); +#endif + } + retval+=found*4-missed; + /* sort the list by data content and remove one item*/ + if (finder_idx>0) + list=core_list_mergesort(list,cmp_complex,res); + remover=core_list_remove(list->next); + /* CRC data content of list from location of index N forward, and then undo remove */ + finder=core_list_find(list,&info); + if (!finder) + finder=list->next; + while (finder) { + retval=crc16(list->info->data16,retval); + finder=finder->next; + } +#if CORE_DEBUG + ee_printf("List sort 1: %04x\n",retval); +#endif + remover=core_list_undo_remove(remover,list->next); + /* sort the list by index, in effect returning the list to original state */ + list=core_list_mergesort(list,cmp_idx,NULL); + /* CRC data content of list */ + finder=list->next; + while (finder) { + retval=crc16(list->info->data16,retval); + finder=finder->next; + } +#if CORE_DEBUG + ee_printf("List sort 2: %04x\n",retval); +#endif + return retval; +} +/* Function: core_list_init + Initialize list with data. + + Parameters: + blksize - Size of memory to be initialized. + memblock - Pointer to memory block. + seed - Actual values chosen depend on the seed parameter. + The seed parameter MUST be supplied from a source that cannot be determined at compile time + + Returns: + Pointer to the head of the list. + +*/ +list_head *core_list_init(ee_u32 blksize, list_head *memblock, ee_s16 seed) { + /* calculated pointers for the list */ + ee_u32 per_item=16+sizeof(struct list_data_s); + ee_u32 size=(blksize/per_item)-2; /* to accomodate systems with 64b pointers, and make sure same code is executed, set max list elements */ + list_head *memblock_end=memblock+size; + list_data *datablock=(list_data *)(memblock_end); + list_data *datablock_end=datablock+size; + /* some useful variables */ + ee_u32 i; + list_head *finder,*list=memblock; + list_data info; + + /* create a fake items for the list head and tail */ + list->next=NULL; + list->info=datablock; + list->info->idx=0x0000; + list->info->data16=(ee_s16)0x8080; + memblock++; + datablock++; + info.idx=0x7fff; + info.data16=(ee_s16)0xffff; + core_list_insert_new(list,&info,&memblock,&datablock,memblock_end,datablock_end); + + /* then insert size items */ + for (i=0; inext; + i=1; + while (finder->next!=NULL) { + if (iinfo->idx=i++; + else { + ee_u16 pat=(ee_u16)(i++ ^ seed); /* get a pseudo random number */ + finder->info->idx=0x3fff & (((i & 0x07) << 8) | pat); /* make sure the mixed items end up after the ones in sequence */ + } + finder=finder->next; + } + list = core_list_mergesort(list,cmp_idx,NULL); +#if CORE_DEBUG + ee_printf("Initialized list:\n"); + finder=list; + while (finder) { + ee_printf("[%04x,%04x]",finder->info->idx,(ee_u16)finder->info->data16); + finder=finder->next; + } + ee_printf("\n"); +#endif + return list; +} + +/* Function: core_list_insert + Insert an item to the list + + Parameters: + insert_point - where to insert the item. + info - data for the cell. + memblock - pointer for the list header + datablock - pointer for the list data + memblock_end - end of region for list headers + datablock_end - end of region for list data + + Returns: + Pointer to new item. +*/ +list_head *core_list_insert_new(list_head *insert_point, list_data *info, list_head **memblock, list_data **datablock + , list_head *memblock_end, list_data *datablock_end) { + list_head *newitem; + + if ((*memblock+1) >= memblock_end) + return NULL; + if ((*datablock+1) >= datablock_end) + return NULL; + + newitem=*memblock; + (*memblock)++; + newitem->next=insert_point->next; + insert_point->next=newitem; + + newitem->info=*datablock; + (*datablock)++; + copy_info(newitem->info,info); + + return newitem; +} + +/* Function: core_list_remove + Remove an item from the list. + + Operation: + For a singly linked list, remove by copying the data from the next item + over to the current cell, and unlinking the next item. + + Note: + since there is always a fake item at the end of the list, no need to check for NULL. + + Returns: + Removed item. +*/ +list_head *core_list_remove(list_head *item) { + list_data *tmp; + list_head *ret=item->next; + /* swap data pointers */ + tmp=item->info; + item->info=ret->info; + ret->info=tmp; + /* and eliminate item */ + item->next=item->next->next; + ret->next=NULL; + return ret; +} + +/* Function: core_list_undo_remove + Undo a remove operation. + + Operation: + Since we want each iteration of the benchmark to be exactly the same, + we need to be able to undo a remove. + Link the removed item back into the list, and switch the info items. + + Parameters: + item_removed - Return value from the + item_modified - List item that was modified during + + Returns: + The item that was linked back to the list. + +*/ +list_head *core_list_undo_remove(list_head *item_removed, list_head *item_modified) { + list_data *tmp; + /* swap data pointers */ + tmp=item_removed->info; + item_removed->info=item_modified->info; + item_modified->info=tmp; + /* and insert item */ + item_removed->next=item_modified->next; + item_modified->next=item_removed; + return item_removed; +} + +/* Function: core_list_find + Find an item in the list + + Operation: + Find an item by idx (if not 0) or specific data value + + Parameters: + list - list head + info - idx or data to find + + Returns: + Found item, or NULL if not found. +*/ +list_head *core_list_find(list_head *list,list_data *info) { + if (info->idx>=0) { + while (list && (list->info->idx != info->idx)) + list=list->next; + return list; + } else { + while (list && ((list->info->data16 & 0xff) != info->data16)) + list=list->next; + return list; + } +} +/* Function: core_list_reverse + Reverse a list + + Operation: + Rearrange the pointers so the list is reversed. + + Parameters: + list - list head + info - idx or data to find + + Returns: + Found item, or NULL if not found. +*/ + +list_head *core_list_reverse(list_head *list) { + list_head *next=NULL, *tmp; + while (list) { + tmp=list->next; + list->next=next; + next=list; + list=tmp; + } + return next; +} +/* Function: core_list_mergesort + Sort the list in place without recursion. + + Description: + Use mergesort, as for linked list this is a realistic solution. + Also, since this is aimed at embedded, care was taken to use iterative rather then recursive algorithm. + The sort can either return the list to original order (by idx) , + or use the data item to invoke other other algorithms and change the order of the list. + + Parameters: + list - list to be sorted. + cmp - cmp function to use + + Returns: + New head of the list. + + Note: + We have a special header for the list that will always be first, + but the algorithm could theoretically modify where the list starts. + + */ +list_head *core_list_mergesort(list_head *list, list_cmp cmp, core_results *res) { + list_head *p, *q, *e, *tail; + ee_s32 insize, nmerges, psize, qsize, i; + + insize = 1; + + while (1) { + p = list; + list = NULL; + tail = NULL; + + nmerges = 0; /* count number of merges we do in this pass */ + + while (p) { + nmerges++; /* there exists a merge to be done */ + /* step `insize' places along from p */ + q = p; + psize = 0; + for (i = 0; i < insize; i++) { + psize++; + q = q->next; + if (!q) break; + } + + /* if q hasn't fallen off end, we have two lists to merge */ + qsize = insize; + + /* now we have two lists; merge them */ + while (psize > 0 || (qsize > 0 && q)) { + + /* decide whether next element of merge comes from p or q */ + if (psize == 0) { + /* p is empty; e must come from q. */ + e = q; q = q->next; qsize--; + } else if (qsize == 0 || !q) { + /* q is empty; e must come from p. */ + e = p; p = p->next; psize--; + } else if (cmp(p->info,q->info,res) <= 0) { + /* First element of p is lower (or same); e must come from p. */ + e = p; p = p->next; psize--; + } else { + /* First element of q is lower; e must come from q. */ + e = q; q = q->next; qsize--; + } + + /* add the next element to the merged list */ + if (tail) { + tail->next = e; + } else { + list = e; + } + tail = e; + } + + /* now p has stepped `insize' places along, and q has too */ + p = q; + } + + tail->next = NULL; + + /* If we have done only one merge, we're finished. */ + if (nmerges <= 1) /* allow for nmerges==0, the empty list case */ + return list; + + /* Otherwise repeat, merging lists twice the size */ + insize *= 2; + } +#if COMPILER_REQUIRES_SORT_RETURN + return list; +#endif +} diff --git a/tests/example/coremark/core_main.c b/tests/example/coremark/core_main.c new file mode 100644 index 0000000..c4145ec --- /dev/null +++ b/tests/example/coremark/core_main.c @@ -0,0 +1,356 @@ +/* +Author : Shay Gal-On, EEMBC + +This file is part of EEMBC(R) and CoreMark(TM), which are Copyright (C) 2009 +All rights reserved. + +EEMBC CoreMark Software is a product of EEMBC and is provided under the terms of the +CoreMark License that is distributed with the official EEMBC COREMARK Software release. +If you received this EEMBC CoreMark Software without the accompanying CoreMark License, +you must discontinue use and download the official release from www.coremark.org. + +Also, if you are publicly displaying scores generated from the EEMBC CoreMark software, +make sure that you are in compliance with Run and Reporting rules specified in the accompanying readme.txt file. + +EEMBC +4354 Town Center Blvd. Suite 114-200 +El Dorado Hills, CA, 95762 +*/ +/* File: core_main.c + This file contains the framework to acquire a block of memory, seed initial parameters, tun t he benchmark and report the results. +*/ +#include "coremark.h" + +/* Function: iterate + Run the benchmark for a specified number of iterations. + + Operation: + For each type of benchmarked algorithm: + a - Initialize the data block for the algorithm. + b - Execute the algorithm N times. + + Returns: + NULL. +*/ +static ee_u16 list_known_crc[] = {(ee_u16)0xd4b0,(ee_u16)0x3340,(ee_u16)0x6a79,(ee_u16)0xe714,(ee_u16)0xe3c1}; +static ee_u16 matrix_known_crc[] = {(ee_u16)0xbe52,(ee_u16)0x1199,(ee_u16)0x5608,(ee_u16)0x1fd7,(ee_u16)0x0747}; +static ee_u16 state_known_crc[] = {(ee_u16)0x5e47,(ee_u16)0x39bf,(ee_u16)0xe5a4,(ee_u16)0x8e3a,(ee_u16)0x8d84}; +void *iterate(void *pres) { + ee_u32 i; + ee_u16 crc; + core_results *res=(core_results *)pres; + ee_u32 iterations=res->iterations; + res->crc=0; + res->crclist=0; + res->crcmatrix=0; + res->crcstate=0; + + for (i=0; icrc=crcu16(crc,res->crc); + crc=core_bench_list(res,-1); + res->crc=crcu16(crc,res->crc); + if (i==0) res->crclist=res->crc; + } + return NULL; +} + +#if (SEED_METHOD==SEED_ARG) +ee_s32 get_seed_args(int i, int argc, char *argv[]); +#define get_seed(x) (ee_s16)get_seed_args(x,argc,argv) +#define get_seed_32(x) get_seed_args(x,argc,argv) +#else /* via function or volatile */ +ee_s32 get_seed_32(int i); +#define get_seed(x) (ee_s16)get_seed_32(x) +#endif + +#if (MEM_METHOD==MEM_STATIC) +ee_u8 static_memblk[TOTAL_DATA_SIZE]; +#endif +char *mem_name[3] = {"Static","Heap","Stack"}; +/* Function: main + Main entry routine for the benchmark. + This function is responsible for the following steps: + + 1 - Initialize input seeds from a source that cannot be determined at compile time. + 2 - Initialize memory block for use. + 3 - Run and time the benchmark. + 4 - Report results, testing the validity of the output if the seeds are known. + + Arguments: + 1 - first seed : Any value + 2 - second seed : Must be identical to first for iterations to be identical + 3 - third seed : Any value, should be at least an order of magnitude less then the input size, but bigger then 32. + 4 - Iterations : Special, if set to 0, iterations will be automatically determined such that the benchmark will run between 10 to 100 secs + +*/ + +#if MAIN_HAS_NOARGC +MAIN_RETURN_TYPE main(void) { + int argc=0; + char *argv[1]; +#else +MAIN_RETURN_TYPE main(int argc, char *argv[]) { +#endif + ee_u16 i,j=0,num_algorithms=0; + ee_s16 known_id=-1,total_errors=0; + ee_u16 seedcrc=0; + CORE_TICKS total_time; + core_results results[MULTITHREAD]; +#if (MEM_METHOD==MEM_STACK) + ee_u8 stack_memblock[TOTAL_DATA_SIZE*MULTITHREAD]; +#endif + /* first call any initializations needed */ + portable_init(&(results[0].port), &argc, argv); + /* First some checks to make sure benchmark will run ok */ + if (sizeof(struct list_head_s)>128) { + ee_printf("list_head structure too big for comparable data!\n"); + return MAIN_RETURN_VAL; + } + results[0].seed1=get_seed(1); + results[0].seed2=get_seed(2); + results[0].seed3=get_seed(3); + results[0].iterations=get_seed_32(4); +#if CORE_DEBUG + results[0].iterations=1; +#endif + results[0].execs=get_seed_32(5); + if (results[0].execs==0) { /* if not supplied, execute all algorithms */ + results[0].execs=ALL_ALGORITHMS_MASK; + } + /* put in some default values based on one seed only for easy testing */ + if ((results[0].seed1==0) && (results[0].seed2==0) && (results[0].seed3==0)) { /* validation run */ + results[0].seed1=0; + results[0].seed2=0; + results[0].seed3=0x66; + } + if ((results[0].seed1==1) && (results[0].seed2==0) && (results[0].seed3==0)) { /* perfromance run */ + results[0].seed1=0x3415; + results[0].seed2=0x3415; + results[0].seed3=0x66; + } +#if (MEM_METHOD==MEM_STATIC) + results[0].memblock[0]=(void *)static_memblk; + results[0].size=TOTAL_DATA_SIZE; + results[0].err=0; + #if (MULTITHREAD>1) + #error "Cannot use a static data area with multiple contexts!" + #endif +#elif (MEM_METHOD==MEM_MALLOC) + for (i=0 ; i1) + if (default_num_contexts>MULTITHREAD) { + default_num_contexts=MULTITHREAD; + } + for (i=0 ; i=0) { + for (i=0 ; i 0) + ee_printf("Iterations/Sec : %f\n",default_num_contexts*results[0].iterations/time_in_secs(total_time)); +#else + ee_printf("Total time (secs): %d\n",time_in_secs(total_time)); + if (time_in_secs(total_time) > 0) + ee_printf("Iterations/Sec : %d\n",default_num_contexts*results[0].iterations/time_in_secs(total_time)); +#endif + if (time_in_secs(total_time) < 10) { + ee_printf("ERROR! Must execute for at least 10 secs for a valid result!\n"); + total_errors++; + } + + ee_printf("Iterations : %lu\n",(ee_u32)default_num_contexts*results[0].iterations); + ee_printf("Compiler version : %s\n",COMPILER_VERSION); + ee_printf("Compiler flags : %s\n",COMPILER_FLAGS); +#if (MULTITHREAD>1) + ee_printf("Parallel %s : %d\n",PARALLEL_METHOD,default_num_contexts); +#endif + ee_printf("Memory location : %s\n",MEM_LOCATION); + /* output for verification */ + ee_printf("seedcrc : 0x%04x\n",seedcrc); + if (results[0].execs & ID_LIST) + for (i=0 ; i1) + ee_printf(" / %d:%s",default_num_contexts,PARALLEL_METHOD); +#endif + ee_printf("\n"); + } +#endif + } + if (total_errors>0) + ee_printf("Errors detected\n"); + if (total_errors<0) + ee_printf("Cannot validate operation for these seed values, please compare with results on a known platform.\n"); + +#if (MEM_METHOD==MEM_MALLOC) + for (i=0 ; i>(from)) & (~(0xffffffff << (to)))) + +#if CORE_DEBUG +void printmat(MATDAT *A, ee_u32 N, char *name) { + ee_u32 i,j; + ee_printf("Matrix %s [%dx%d]:\n",name,N,N); + for (i=0; i N times, + changing the matrix values slightly by a constant amount each time. +*/ +ee_u16 core_bench_matrix(mat_params *p, ee_s16 seed, ee_u16 crc) { + ee_u32 N=p->N; + MATRES *C=p->C; + MATDAT *A=p->A; + MATDAT *B=p->B; + MATDAT val=(MATDAT)seed; + + crc=crc16(matrix_test(N,C,A,B,val),crc); + + return crc; +} + +/* Function: matrix_test + Perform matrix manipulation. + + Parameters: + N - Dimensions of the matrix. + C - memory for result matrix. + A - input matrix + B - operator matrix (not changed during operations) + + Returns: + A CRC value that captures all results calculated in the function. + In particular, crc of the value calculated on the result matrix + after each step by . + + Operation: + + 1 - Add a constant value to all elements of a matrix. + 2 - Multiply a matrix by a constant. + 3 - Multiply a matrix by a vector. + 4 - Multiply a matrix by a matrix. + 5 - Add a constant value to all elements of a matrix. + + After the last step, matrix A is back to original contents. +*/ +ee_s16 matrix_test(ee_u32 N, MATRES *C, MATDAT *A, MATDAT *B, MATDAT val) { + ee_u16 crc=0; + MATDAT clipval=matrix_big(val); + + matrix_add_const(N,A,val); /* make sure data changes */ +#if CORE_DEBUG + printmat(A,N,"matrix_add_const"); +#endif + matrix_mul_const(N,C,A,val); + crc=crc16(matrix_sum(N,C,clipval),crc); +#if CORE_DEBUG + printmatC(C,N,"matrix_mul_const"); +#endif + matrix_mul_vect(N,C,A,B); + crc=crc16(matrix_sum(N,C,clipval),crc); +#if CORE_DEBUG + printmatC(C,N,"matrix_mul_vect"); +#endif + matrix_mul_matrix(N,C,A,B); + crc=crc16(matrix_sum(N,C,clipval),crc); +#if CORE_DEBUG + printmatC(C,N,"matrix_mul_matrix"); +#endif + matrix_mul_matrix_bitextract(N,C,A,B); + crc=crc16(matrix_sum(N,C,clipval),crc); +#if CORE_DEBUG + printmatC(C,N,"matrix_mul_matrix_bitextract"); +#endif + + matrix_add_const(N,A,-val); /* return matrix to initial value */ + return crc; +} + +/* Function : matrix_init + Initialize the memory block for matrix benchmarking. + + Parameters: + blksize - Size of memory to be initialized. + memblk - Pointer to memory block. + seed - Actual values chosen depend on the seed parameter. + p - pointers to containing initialized matrixes. + + Returns: + Matrix dimensions. + + Note: + The seed parameter MUST be supplied from a source that cannot be determined at compile time +*/ +ee_u32 core_init_matrix(ee_u32 blksize, void *memblk, ee_s32 seed, mat_params *p) { + ee_u32 N=0; + MATDAT *A; + MATDAT *B; + ee_s32 order=1; + MATDAT val; + ee_u32 i=0,j=0; + if (seed==0) + seed=1; + while (jA=A; + p->B=B; + p->C=(MATRES *)align_mem(B+N*N); + p->N=N; +#if CORE_DEBUG + printmat(A,N,"A"); + printmat(B,N,"B"); +#endif + return N; +} + +/* Function: matrix_sum + Calculate a function that depends on the values of elements in the matrix. + + For each element, accumulate into a temporary variable. + + As long as this value is under the parameter clipval, + add 1 to the result if the element is bigger then the previous. + + Otherwise, reset the accumulator and add 10 to the result. +*/ +ee_s16 matrix_sum(ee_u32 N, MATRES *C, MATDAT clipval) { + MATRES tmp=0,prev=0,cur=0; + ee_s16 ret=0; + ee_u32 i,j; + for (i=0; iclipval) { + ret+=10; + tmp=0; + } else { + ret += (cur>prev) ? 1 : 0; + } + prev=cur; + } + } + return ret; +} + +/* Function: matrix_mul_const + Multiply a matrix by a constant. + This could be used as a scaler for instance. +*/ +void matrix_mul_const(ee_u32 N, MATRES *C, MATDAT *A, MATDAT val) { + ee_u32 i,j; + for (i=0; i +#include +#include "coremark.h" +#include "../include/utils.h" +#include "../include/uart.h" +#include "../include/xprintf.h" + +#if VALIDATION_RUN + volatile ee_s32 seed1_volatile=0x3415; + volatile ee_s32 seed2_volatile=0x3415; + volatile ee_s32 seed3_volatile=0x66; +#endif + +#if PERFORMANCE_RUN + volatile ee_s32 seed1_volatile=0x0; + volatile ee_s32 seed2_volatile=0x0; + volatile ee_s32 seed3_volatile=0x66; +#endif + +#if PROFILE_RUN + volatile ee_s32 seed1_volatile=0x8; + volatile ee_s32 seed2_volatile=0x8; + volatile ee_s32 seed3_volatile=0x8; +#endif + +volatile ee_s32 seed4_volatile=ITERATIONS; +volatile ee_s32 seed5_volatile=0; + +static CORE_TICKS t0, t1; + +void start_time(void) +{ + t0 = get_cycle_value(); +} + +void stop_time(void) +{ + t1 = get_cycle_value(); +} + +CORE_TICKS get_time(void) +{ + return t1 - t0; +} + +secs_ret time_in_secs(CORE_TICKS ticks) +{ + // scale timer down to avoid uint64_t -> double conversion in RV32 + int scale = 256; + uint32_t delta = ticks / scale; + uint32_t freq = CPU_FREQ_HZ / scale; + return delta / (double)freq; +} + +static void uart_putc(uint8_t c) +{ + while (UART0_REG(UART0_STATUS) & 0x1); + UART0_REG(UART0_TXDATA) = c; +} + +void portable_init(core_portable *p, int *argc, char *argv[]) +{ + UART0_REG(UART0_CTRL) = 0x1; + + xdev_out(uart_putc); +} diff --git a/tests/example/coremark/core_portme.h b/tests/example/coremark/core_portme.h new file mode 100644 index 0000000..aa2adc3 --- /dev/null +++ b/tests/example/coremark/core_portme.h @@ -0,0 +1,65 @@ +//Bob: put some macro here such that the IDE SDK do not need to specify the macro specially +#define FLAGS_STR "-O2 -fno-common -funroll-loops -finline-functions --param max-inline-insns-auto=20 -falign-functions=4 -falign-jumps=4 -falign-loops=4" +#define PERFORMANCE_RUN 1 +#define ITERATIONS 10000 + +#ifndef FESDK_CORE_PORTME_H +#define FESDK_CORE_PORTME_H + +#include +#include + +#include "../include/xprintf.h" + +#define HAS_FLOAT 0 +#define HAS_TIME_H 1 +#define USE_CLOCK 1 +#define HAS_STDIO 1 +#define HAS_PRINTF 1 +#define SEED_METHOD SEED_VOLATILE +#define CORE_TICKS uint64_t +#define ee_u8 uint8_t +#define ee_u16 uint16_t +#define ee_u32 uint32_t +#define ee_s16 int16_t +#define ee_s32 int32_t +#define ee_ptr_int uintptr_t +#define ee_size_t size_t +#define COMPILER_FLAGS FLAGS_STR + +#define align_mem(x) (void *)(((ee_ptr_int)(x) + sizeof(ee_u32) - 1) & -sizeof(ee_u32)) + +#ifdef __GNUC__ +# define COMPILER_VERSION "GCC"__VERSION__ +#else +# error +#endif + +#define MEM_METHOD MEM_STATIC +#define MEM_LOCATION "STATIC" + +#define MAIN_HAS_NOARGC 0 +#define MAIN_HAS_NORETURN 0 + +#define MULTITHREAD 1 +#define USE_PTHREAD 0 +#define USE_FORK 0 +#define USE_SOCKET 0 + +#define default_num_contexts MULTITHREAD + +typedef int core_portable; +void portable_init(core_portable *p, int *argc, char *argv[]); +static void portable_fini(core_portable *p) {} + +#if !defined(PROFILE_RUN) && !defined(PERFORMANCE_RUN) && !defined(VALIDATION_RUN) +#if (TOTAL_DATA_SIZE==1200) +#define PROFILE_RUN 1 +#elif (TOTAL_DATA_SIZE==2000) +#define PERFORMANCE_RUN 1 +#else +#define VALIDATION_RUN 1 +#endif +#endif + +#endif diff --git a/tests/example/coremark/core_state.c b/tests/example/coremark/core_state.c new file mode 100644 index 0000000..2cb02a9 --- /dev/null +++ b/tests/example/coremark/core_state.c @@ -0,0 +1,277 @@ +/* +Author : Shay Gal-On, EEMBC + +This file is part of EEMBC(R) and CoreMark(TM), which are Copyright (C) 2009 +All rights reserved. + +EEMBC CoreMark Software is a product of EEMBC and is provided under the terms of the +CoreMark License that is distributed with the official EEMBC COREMARK Software release. +If you received this EEMBC CoreMark Software without the accompanying CoreMark License, +you must discontinue use and download the official release from www.coremark.org. + +Also, if you are publicly displaying scores generated from the EEMBC CoreMark software, +make sure that you are in compliance with Run and Reporting rules specified in the accompanying readme.txt file. + +EEMBC +4354 Town Center Blvd. Suite 114-200 +El Dorado Hills, CA, 95762 +*/ +#include "coremark.h" +/* local functions */ +enum CORE_STATE core_state_transition( ee_u8 **instr , ee_u32 *transition_count); + +/* +Topic: Description + Simple state machines like this one are used in many embedded products. + + For more complex state machines, sometimes a state transition table implementation is used instead, + trading speed of direct coding for ease of maintenance. + + Since the main goal of using a state machine in CoreMark is to excercise the switch/if behaviour, + we are using a small moore machine. + + In particular, this machine tests type of string input, + trying to determine whether the input is a number or something else. + (see core_state.png). +*/ + +/* Function: core_bench_state + Benchmark function + + Go over the input twice, once direct, and once after introducing some corruption. +*/ +ee_u16 core_bench_state(ee_u32 blksize, ee_u8 *memblock, + ee_s16 seed1, ee_s16 seed2, ee_s16 step, ee_u16 crc) +{ + ee_u32 final_counts[NUM_CORE_STATES]; + ee_u32 track_counts[NUM_CORE_STATES]; + ee_u8 *p=memblock; + ee_u32 i; + + +#if CORE_DEBUG + ee_printf("State Bench: %d,%d,%d,%04x\n",seed1,seed2,step,crc); +#endif + for (i=0; i0) { + for(i=0;i>3) & 0x3]; + next=4; + break; + case 3: /* float */ + case 4: /* float */ + buf=floatpat[(seed>>3) & 0x3]; + next=8; + break; + case 5: /* scientific */ + case 6: /* scientific */ + buf=scipat[(seed>>3) & 0x3]; + next=8; + break; + case 7: /* invalid */ + buf=errpat[(seed>>3) & 0x3]; + next=8; + break; + default: /* Never happen, just to make some compilers happy */ + break; + } + } + size++; + while (total='0') & (c<='9')) ? 1 : 0; + return retval; +} + +/* Function: core_state_transition + Actual state machine. + + The state machine will continue scanning until either: + 1 - an invalid input is detcted. + 2 - a valid number has been detected. + + The input pointer is updated to point to the end of the token, and the end state is returned (either specific format determined or invalid). +*/ + +enum CORE_STATE core_state_transition( ee_u8 **instr , ee_u32 *transition_count) { + ee_u8 *str=*instr; + ee_u8 NEXT_SYMBOL; + enum CORE_STATE state=CORE_START; + for( ; *str && state != CORE_INVALID; str++ ) { + NEXT_SYMBOL = *str; + if (NEXT_SYMBOL==',') /* end of this input */ { + str++; + break; + } + switch(state) { + case CORE_START: + if(ee_isdigit(NEXT_SYMBOL)) { + state = CORE_INT; + } + else if( NEXT_SYMBOL == '+' || NEXT_SYMBOL == '-' ) { + state = CORE_S1; + } + else if( NEXT_SYMBOL == '.' ) { + state = CORE_FLOAT; + } + else { + state = CORE_INVALID; + transition_count[CORE_INVALID]++; + } + transition_count[CORE_START]++; + break; + case CORE_S1: + if(ee_isdigit(NEXT_SYMBOL)) { + state = CORE_INT; + transition_count[CORE_S1]++; + } + else if( NEXT_SYMBOL == '.' ) { + state = CORE_FLOAT; + transition_count[CORE_S1]++; + } + else { + state = CORE_INVALID; + transition_count[CORE_S1]++; + } + break; + case CORE_INT: + if( NEXT_SYMBOL == '.' ) { + state = CORE_FLOAT; + transition_count[CORE_INT]++; + } + else if(!ee_isdigit(NEXT_SYMBOL)) { + state = CORE_INVALID; + transition_count[CORE_INT]++; + } + break; + case CORE_FLOAT: + if( NEXT_SYMBOL == 'E' || NEXT_SYMBOL == 'e' ) { + state = CORE_S2; + transition_count[CORE_FLOAT]++; + } + else if(!ee_isdigit(NEXT_SYMBOL)) { + state = CORE_INVALID; + transition_count[CORE_FLOAT]++; + } + break; + case CORE_S2: + if( NEXT_SYMBOL == '+' || NEXT_SYMBOL == '-' ) { + state = CORE_EXPONENT; + transition_count[CORE_S2]++; + } + else { + state = CORE_INVALID; + transition_count[CORE_S2]++; + } + break; + case CORE_EXPONENT: + if(ee_isdigit(NEXT_SYMBOL)) { + state = CORE_SCIENTIFIC; + transition_count[CORE_EXPONENT]++; + } + else { + state = CORE_INVALID; + transition_count[CORE_EXPONENT]++; + } + break; + case CORE_SCIENTIFIC: + if(!ee_isdigit(NEXT_SYMBOL)) { + state = CORE_INVALID; + transition_count[CORE_INVALID]++; + } + break; + default: + break; + } + } + *instr=str; + return state; +} diff --git a/tests/example/coremark/core_util.c b/tests/example/coremark/core_util.c new file mode 100644 index 0000000..0b95bfe --- /dev/null +++ b/tests/example/coremark/core_util.c @@ -0,0 +1,210 @@ +/* +Author : Shay Gal-On, EEMBC + +This file is part of EEMBC(R) and CoreMark(TM), which are Copyright (C) 2009 +All rights reserved. + +EEMBC CoreMark Software is a product of EEMBC and is provided under the terms of the +CoreMark License that is distributed with the official EEMBC COREMARK Software release. +If you received this EEMBC CoreMark Software without the accompanying CoreMark License, +you must discontinue use and download the official release from www.coremark.org. + +Also, if you are publicly displaying scores generated from the EEMBC CoreMark software, +make sure that you are in compliance with Run and Reporting rules specified in the accompanying readme.txt file. + +EEMBC +4354 Town Center Blvd. Suite 114-200 +El Dorado Hills, CA, 95762 +*/ +#include "coremark.h" +/* Function: get_seed + Get a values that cannot be determined at compile time. + + Since different embedded systems and compilers are used, 3 different methods are provided: + 1 - Using a volatile variable. This method is only valid if the compiler is forced to generate code that + reads the value of a volatile variable from memory at run time. + Please note, if using this method, you would need to modify core_portme.c to generate training profile. + 2 - Command line arguments. This is the preferred method if command line arguments are supported. + 3 - System function. If none of the first 2 methods is available on the platform, + a system function which is not a stub can be used. + + e.g. read the value on GPIO pins connected to switches, or invoke special simulator functions. +*/ +#if (SEED_METHOD==SEED_VOLATILE) + extern volatile ee_s32 seed1_volatile; + extern volatile ee_s32 seed2_volatile; + extern volatile ee_s32 seed3_volatile; + extern volatile ee_s32 seed4_volatile; + extern volatile ee_s32 seed5_volatile; + ee_s32 get_seed_32(int i) { + ee_s32 retval; + switch (i) { + case 1: + retval=seed1_volatile; + break; + case 2: + retval=seed2_volatile; + break; + case 3: + retval=seed3_volatile; + break; + case 4: + retval=seed4_volatile; + break; + case 5: + retval=seed5_volatile; + break; + default: + retval=0; + break; + } + return retval; + } +#elif (SEED_METHOD==SEED_ARG) +ee_s32 parseval(char *valstring) { + ee_s32 retval=0; + ee_s32 neg=1; + int hexmode=0; + if (*valstring == '-') { + neg=-1; + valstring++; + } + if ((valstring[0] == '0') && (valstring[1] == 'x')) { + hexmode=1; + valstring+=2; + } + /* first look for digits */ + if (hexmode) { + while (((*valstring >= '0') && (*valstring <= '9')) || ((*valstring >= 'a') && (*valstring <= 'f'))) { + ee_s32 digit=*valstring-'0'; + if (digit>9) + digit=10+*valstring-'a'; + retval*=16; + retval+=digit; + valstring++; + } + } else { + while ((*valstring >= '0') && (*valstring <= '9')) { + ee_s32 digit=*valstring-'0'; + retval*=10; + retval+=digit; + valstring++; + } + } + /* now add qualifiers */ + if (*valstring=='K') + retval*=1024; + if (*valstring=='M') + retval*=1024*1024; + + retval*=neg; + return retval; +} + +ee_s32 get_seed_args(int i, int argc, char *argv[]) { + if (argc>i) + return parseval(argv[i]); + return 0; +} + +#elif (SEED_METHOD==SEED_FUNC) +/* If using OS based function, you must define and implement the functions below in core_portme.h and core_portme.c ! */ +ee_s32 get_seed_32(int i) { + ee_s32 retval; + switch (i) { + case 1: + retval=portme_sys1(); + break; + case 2: + retval=portme_sys2(); + break; + case 3: + retval=portme_sys3(); + break; + case 4: + retval=portme_sys4(); + break; + case 5: + retval=portme_sys5(); + break; + default: + retval=0; + break; + } + return retval; +} +#endif + +/* Function: crc* + Service functions to calculate 16b CRC code. + +*/ +ee_u16 crcu8(ee_u8 data, ee_u16 crc ) +{ + ee_u8 i=0,x16=0,carry=0; + + for (i = 0; i < 8; i++) + { + x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1)); + data >>= 1; + + if (x16 == 1) + { + crc ^= 0x4002; + carry = 1; + } + else + carry = 0; + crc >>= 1; + if (carry) + crc |= 0x8000; + else + crc &= 0x7fff; + } + return crc; +} +ee_u16 crcu16(ee_u16 newval, ee_u16 crc) { + crc=crcu8( (ee_u8) (newval) ,crc); + crc=crcu8( (ee_u8) ((newval)>>8) ,crc); + return crc; +} +ee_u16 crcu32(ee_u32 newval, ee_u16 crc) { + crc=crc16((ee_s16) newval ,crc); + crc=crc16((ee_s16) (newval>>16) ,crc); + return crc; +} +ee_u16 crc16(ee_s16 newval, ee_u16 crc) { + return crcu16((ee_u16)newval, crc); +} + +ee_u8 check_data_types() { + ee_u8 retval=0; + if (sizeof(ee_u8) != 1) { + ee_printf("ERROR: ee_u8 is not an 8b datatype!\n"); + retval++; + } + if (sizeof(ee_u16) != 2) { + ee_printf("ERROR: ee_u16 is not a 16b datatype!\n"); + retval++; + } + if (sizeof(ee_s16) != 2) { + ee_printf("ERROR: ee_s16 is not a 16b datatype!\n"); + retval++; + } + if (sizeof(ee_s32) != 4) { + ee_printf("ERROR: ee_s32 is not a 32b datatype!\n"); + retval++; + } + if (sizeof(ee_u32) != 4) { + ee_printf("ERROR: ee_u32 is not a 32b datatype!\n"); + retval++; + } + if (sizeof(ee_ptr_int) != sizeof(int *)) { + ee_printf("ERROR: ee_ptr_int is not a datatype that holds an int pointer!\n"); + retval++; + } + if (retval>0) { + ee_printf("ERROR: Please modify the datatypes in core_portme.h!\n"); + } + return retval; +} diff --git a/tests/example/coremark/coremark b/tests/example/coremark/coremark new file mode 100644 index 0000000..164d326 Binary files /dev/null and b/tests/example/coremark/coremark differ diff --git a/tests/example/coremark/coremark.bin b/tests/example/coremark/coremark.bin new file mode 100644 index 0000000..1452355 Binary files /dev/null and b/tests/example/coremark/coremark.bin differ diff --git a/tests/example/coremark/coremark.dump b/tests/example/coremark/coremark.dump new file mode 100644 index 0000000..b839aed --- /dev/null +++ b/tests/example/coremark/coremark.dump @@ -0,0 +1,7669 @@ + +coremark: file format elf32-littleriscv + + +Disassembly of section .init: + +00000000 <_start>: + 0: 10001197 auipc gp,0x10001 + 4: f5818193 addi gp,gp,-168 # 10000f58 <__global_pointer$> + 8: 10003117 auipc sp,0x10003 + c: ff810113 addi sp,sp,-8 # 10003000 <_sp> + 10: 00006517 auipc a0,0x6 + 14: 69850513 addi a0,a0,1688 # 66a8 <_data_lma> + 18: 10000597 auipc a1,0x10000 + 1c: fe858593 addi a1,a1,-24 # 10000000 <_data> + 20: 80818613 addi a2,gp,-2040 # 10000760 + 24: 00c5fc63 bgeu a1,a2,3c <_start+0x3c> + 28: 00052283 lw t0,0(a0) + 2c: 0055a023 sw t0,0(a1) + 30: 00450513 addi a0,a0,4 + 34: 00458593 addi a1,a1,4 + 38: fec5e8e3 bltu a1,a2,28 <_start+0x28> + 3c: 80818513 addi a0,gp,-2040 # 10000760 + 40: 00018593 mv a1,gp + 44: 00b57863 bgeu a0,a1,54 <_start+0x54> + 48: 00052023 sw zero,0(a0) + 4c: 00450513 addi a0,a0,4 + 50: feb56ce3 bltu a0,a1,48 <_start+0x48> + 54: 520040ef jal ra,4574 <_init> + 58: 008000ef jal ra,60
+ +0000005c : + 5c: 0000006f j 5c + +Disassembly of section .text: + +00000060
: + 60: f8010113 addi sp,sp,-128 + 64: 00058613 mv a2,a1 + 68: 00a12623 sw a0,12(sp) + 6c: 00c10593 addi a1,sp,12 + 70: 05c10513 addi a0,sp,92 + 74: 06112e23 sw ra,124(sp) + 78: 06812c23 sw s0,120(sp) + 7c: 06912a23 sw s1,116(sp) + 80: 07212823 sw s2,112(sp) + 84: 07312623 sw s3,108(sp) + 88: 07412423 sw s4,104(sp) + 8c: 4c4040ef jal ra,4550 + 90: 00100513 li a0,1 + 94: 161030ef jal ra,39f4 + 98: 00a11c23 sh a0,24(sp) + 9c: 00200513 li a0,2 + a0: 155030ef jal ra,39f4 + a4: 00a11d23 sh a0,26(sp) + a8: 00300513 li a0,3 + ac: 149030ef jal ra,39f4 + b0: 00a11e23 sh a0,28(sp) + b4: 00400513 li a0,4 + b8: 13d030ef jal ra,39f4 + bc: 02a12a23 sw a0,52(sp) + c0: 00500513 li a0,5 + c4: 131030ef jal ra,39f4 + c8: 3c050c63 beqz a0,4a0 + cc: 02a12c23 sw a0,56(sp) + d0: 01812083 lw ra,24(sp) + d4: 44009663 bnez ra,520 + d8: 01c11403 lh s0,28(sp) + dc: 46040063 beqz s0,53c + e0: 03812483 lw s1,56(sp) + e4: 83018593 addi a1,gp,-2000 # 10000788 + e8: 02b12023 sw a1,32(sp) + ec: 0024f713 andi a4,s1,2 + f0: 0014f693 andi a3,s1,1 + f4: 00e03533 snez a0,a4 + f8: 04011c23 sh zero,88(sp) + fc: 0044f813 andi a6,s1,4 + 100: 00a689b3 add s3,a3,a0 + 104: 00080863 beqz a6,114 + 108: 00198893 addi a7,s3,1 + 10c: 01089913 slli s2,a7,0x10 + 110: 01095993 srli s3,s2,0x10 + 114: 7d000a13 li s4,2000 + 118: 033a5533 divu a0,s4,s3 + 11c: 00000f93 li t6,0 + 120: 02a12823 sw a0,48(sp) + 124: 3a069463 bnez a3,4cc + 128: 38071263 bnez a4,4ac + 12c: 3a081863 bnez a6,4dc + 130: 2e069a63 bnez a3,424 + 134: 30071663 bnez a4,440 + 138: 0044f593 andi a1,s1,4 + 13c: 00058a63 beqz a1,150 + 140: 02c12603 lw a2,44(sp) + 144: 01811583 lh a1,24(sp) + 148: 03012503 lw a0,48(sp) + 14c: 164030ef jal ra,32b0 + 150: 03412683 lw a3,52(sp) + 154: 04069a63 bnez a3,1a8 + 158: 00100613 li a2,1 + 15c: 02c12a23 sw a2,52(sp) + 160: 03412503 lw a0,52(sp) + 164: 00251813 slli a6,a0,0x2 + 168: 00a808b3 add a7,a6,a0 + 16c: 00189913 slli s2,a7,0x1 + 170: 03212a23 sw s2,52(sp) + 174: 32c040ef jal ra,44a0 + 178: 01810513 addi a0,sp,24 + 17c: 378010ef jal ra,14f4 + 180: 344040ef jal ra,44c4 + 184: 364040ef jal ra,44e8 + 188: 38c040ef jal ra,4514 + 18c: fc050ae3 beqz a0,160 + 190: 00a00993 li s3,10 + 194: 02a9da33 divu s4,s3,a0 + 198: 03412e83 lw t4,52(sp) + 19c: 001a0e13 addi t3,s4,1 + 1a0: 03ce8f33 mul t5,t4,t3 + 1a4: 03e12a23 sw t5,52(sp) + 1a8: 2f8040ef jal ra,44a0 + 1ac: 01810513 addi a0,sp,24 + 1b0: 344010ef jal ra,14f4 + 1b4: 310040ef jal ra,44c4 + 1b8: 330040ef jal ra,44e8 + 1bc: 00050993 mv s3,a0 + 1c0: 01811503 lh a0,24(sp) + 1c4: 00058a13 mv s4,a1 + 1c8: 00000593 li a1,0 + 1cc: 02c040ef jal ra,41f8 + 1d0: 00050593 mv a1,a0 + 1d4: 01a11503 lh a0,26(sp) + 1d8: 020040ef jal ra,41f8 + 1dc: 00050593 mv a1,a0 + 1e0: 01c11503 lh a0,28(sp) + 1e4: 014040ef jal ra,41f8 + 1e8: 00050593 mv a1,a0 + 1ec: 03011503 lh a0,48(sp) + 1f0: 008040ef jal ra,41f8 + 1f4: 00008fb7 lui t6,0x8 + 1f8: b05f8293 addi t0,t6,-1275 # 7b05 <_data_lma+0x145d> + 1fc: 00050913 mv s2,a0 + 200: 3e550463 beq a0,t0,5e8 + 204: 26a2f263 bgeu t0,a0,468 + 208: 000090b7 lui ra,0x9 + 20c: a0208313 addi t1,ra,-1534 # 8a02 <_data_lma+0x235a> + 210: 3e650663 beq a0,t1,5fc + 214: 0000f737 lui a4,0xf + 218: 9f570793 addi a5,a4,-1547 # e9f5 <_data_lma+0x834d> + 21c: 26f51c63 bne a0,a5,494 + 220: 10000517 auipc a0,0x10000 + 224: e7c50513 addi a0,a0,-388 # 1000009c <_data+0x9c> + 228: 368040ef jal ra,4590 + 22c: 00300493 li s1,3 + 230: 03812503 lw a0,56(sp) + 234: 04011c23 sh zero,88(sp) + 238: 00157613 andi a2,a0,1 + 23c: 04060063 beqz a2,27c + 240: 00149813 slli a6,s1,0x1 + 244: 10000897 auipc a7,0x10000 + 248: dbc88893 addi a7,a7,-580 # 10000000 <_data> + 24c: 01088e33 add t3,a7,a6 + 250: 05215603 lhu a2,82(sp) + 254: 000e5683 lhu a3,0(t3) + 258: 02d60263 beq a2,a3,27c + 25c: 10000517 auipc a0,0x10000 + 260: e9c50513 addi a0,a0,-356 # 100000f8 <_data+0xf8> + 264: 00000593 li a1,0 + 268: 328040ef jal ra,4590 + 26c: 05815e83 lhu t4,88(sp) + 270: 03812503 lw a0,56(sp) + 274: 001e8f13 addi t5,t4,1 + 278: 05e11c23 sh t5,88(sp) + 27c: 00257f93 andi t6,a0,2 + 280: 040f8063 beqz t6,2c0 + 284: 00149293 slli t0,s1,0x1 + 288: 10000097 auipc ra,0x10000 + 28c: 1f008093 addi ra,ra,496 # 10000478 + 290: 00508333 add t1,ra,t0 + 294: 05415603 lhu a2,84(sp) + 298: 00035683 lhu a3,0(t1) + 29c: 02d60263 beq a2,a3,2c0 + 2a0: 10000517 auipc a0,0x10000 + 2a4: e8850513 addi a0,a0,-376 # 10000128 <_data+0x128> + 2a8: 00000593 li a1,0 + 2ac: 2e4040ef jal ra,4590 + 2b0: 05815703 lhu a4,88(sp) + 2b4: 03812503 lw a0,56(sp) + 2b8: 00170793 addi a5,a4,1 + 2bc: 04f11c23 sh a5,88(sp) + 2c0: 00457393 andi t2,a0,4 + 2c4: 02038063 beqz t2,2e4 + 2c8: 00149413 slli s0,s1,0x1 + 2cc: 10000497 auipc s1,0x10000 + 2d0: 1b848493 addi s1,s1,440 # 10000484 + 2d4: 008485b3 add a1,s1,s0 + 2d8: 05615603 lhu a2,86(sp) + 2dc: 0005d683 lhu a3,0(a1) + 2e0: 20d61863 bne a2,a3,4f0 + 2e4: 05815403 lhu s0,88(sp) + 2e8: 198040ef jal ra,4480 + 2ec: 03012583 lw a1,48(sp) + 2f0: 00a40833 add a6,s0,a0 + 2f4: 01081893 slli a7,a6,0x10 + 2f8: 10000517 auipc a0,0x10000 + 2fc: e9450513 addi a0,a0,-364 # 1000018c <_data+0x18c> + 300: 0108d493 srli s1,a7,0x10 + 304: 28c040ef jal ra,4590 + 308: 00098593 mv a1,s3 + 30c: 10000517 auipc a0,0x10000 + 310: e9850513 addi a0,a0,-360 # 100001a4 <_data+0x1a4> + 314: 27c040ef jal ra,4590 + 318: 000a0593 mv a1,s4 + 31c: 00098513 mv a0,s3 + 320: 1f4040ef jal ra,4514 + 324: 00050593 mv a1,a0 + 328: 10000517 auipc a0,0x10000 + 32c: e9450513 addi a0,a0,-364 # 100001bc <_data+0x1bc> + 330: 260040ef jal ra,4590 + 334: 00098513 mv a0,s3 + 338: 000a0593 mv a1,s4 + 33c: 1d8040ef jal ra,4514 + 340: 22051263 bnez a0,564 + 344: 00098513 mv a0,s3 + 348: 000a0593 mv a1,s4 + 34c: 1c8040ef jal ra,4514 + 350: 01049a13 slli s4,s1,0x10 + 354: 00900993 li s3,9 + 358: 410a5413 srai s0,s4,0x10 + 35c: 1ea9f663 bgeu s3,a0,548 + 360: 03412583 lw a1,52(sp) + 364: 10000517 auipc a0,0x10000 + 368: ffc50513 addi a0,a0,-4 # 10000360 <_data+0x360> + 36c: 224040ef jal ra,4590 + 370: 10000597 auipc a1,0x10000 + 374: 00858593 addi a1,a1,8 # 10000378 <_data+0x378> + 378: 10000517 auipc a0,0x10000 + 37c: 00c50513 addi a0,a0,12 # 10000384 <_data+0x384> + 380: 210040ef jal ra,4590 + 384: 10000597 auipc a1,0x10000 + 388: 01858593 addi a1,a1,24 # 1000039c <_data+0x39c> + 38c: 10000517 auipc a0,0x10000 + 390: 09850513 addi a0,a0,152 # 10000424 <_data+0x424> + 394: 1fc040ef jal ra,4590 + 398: 10000517 auipc a0,0x10000 + 39c: 0ac50513 addi a0,a0,172 # 10000444 <_data+0x444> + 3a0: 10000597 auipc a1,0x10000 + 3a4: 09c58593 addi a1,a1,156 # 1000043c <_data+0x43c> + 3a8: 1e8040ef jal ra,4590 + 3ac: 00090593 mv a1,s2 + 3b0: 10000517 auipc a0,0x10000 + 3b4: 0ac50513 addi a0,a0,172 # 1000045c <_data+0x45c> + 3b8: 1d8040ef jal ra,4590 + 3bc: 03812903 lw s2,56(sp) + 3c0: 00197f13 andi t5,s2,1 + 3c4: 200f1463 bnez t5,5cc + 3c8: 00297f93 andi t6,s2,2 + 3cc: 1e0f9263 bnez t6,5b0 + 3d0: 00497293 andi t0,s2,4 + 3d4: 1c029263 bnez t0,598 + 3d8: 05015603 lhu a2,80(sp) + 3dc: 00000593 li a1,0 + 3e0: 10000517 auipc a0,0x10000 + 3e4: f1050513 addi a0,a0,-240 # 100002f0 <_data+0x2f0> + 3e8: 1a8040ef jal ra,4590 + 3ec: 18040e63 beqz s0,588 + 3f0: 12805063 blez s0,510 + 3f4: 10000517 auipc a0,0x10000 + 3f8: e8450513 addi a0,a0,-380 # 10000278 <_data+0x278> + 3fc: 194040ef jal ra,4590 + 400: 07c12083 lw ra,124(sp) + 404: 07812403 lw s0,120(sp) + 408: 07412483 lw s1,116(sp) + 40c: 07012903 lw s2,112(sp) + 410: 06c12983 lw s3,108(sp) + 414: 06812a03 lw s4,104(sp) + 418: 00000513 li a0,0 + 41c: 08010113 addi sp,sp,128 + 420: 00008067 ret + 424: 01811603 lh a2,24(sp) + 428: 02412583 lw a1,36(sp) + 42c: 355000ef jal ra,f80 + 430: 03812483 lw s1,56(sp) + 434: 02a12e23 sw a0,60(sp) + 438: 0024f713 andi a4,s1,2 + 43c: ce070ee3 beqz a4,138 + 440: 01a11783 lh a5,26(sp) + 444: 01811383 lh t2,24(sp) + 448: 02812583 lw a1,40(sp) + 44c: 03012503 lw a0,48(sp) + 450: 01079413 slli s0,a5,0x10 + 454: 04010693 addi a3,sp,64 + 458: 00746633 or a2,s0,t2 + 45c: 2d8010ef jal ra,1734 + 460: 03812483 lw s1,56(sp) + 464: cd5ff06f j 138 + 468: 000023b7 lui t2,0x2 + 46c: 8f238413 addi s0,t2,-1806 # 18f2 + 470: 1a850063 beq a0,s0,610 + 474: 000055b7 lui a1,0x5 + 478: eaf58693 addi a3,a1,-337 # 4eaf + 47c: 00d51c63 bne a0,a3,494 + 480: 10000517 auipc a0,0x10000 + 484: be850513 addi a0,a0,-1048 # 10000068 <_data+0x68> + 488: 108040ef jal ra,4590 + 48c: 00200493 li s1,2 + 490: da1ff06f j 230 + 494: 00010637 lui a2,0x10 + 498: fff60413 addi s0,a2,-1 # ffff <_data_lma+0x9957> + 49c: e4dff06f j 2e8 + 4a0: 00700793 li a5,7 + 4a4: 02f12c23 sw a5,56(sp) + 4a8: c29ff06f j d0 + 4ac: 02af8e33 mul t3,t6,a0 + 4b0: 001f8e93 addi t4,t6,1 + 4b4: 010e9f13 slli t5,t4,0x10 + 4b8: 010f5f93 srli t6,t5,0x10 + 4bc: 01c580b3 add ra,a1,t3 + 4c0: 02112423 sw ra,40(sp) + 4c4: c60806e3 beqz a6,130 + 4c8: 0140006f j 4dc + 4cc: 02b12223 sw a1,36(sp) + 4d0: 00100f93 li t6,1 + 4d4: c4070ce3 beqz a4,12c + 4d8: fd5ff06f j 4ac + 4dc: 02af82b3 mul t0,t6,a0 + 4e0: 00558333 add t1,a1,t0 + 4e4: 02612623 sw t1,44(sp) + 4e8: c40686e3 beqz a3,134 + 4ec: f39ff06f j 424 + 4f0: 10000517 auipc a0,0x10000 + 4f4: c6c50513 addi a0,a0,-916 # 1000015c <_data+0x15c> + 4f8: 00000593 li a1,0 + 4fc: 094040ef jal ra,4590 + 500: 05815683 lhu a3,88(sp) + 504: 00168513 addi a0,a3,1 + 508: 04a11c23 sh a0,88(sp) + 50c: dd9ff06f j 2e4 + 510: 10000517 auipc a0,0x10000 + 514: d7c50513 addi a0,a0,-644 # 1000028c <_data+0x28c> + 518: 078040ef jal ra,4590 + 51c: ee5ff06f j 400 + 520: 00100713 li a4,1 + 524: bae09ee3 bne ra,a4,e0 + 528: 01c11283 lh t0,28(sp) + 52c: ba029ae3 bnez t0,e0 + 530: 34153337 lui t1,0x34153 + 534: 41530393 addi t2,t1,1045 # 34153415 <_sp+0x24150415> + 538: 00712c23 sw t2,24(sp) + 53c: 06600493 li s1,102 + 540: 00911e23 sh s1,28(sp) + 544: b9dff06f j e0 + 548: 10000517 auipc a0,0x10000 + 54c: ca450513 addi a0,a0,-860 # 100001ec <_data+0x1ec> + 550: 040040ef jal ra,4590 + 554: 00148e13 addi t3,s1,1 + 558: 010e1e93 slli t4,t3,0x10 + 55c: 410ed413 srai s0,t4,0x10 + 560: e01ff06f j 360 + 564: 03412403 lw s0,52(sp) + 568: 000a0593 mv a1,s4 + 56c: 00098513 mv a0,s3 + 570: 7a5030ef jal ra,4514 + 574: 02a455b3 divu a1,s0,a0 + 578: 10000517 auipc a0,0x10000 + 57c: c5c50513 addi a0,a0,-932 # 100001d4 <_data+0x1d4> + 580: 010040ef jal ra,4590 + 584: dc1ff06f j 344 + 588: 10000517 auipc a0,0x10000 + 58c: ca450513 addi a0,a0,-860 # 1000022c <_data+0x22c> + 590: 000040ef jal ra,4590 + 594: e6dff06f j 400 + 598: 05615603 lhu a2,86(sp) + 59c: 00000593 li a1,0 + 5a0: 10000517 auipc a0,0x10000 + 5a4: d6c50513 addi a0,a0,-660 # 1000030c <_data+0x30c> + 5a8: 7e9030ef jal ra,4590 + 5ac: e2dff06f j 3d8 + 5b0: 05415603 lhu a2,84(sp) + 5b4: 00000593 li a1,0 + 5b8: 10000517 auipc a0,0x10000 + 5bc: d7050513 addi a0,a0,-656 # 10000328 <_data+0x328> + 5c0: 7d1030ef jal ra,4590 + 5c4: 03812903 lw s2,56(sp) + 5c8: e09ff06f j 3d0 + 5cc: 05215603 lhu a2,82(sp) + 5d0: 00000593 li a1,0 + 5d4: 10000517 auipc a0,0x10000 + 5d8: d7050513 addi a0,a0,-656 # 10000344 <_data+0x344> + 5dc: 7b5030ef jal ra,4590 + 5e0: 03812903 lw s2,56(sp) + 5e4: de5ff06f j 3c8 + 5e8: 10000517 auipc a0,0x10000 + 5ec: a5450513 addi a0,a0,-1452 # 1000003c <_data+0x3c> + 5f0: 7a1030ef jal ra,4590 + 5f4: 00100493 li s1,1 + 5f8: c39ff06f j 230 + 5fc: 10000517 auipc a0,0x10000 + 600: a1050513 addi a0,a0,-1520 # 1000000c <_data+0xc> + 604: 78d030ef jal ra,4590 + 608: 00000493 li s1,0 + 60c: c25ff06f j 230 + 610: 10000517 auipc a0,0x10000 + 614: abc50513 addi a0,a0,-1348 # 100000cc <_data+0xcc> + 618: 779030ef jal ra,4590 + 61c: 00400493 li s1,4 + 620: c11ff06f j 230 + +00000624 : + 624: f8010113 addi sp,sp,-128 + 628: 00112223 sw ra,4(sp) + 62c: 00212423 sw sp,8(sp) + 630: 00312623 sw gp,12(sp) + 634: 00412823 sw tp,16(sp) + 638: 00512a23 sw t0,20(sp) + 63c: 00612c23 sw t1,24(sp) + 640: 00712e23 sw t2,28(sp) + 644: 02812023 sw s0,32(sp) + 648: 02912223 sw s1,36(sp) + 64c: 02a12423 sw a0,40(sp) + 650: 02b12623 sw a1,44(sp) + 654: 02c12823 sw a2,48(sp) + 658: 02d12a23 sw a3,52(sp) + 65c: 02e12c23 sw a4,56(sp) + 660: 02f12e23 sw a5,60(sp) + 664: 05012023 sw a6,64(sp) + 668: 05112223 sw a7,68(sp) + 66c: 05212423 sw s2,72(sp) + 670: 05312623 sw s3,76(sp) + 674: 05412823 sw s4,80(sp) + 678: 05512a23 sw s5,84(sp) + 67c: 05612c23 sw s6,88(sp) + 680: 05712e23 sw s7,92(sp) + 684: 07812023 sw s8,96(sp) + 688: 07912223 sw s9,100(sp) + 68c: 07a12423 sw s10,104(sp) + 690: 07b12623 sw s11,108(sp) + 694: 07c12823 sw t3,112(sp) + 698: 07d12a23 sw t4,116(sp) + 69c: 07e12c23 sw t5,120(sp) + 6a0: 07f12e23 sw t6,124(sp) + 6a4: 34202573 csrr a0,mcause + 6a8: 6c5030ef jal ra,456c + 6ac: 00412083 lw ra,4(sp) + 6b0: 00812103 lw sp,8(sp) + 6b4: 00c12183 lw gp,12(sp) + 6b8: 01012203 lw tp,16(sp) + 6bc: 01412283 lw t0,20(sp) + 6c0: 01812303 lw t1,24(sp) + 6c4: 01c12383 lw t2,28(sp) + 6c8: 02012403 lw s0,32(sp) + 6cc: 02412483 lw s1,36(sp) + 6d0: 02812503 lw a0,40(sp) + 6d4: 02c12583 lw a1,44(sp) + 6d8: 03012603 lw a2,48(sp) + 6dc: 03412683 lw a3,52(sp) + 6e0: 03812703 lw a4,56(sp) + 6e4: 03c12783 lw a5,60(sp) + 6e8: 04012803 lw a6,64(sp) + 6ec: 04412883 lw a7,68(sp) + 6f0: 04812903 lw s2,72(sp) + 6f4: 04c12983 lw s3,76(sp) + 6f8: 05012a03 lw s4,80(sp) + 6fc: 05412a83 lw s5,84(sp) + 700: 05812b03 lw s6,88(sp) + 704: 05c12b83 lw s7,92(sp) + 708: 06012c03 lw s8,96(sp) + 70c: 06412c83 lw s9,100(sp) + 710: 06812d03 lw s10,104(sp) + 714: 06c12d83 lw s11,108(sp) + 718: 07012e03 lw t3,112(sp) + 71c: 07412e83 lw t4,116(sp) + 720: 07812f03 lw t5,120(sp) + 724: 07c12f83 lw t6,124(sp) + 728: 08010113 addi sp,sp,128 + 72c: 30200073 mret + 730: 0000006f j 730 + +00000734 : + 734: 00451e03 lh t3,4(a0) + 738: fa010113 addi sp,sp,-96 + 73c: 03812c23 sw s8,56(sp) + 740: 04112e23 sw ra,92(sp) + 744: 04812c23 sw s0,88(sp) + 748: 04912a23 sw s1,84(sp) + 74c: 05212823 sw s2,80(sp) + 750: 05312623 sw s3,76(sp) + 754: 05412423 sw s4,72(sp) + 758: 05512223 sw s5,68(sp) + 75c: 05612023 sw s6,64(sp) + 760: 03712e23 sw s7,60(sp) + 764: 03912a23 sw s9,52(sp) + 768: 03a12823 sw s10,48(sp) + 76c: 03b12623 sw s11,44(sp) + 770: 00012a23 sw zero,20(sp) + 774: 00b12623 sw a1,12(sp) + 778: 02452c03 lw s8,36(a0) + 77c: 7fc05663 blez t3,f68 + 780: 00000613 li a2,0 + 784: 00000e93 li t4,0 + 788: 00000f13 li t5,0 + 78c: 00000313 li t1,0 + 790: 00c12783 lw a5,12(sp) + 794: 0ff67693 andi a3,a2,255 + 798: 00d12a23 sw a3,20(sp) + 79c: 3a07c263 bltz a5,b40 + 7a0: 7c0c0c63 beqz s8,f78 + 7a4: 004c2483 lw s1,4(s8) + 7a8: 00c12903 lw s2,12(sp) + 7ac: 000c0993 mv s3,s8 + 7b0: 00249803 lh a6,2(s1) + 7b4: 01281c63 bne a6,s2,7cc + 7b8: 01c0006f j 7d4 + 7bc: 0049aa03 lw s4,4(s3) + 7c0: 00c12b03 lw s6,12(sp) + 7c4: 002a1a83 lh s5,2(s4) + 7c8: 016a8663 beq s5,s6,7d4 + 7cc: 0009a983 lw s3,0(s3) + 7d0: fe0996e3 bnez s3,7bc + 7d4: 00000b93 li s7,0 + 7d8: 00c0006f j 7e4 + 7dc: 000c0b93 mv s7,s8 + 7e0: 000c8c13 mv s8,s9 + 7e4: 000c2c83 lw s9,0(s8) + 7e8: 017c2023 sw s7,0(s8) + 7ec: fe0c98e3 bnez s9,7dc + 7f0: 38098263 beqz s3,b74 + 7f4: 0049ad03 lw s10,4(s3) + 7f8: 001f0893 addi a7,t5,1 + 7fc: 01089d93 slli s11,a7,0x10 + 800: 000d1f83 lh t6,0(s10) + 804: 010ddf13 srli t5,s11,0x10 + 808: 001ff693 andi a3,t6,1 + 80c: 00068c63 beqz a3,824 + 810: 409fd793 srai a5,t6,0x9 + 814: 0017f713 andi a4,a5,1 + 818: 00e30333 add t1,t1,a4 + 81c: 01031093 slli ra,t1,0x10 + 820: 0100d313 srli t1,ra,0x10 + 824: 0009a283 lw t0,0(s3) + 828: 00028c63 beqz t0,840 + 82c: 0002a383 lw t2,0(t0) + 830: 0079a023 sw t2,0(s3) + 834: 000c2403 lw s0,0(s8) + 838: 0082a023 sw s0,0(t0) + 83c: 005c2023 sw t0,0(s8) + 840: 00c12b03 lw s6,12(sp) + 844: 000b4a63 bltz s6,858 + 848: 001b0b93 addi s7,s6,1 + 84c: 010b9c93 slli s9,s7,0x10 + 850: 410cdd13 srai s10,s9,0x10 + 854: 01a12623 sw s10,12(sp) + 858: 00160613 addi a2,a2,1 + 85c: 01061893 slli a7,a2,0x10 + 860: 4108d613 srai a2,a7,0x10 + 864: f2ce16e3 bne t3,a2,790 + 868: 002f1e13 slli t3,t5,0x2 + 86c: 41de0db3 sub s11,t3,t4 + 870: 01b30f33 add t5,t1,s11 + 874: 010f1f93 slli t6,t5,0x10 + 878: 010fd693 srli a3,t6,0x10 + 87c: 00d12e23 sw a3,28(sp) + 880: 00050d13 mv s10,a0 + 884: 36b04e63 bgtz a1,c00 + 888: 000c2b83 lw s7,0(s8) + 88c: 00c12603 lw a2,12(sp) + 890: 000c0413 mv s0,s8 + 894: 000ba903 lw s2,0(s7) + 898: 004ba083 lw ra,4(s7) + 89c: 00492d03 lw s10,4(s2) + 8a0: 00092883 lw a7,0(s2) + 8a4: 01aba223 sw s10,4(s7) + 8a8: 00192223 sw ra,4(s2) + 8ac: 011ba023 sw a7,0(s7) + 8b0: 00092023 sw zero,0(s2) + 8b4: 20064e63 bltz a2,ad0 + 8b8: 00442683 lw a3,4(s0) + 8bc: 00c12583 lw a1,12(sp) + 8c0: 00269503 lh a0,2(a3) + 8c4: 00b50a63 beq a0,a1,8d8 + 8c8: 00042403 lw s0,0(s0) + 8cc: fe0416e3 bnez s0,8b8 + 8d0: 000c2403 lw s0,0(s8) + 8d4: 02040463 beqz s0,8fc + 8d8: 004c2783 lw a5,4(s8) + 8dc: 01c12583 lw a1,28(sp) + 8e0: 00079503 lh a0,0(a5) + 8e4: 115030ef jal ra,41f8 + 8e8: 00042403 lw s0,0(s0) + 8ec: 00a12e23 sw a0,28(sp) + 8f0: fe0414e3 bnez s0,8d8 + 8f4: 000c2403 lw s0,0(s8) + 8f8: 00492083 lw ra,4(s2) + 8fc: 00442703 lw a4,4(s0) + 900: 00042303 lw t1,0(s0) + 904: 00100b93 li s7,1 + 908: 00e92223 sw a4,4(s2) + 90c: 00142223 sw ra,4(s0) + 910: 00692023 sw t1,0(s2) + 914: 01242023 sw s2,0(s0) + 918: 00000e93 li t4,0 + 91c: 00000413 li s0,0 + 920: 00000e13 li t3,0 + 924: 00100f13 li t5,1 + 928: 007bf293 andi t0,s7,7 + 92c: 001e0e13 addi t3,t3,1 + 930: 000c0993 mv s3,s8 + 934: 00000b13 li s6,0 + 938: 08028663 beqz t0,9c4 + 93c: 00100393 li t2,1 + 940: 06728a63 beq t0,t2,9b4 + 944: 00200813 li a6,2 + 948: 07028063 beq t0,a6,9a8 + 94c: 00300a13 li s4,3 + 950: 05428663 beq t0,s4,99c + 954: 00400a93 li s5,4 + 958: 03528c63 beq t0,s5,990 + 95c: 00500d93 li s11,5 + 960: 03b28263 beq t0,s11,984 + 964: 00600c93 li s9,6 + 968: 01928863 beq t0,s9,978 + 96c: 000c2983 lw s3,0(s8) + 970: 00100b13 li s6,1 + 974: 0a098a63 beqz s3,a28 + 978: 0009a983 lw s3,0(s3) + 97c: 001b0b13 addi s6,s6,1 + 980: 0a098463 beqz s3,a28 + 984: 0009a983 lw s3,0(s3) + 988: 001b0b13 addi s6,s6,1 + 98c: 08098e63 beqz s3,a28 + 990: 0009a983 lw s3,0(s3) + 994: 001b0b13 addi s6,s6,1 + 998: 08098863 beqz s3,a28 + 99c: 0009a983 lw s3,0(s3) + 9a0: 001b0b13 addi s6,s6,1 + 9a4: 08098263 beqz s3,a28 + 9a8: 0009a983 lw s3,0(s3) + 9ac: 001b0b13 addi s6,s6,1 + 9b0: 06098c63 beqz s3,a28 + 9b4: 0009a983 lw s3,0(s3) + 9b8: 001b0b13 addi s6,s6,1 + 9bc: 06098663 beqz s3,a28 + 9c0: 176b8663 beq s7,s6,b2c + 9c4: 0009a983 lw s3,0(s3) + 9c8: 001b0b13 addi s6,s6,1 + 9cc: 000b0493 mv s1,s6 + 9d0: 04098c63 beqz s3,a28 + 9d4: 0009a983 lw s3,0(s3) + 9d8: 001b0b13 addi s6,s6,1 + 9dc: 04098663 beqz s3,a28 + 9e0: 0009a983 lw s3,0(s3) + 9e4: 00248b13 addi s6,s1,2 + 9e8: 04098063 beqz s3,a28 + 9ec: 0009a983 lw s3,0(s3) + 9f0: 00348b13 addi s6,s1,3 + 9f4: 02098a63 beqz s3,a28 + 9f8: 0009a983 lw s3,0(s3) + 9fc: 00448b13 addi s6,s1,4 + a00: 02098463 beqz s3,a28 + a04: 0009a983 lw s3,0(s3) + a08: 00548b13 addi s6,s1,5 + a0c: 00098e63 beqz s3,a28 + a10: 0009a983 lw s3,0(s3) + a14: 00648b13 addi s6,s1,6 + a18: 00098863 beqz s3,a28 + a1c: 0009a983 lw s3,0(s3) + a20: 00748b13 addi s6,s1,7 + a24: f8099ee3 bnez s3,9c0 + a28: 000c0d13 mv s10,s8 + a2c: 000b8613 mv a2,s7 + a30: 00098c13 mv s8,s3 + a34: 060b0c63 beqz s6,aac + a38: 0a060e63 beqz a2,af4 + a3c: 0a0c0c63 beqz s8,af4 + a40: 004d2883 lw a7,4(s10) + a44: 004c2f83 lw t6,4(s8) + a48: 00089683 lh a3,0(a7) + a4c: 002f9583 lh a1,2(t6) + a50: 00289503 lh a0,2(a7) + a54: 01069913 slli s2,a3,0x10 + a58: 01095093 srli ra,s2,0x10 + a5c: f006f793 andi a5,a3,-256 + a60: 0080d713 srli a4,ra,0x8 + a64: 00e7e333 or t1,a5,a4 + a68: 00689023 sh t1,0(a7) + a6c: 000f9283 lh t0,0(t6) + a70: 40b503b3 sub t2,a0,a1 + a74: 01029813 slli a6,t0,0x10 + a78: 01085a13 srli s4,a6,0x10 + a7c: f002fa93 andi s5,t0,-256 + a80: 008a5d93 srli s11,s4,0x8 + a84: 01baecb3 or s9,s5,s11 + a88: 019f9023 sh s9,0(t6) + a8c: 06705463 blez t2,af4 + a90: 000c0493 mv s1,s8 + a94: 000c2c03 lw s8,0(s8) + a98: fff60613 addi a2,a2,-1 + a9c: 020e8463 beqz t4,ac4 + aa0: 009ea023 sw s1,0(t4) + aa4: 00048e93 mv t4,s1 + aa8: f80b18e3 bnez s6,a38 + aac: 04060c63 beqz a2,b04 + ab0: 040c0c63 beqz s8,b08 + ab4: 000c0493 mv s1,s8 + ab8: fff60613 addi a2,a2,-1 + abc: 000c2c03 lw s8,0(s8) + ac0: fe0e90e3 bnez t4,aa0 + ac4: 00048413 mv s0,s1 + ac8: 00048e93 mv t4,s1 + acc: fddff06f j aa8 + ad0: 00442e03 lw t3,4(s0) + ad4: 01412f83 lw t6,20(sp) + ad8: 000e4f03 lbu t5,0(t3) + adc: dfff0ee3 beq t5,t6,8d8 + ae0: 00042403 lw s0,0(s0) + ae4: fe0416e3 bnez s0,ad0 + ae8: 000c2403 lw s0,0(s8) + aec: de0416e3 bnez s0,8d8 + af0: e0dff06f j 8fc + af4: 000d0493 mv s1,s10 + af8: fffb0b13 addi s6,s6,-1 + afc: 000d2d03 lw s10,0(s10) + b00: f9dff06f j a9c + b04: e20c12e3 bnez s8,928 + b08: 000ea023 sw zero,0(t4) + b0c: 09ee0863 beq t3,t5,b9c + b10: 001b9b93 slli s7,s7,0x1 + b14: 36040a63 beqz s0,e88 + b18: 00040c13 mv s8,s0 + b1c: 00000e13 li t3,0 + b20: 00000e93 li t4,0 + b24: 00000413 li s0,0 + b28: e01ff06f j 928 + b2c: 000c0d13 mv s10,s8 + b30: 000b8b13 mv s6,s7 + b34: 000b8613 mv a2,s7 + b38: 00098c13 mv s8,s3 + b3c: ef9ff06f j a34 + b40: 420c0c63 beqz s8,f78 + b44: 004c2703 lw a4,4(s8) + b48: 000c0993 mv s3,s8 + b4c: 00074083 lbu ra,0(a4) + b50: 00169c63 bne a3,ra,b68 + b54: c81ff06f j 7d4 + b58: 0049a283 lw t0,4(s3) + b5c: 01412403 lw s0,20(sp) + b60: 0002c383 lbu t2,0(t0) + b64: c68388e3 beq t2,s0,7d4 + b68: 0009a983 lw s3,0(s3) + b6c: fe0996e3 bnez s3,b58 + b70: c65ff06f j 7d4 + b74: 004ba483 lw s1,4(s7) + b78: 001e8e93 addi t4,t4,1 + b7c: 010e9813 slli a6,t4,0x10 + b80: 00148903 lb s2,1(s1) + b84: 01085e93 srli t4,a6,0x10 + b88: 00197993 andi s3,s2,1 + b8c: 01330a33 add s4,t1,s3 + b90: 010a1a93 slli s5,s4,0x10 + b94: 010ad313 srli t1,s5,0x10 + b98: ca9ff06f j 840 + b9c: 00042c03 lw s8,0(s0) + ba0: 020c0063 beqz s8,bc0 + ba4: 00442e83 lw t4,4(s0) + ba8: 01c12583 lw a1,28(sp) + bac: 000e9503 lh a0,0(t4) + bb0: 648030ef jal ra,41f8 + bb4: 000c2c03 lw s8,0(s8) + bb8: 00a12e23 sw a0,28(sp) + bbc: fe0c14e3 bnez s8,ba4 + bc0: 05c12083 lw ra,92(sp) + bc4: 05812403 lw s0,88(sp) + bc8: 01c12503 lw a0,28(sp) + bcc: 05412483 lw s1,84(sp) + bd0: 05012903 lw s2,80(sp) + bd4: 04c12983 lw s3,76(sp) + bd8: 04812a03 lw s4,72(sp) + bdc: 04412a83 lw s5,68(sp) + be0: 04012b03 lw s6,64(sp) + be4: 03c12b83 lw s7,60(sp) + be8: 03812c03 lw s8,56(sp) + bec: 03412c83 lw s9,52(sp) + bf0: 03012d03 lw s10,48(sp) + bf4: 02c12d83 lw s11,44(sp) + bf8: 06010113 addi sp,sp,96 + bfc: 00008067 ret + c00: 00100513 li a0,1 + c04: 028d0593 addi a1,s10,40 + c08: 00a12223 sw a0,4(sp) + c0c: 00b12c23 sw a1,24(sp) + c10: 260c0c63 beqz s8,e88 + c14: 00000493 li s1,0 + c18: 00012423 sw zero,8(sp) + c1c: 00012823 sw zero,16(sp) + c20: 00100993 li s3,1 + c24: 01012703 lw a4,16(sp) + c28: 00412783 lw a5,4(sp) + c2c: 000c0d93 mv s11,s8 + c30: 00170313 addi t1,a4,1 + c34: 0077f093 andi ra,a5,7 + c38: 00612823 sw t1,16(sp) + c3c: 00000c93 li s9,0 + c40: 08008863 beqz ra,cd0 + c44: 00100293 li t0,1 + c48: 06508a63 beq ra,t0,cbc + c4c: 00200393 li t2,2 + c50: 06708063 beq ra,t2,cb0 + c54: 00300413 li s0,3 + c58: 04808663 beq ra,s0,ca4 + c5c: 00400e93 li t4,4 + c60: 03d08c63 beq ra,t4,c98 + c64: 00500813 li a6,5 + c68: 03008263 beq ra,a6,c8c + c6c: 00600913 li s2,6 + c70: 01208863 beq ra,s2,c80 + c74: 000c2d83 lw s11,0(s8) + c78: 00100c93 li s9,1 + c7c: 0a0d8c63 beqz s11,d34 + c80: 000dad83 lw s11,0(s11) + c84: 001c8c93 addi s9,s9,1 + c88: 0a0d8663 beqz s11,d34 + c8c: 000dad83 lw s11,0(s11) + c90: 001c8c93 addi s9,s9,1 + c94: 0a0d8063 beqz s11,d34 + c98: 000dad83 lw s11,0(s11) + c9c: 001c8c93 addi s9,s9,1 + ca0: 080d8a63 beqz s11,d34 + ca4: 000dad83 lw s11,0(s11) + ca8: 001c8c93 addi s9,s9,1 + cac: 080d8463 beqz s11,d34 + cb0: 000dad83 lw s11,0(s11) + cb4: 001c8c93 addi s9,s9,1 + cb8: 060d8e63 beqz s11,d34 + cbc: 000dad83 lw s11,0(s11) + cc0: 001c8c93 addi s9,s9,1 + cc4: 060d8863 beqz s11,d34 + cc8: 00412a03 lw s4,4(sp) + ccc: 074c8463 beq s9,s4,d34 + cd0: 000dad83 lw s11,0(s11) + cd4: 001c8c93 addi s9,s9,1 + cd8: 000c8a93 mv s5,s9 + cdc: 040d8c63 beqz s11,d34 + ce0: 000dad83 lw s11,0(s11) + ce4: 001c8c93 addi s9,s9,1 + ce8: 040d8663 beqz s11,d34 + cec: 000dad83 lw s11,0(s11) + cf0: 002a8c93 addi s9,s5,2 + cf4: 040d8063 beqz s11,d34 + cf8: 000dad83 lw s11,0(s11) + cfc: 003a8c93 addi s9,s5,3 + d00: 020d8a63 beqz s11,d34 + d04: 000dad83 lw s11,0(s11) + d08: 004a8c93 addi s9,s5,4 + d0c: 020d8463 beqz s11,d34 + d10: 000dad83 lw s11,0(s11) + d14: 005a8c93 addi s9,s5,5 + d18: 000d8e63 beqz s11,d34 + d1c: 000dad83 lw s11,0(s11) + d20: 006a8c93 addi s9,s5,6 + d24: 000d8863 beqz s11,d34 + d28: 000dad83 lw s11,0(s11) + d2c: 007a8c93 addi s9,s5,7 + d30: f80d9ce3 bnez s11,cc8 + d34: 00412b83 lw s7,4(sp) + d38: 0e0c8863 beqz s9,e28 + d3c: 100b8863 beqz s7,e4c + d40: 100d8663 beqz s11,e4c + d44: 004c2b03 lw s6,4(s8) + d48: 004da903 lw s2,4(s11) + d4c: 000b1a03 lh s4,0(s6) + d50: 080a7e13 andi t3,s4,128 + d54: 07fa7a93 andi s5,s4,127 + d58: 040e1863 bnez t3,da8 + d5c: 403a5f13 srai t5,s4,0x3 + d60: 00ff7893 andi a7,t5,15 + d64: 00489f93 slli t6,a7,0x4 + d68: 007a7693 andi a3,s4,7 + d6c: 01f8e5b3 or a1,a7,t6 + d70: 038d5783 lhu a5,56(s10) + d74: 14068263 beqz a3,eb8 + d78: 11368c63 beq a3,s3,e90 + d7c: 010a1293 slli t0,s4,0x10 + d80: 0102d513 srli a0,t0,0x10 + d84: 000a0a93 mv s5,s4 + d88: 00078593 mv a1,a5 + d8c: 4dd020ef jal ra,3a68 + d90: 07fafa93 andi s5,s5,127 + d94: f00a7393 andi t2,s4,-256 + d98: 007ae833 or a6,s5,t2 + d9c: 02ad1c23 sh a0,56(s10) + da0: 08086613 ori a2,a6,128 + da4: 00cb1023 sh a2,0(s6) + da8: 00091b03 lh s6,0(s2) + dac: 080b7e93 andi t4,s6,128 + db0: 07fb7313 andi t1,s6,127 + db4: 040e9863 bnez t4,e04 + db8: 403b5413 srai s0,s6,0x3 + dbc: 00f47a13 andi s4,s0,15 + dc0: 004a1e13 slli t3,s4,0x4 + dc4: 007b7f13 andi t5,s6,7 + dc8: 01ca65b3 or a1,s4,t3 + dcc: 038d5783 lhu a5,56(s10) + dd0: 140f0a63 beqz t5,f24 + dd4: 133f0463 beq t5,s3,efc + dd8: 010b1513 slli a0,s6,0x10 + ddc: 01055513 srli a0,a0,0x10 + de0: 000b0413 mv s0,s6 + de4: 00078593 mv a1,a5 + de8: 481020ef jal ra,3a68 + dec: 07f47313 andi t1,s0,127 + df0: f00b7293 andi t0,s6,-256 + df4: 005363b3 or t2,t1,t0 + df8: 02ad1c23 sh a0,56(s10) + dfc: 0803e813 ori a6,t2,128 + e00: 01091023 sh a6,0(s2) + e04: 406a8933 sub s2,s5,t1 + e08: 05205263 blez s2,e4c + e0c: 000d8093 mv ra,s11 + e10: 000dad83 lw s11,0(s11) + e14: fffb8b93 addi s7,s7,-1 + e18: 02048463 beqz s1,e40 + e1c: 0014a023 sw ra,0(s1) + e20: 00008493 mv s1,ra + e24: f00c9ce3 bnez s9,d3c + e28: 020b8a63 beqz s7,e5c + e2c: 020d8c63 beqz s11,e64 + e30: 000d8093 mv ra,s11 + e34: fffb8b93 addi s7,s7,-1 + e38: 000dad83 lw s11,0(s11) + e3c: fe0490e3 bnez s1,e1c + e40: 00112423 sw ra,8(sp) + e44: 00008493 mv s1,ra + e48: fddff06f j e24 + e4c: 000c0093 mv ra,s8 + e50: fffc8c93 addi s9,s9,-1 + e54: 000c2c03 lw s8,0(s8) + e58: fc1ff06f j e18 + e5c: 000d8c13 mv s8,s11 + e60: dc0d92e3 bnez s11,c24 + e64: 0004a023 sw zero,0(s1) + e68: 01012483 lw s1,16(sp) + e6c: 00100c13 li s8,1 + e70: 11848063 beq s1,s8,f70 + e74: 00412983 lw s3,4(sp) + e78: 00812c03 lw s8,8(sp) + e7c: 00199b13 slli s6,s3,0x1 + e80: 01612223 sw s6,4(sp) + e84: d80c18e3 bnez s8,c14 + e88: 00002023 sw zero,0(zero) # 0 <_start> + e8c: 00100073 ebreak + e90: 01812503 lw a0,24(sp) + e94: 00078613 mv a2,a5 + e98: 3dc020ef jal ra,3274 + e9c: 03cd5703 lhu a4,60(s10) + ea0: 01051313 slli t1,a0,0x10 + ea4: 41035a93 srai s5,t1,0x10 + ea8: 04071663 bnez a4,ef4 + eac: 038d5783 lhu a5,56(s10) + eb0: 02ad1e23 sh a0,60(s10) + eb4: ed5ff06f j d88 + eb8: 02200513 li a0,34 + ebc: 00058093 mv ra,a1 + ec0: 00a5d463 bge a1,a0,ec8 + ec4: 02200093 li ra,34 + ec8: 014d2583 lw a1,20(s10) + ecc: 002d1683 lh a3,2(s10) + ed0: 000d1603 lh a2,0(s10) + ed4: 018d2503 lw a0,24(s10) + ed8: 0ff0f713 andi a4,ra,255 + edc: 139020ef jal ra,3814 + ee0: 03ed5583 lhu a1,62(s10) + ee4: 01051793 slli a5,a0,0x10 + ee8: 4107da93 srai s5,a5,0x10 + eec: 00059463 bnez a1,ef4 + ef0: 02ad1f23 sh a0,62(s10) + ef4: 038d5783 lhu a5,56(s10) + ef8: e91ff06f j d88 + efc: 01812503 lw a0,24(sp) + f00: 00078613 mv a2,a5 + f04: 370020ef jal ra,3274 + f08: 03cd5783 lhu a5,60(s10) + f0c: 01051713 slli a4,a0,0x10 + f10: 41075413 srai s0,a4,0x10 + f14: 04079663 bnez a5,f60 + f18: 038d5783 lhu a5,56(s10) + f1c: 02ad1e23 sh a0,60(s10) + f20: ec5ff06f j de4 + f24: 02200893 li a7,34 + f28: 00058f93 mv t6,a1 + f2c: 0115d463 bge a1,a7,f34 + f30: 02200f93 li t6,34 + f34: 002d1683 lh a3,2(s10) + f38: 014d2583 lw a1,20(s10) + f3c: 000d1603 lh a2,0(s10) + f40: 018d2503 lw a0,24(s10) + f44: 0ffff713 andi a4,t6,255 + f48: 0cd020ef jal ra,3814 + f4c: 03ed5683 lhu a3,62(s10) + f50: 01051593 slli a1,a0,0x10 + f54: 4105d413 srai s0,a1,0x10 + f58: 00069463 bnez a3,f60 + f5c: 02ad1f23 sh a0,62(s10) + f60: 038d5783 lhu a5,56(s10) + f64: e81ff06f j de4 + f68: 00012e23 sw zero,28(sp) + f6c: 915ff06f j 880 + f70: 00812c03 lw s8,8(sp) + f74: 915ff06f j 888 + f78: 00002783 lw a5,0(zero) # 0 <_start> + f7c: 00100073 ebreak + +00000f80 : + f80: 01400793 li a5,20 + f84: 02f55533 divu a0,a0,a5 + f88: ffff8837 lui a6,0xffff8 + f8c: 0005a023 sw zero,0(a1) + f90: 08080693 addi a3,a6,128 # ffff8080 <_sp+0xefff5080> + f94: 01058713 addi a4,a1,16 + f98: 00858793 addi a5,a1,8 + f9c: ffe50513 addi a0,a0,-2 + fa0: 00351893 slli a7,a0,0x3 + fa4: 011588b3 add a7,a1,a7 + fa8: 0115a223 sw a7,4(a1) + fac: 00251e13 slli t3,a0,0x2 + fb0: 00089123 sh zero,2(a7) + fb4: 00d89023 sh a3,0(a7) + fb8: 01c88e33 add t3,a7,t3 + fbc: 00488313 addi t1,a7,4 + fc0: 53177263 bgeu a4,a7,14e4 <__stack_size+0x4e4> + fc4: 00888693 addi a3,a7,8 + fc8: 51c6fe63 bgeu a3,t3,14e4 <__stack_size+0x4e4> + fcc: 0005a423 sw zero,8(a1) + fd0: 00f5a023 sw a5,0(a1) + fd4: 0065a623 sw t1,12(a1) + fd8: fff84293 not t0,a6 + fdc: fff00393 li t2,-1 + fe0: 00789223 sh t2,4(a7) + fe4: 00589323 sh t0,6(a7) + fe8: 28050663 beqz a0,1274 <__stack_size+0x274> + fec: 01061f13 slli t5,a2,0x10 + ff0: ffff8eb7 lui t4,0xffff8 + ff4: 00357313 andi t1,a0,3 + ff8: 010f5f13 srli t5,t5,0x10 + ffc: 00000813 li a6,0 + 1000: fffece93 not t4,t4 + 1004: 10030663 beqz t1,1110 <__stack_size+0x110> + 1008: 00100f93 li t6,1 + 100c: 0bf30463 beq t1,t6,10b4 <__stack_size+0xb4> + 1010: 00200293 li t0,2 + 1014: 04530463 beq t1,t0,105c <__stack_size+0x5c> + 1018: 00870393 addi t2,a4,8 + 101c: 0313fe63 bgeu t2,a7,1058 <__stack_size+0x58> + 1020: 00468313 addi t1,a3,4 + 1024: 03c37a63 bgeu t1,t3,1058 <__stack_size+0x58> + 1028: 003f1813 slli a6,t5,0x3 + 102c: 00f72023 sw a5,0(a4) + 1030: 07887793 andi a5,a6,120 + 1034: 00e5a023 sw a4,0(a1) + 1038: 00879f93 slli t6,a5,0x8 + 103c: 00d72223 sw a3,4(a4) + 1040: 00ffe2b3 or t0,t6,a5 + 1044: 00569023 sh t0,0(a3) + 1048: 01d69123 sh t4,2(a3) + 104c: 00070793 mv a5,a4 + 1050: 00030693 mv a3,t1 + 1054: 00038713 mv a4,t2 + 1058: 00100813 li a6,1 + 105c: 00870293 addi t0,a4,8 + 1060: 0512f863 bgeu t0,a7,10b0 <__stack_size+0xb0> + 1064: 00468393 addi t2,a3,4 + 1068: 05c3f463 bgeu t2,t3,10b0 <__stack_size+0xb0> + 106c: 01081313 slli t1,a6,0x10 + 1070: 01035f93 srli t6,t1,0x10 + 1074: 01efc333 xor t1,t6,t5 + 1078: 00331313 slli t1,t1,0x3 + 107c: 07837313 andi t1,t1,120 + 1080: 007fff93 andi t6,t6,7 + 1084: 00f72023 sw a5,0(a4) + 1088: 01f367b3 or a5,t1,t6 + 108c: 00e5a023 sw a4,0(a1) + 1090: 00879313 slli t1,a5,0x8 + 1094: 00d72223 sw a3,4(a4) + 1098: 00f36fb3 or t6,t1,a5 + 109c: 01f69023 sh t6,0(a3) + 10a0: 01d69123 sh t4,2(a3) + 10a4: 00070793 mv a5,a4 + 10a8: 00038693 mv a3,t2 + 10ac: 00028713 mv a4,t0 + 10b0: 00180813 addi a6,a6,1 + 10b4: 00870293 addi t0,a4,8 + 10b8: 0512f863 bgeu t0,a7,1108 <__stack_size+0x108> + 10bc: 00468393 addi t2,a3,4 + 10c0: 05c3f463 bgeu t2,t3,1108 <__stack_size+0x108> + 10c4: 01081313 slli t1,a6,0x10 + 10c8: 01035f93 srli t6,t1,0x10 + 10cc: 01efc333 xor t1,t6,t5 + 10d0: 00331313 slli t1,t1,0x3 + 10d4: 07837313 andi t1,t1,120 + 10d8: 007fff93 andi t6,t6,7 + 10dc: 00f72023 sw a5,0(a4) + 10e0: 01f367b3 or a5,t1,t6 + 10e4: 00e5a023 sw a4,0(a1) + 10e8: 00879313 slli t1,a5,0x8 + 10ec: 00d72223 sw a3,4(a4) + 10f0: 00f36fb3 or t6,t1,a5 + 10f4: 01f69023 sh t6,0(a3) + 10f8: 01d69123 sh t4,2(a3) + 10fc: 00070793 mv a5,a4 + 1100: 00038693 mv a3,t2 + 1104: 00028713 mv a4,t0 + 1108: 00180813 addi a6,a6,1 + 110c: 17050463 beq a0,a6,1274 <__stack_size+0x274> + 1110: 00870293 addi t0,a4,8 + 1114: 0512f863 bgeu t0,a7,1164 <__stack_size+0x164> + 1118: 00468393 addi t2,a3,4 + 111c: 05c3f463 bgeu t2,t3,1164 <__stack_size+0x164> + 1120: 01081313 slli t1,a6,0x10 + 1124: 01035f93 srli t6,t1,0x10 + 1128: 01efc333 xor t1,t6,t5 + 112c: 00331313 slli t1,t1,0x3 + 1130: 07837313 andi t1,t1,120 + 1134: 007fff93 andi t6,t6,7 + 1138: 00f72023 sw a5,0(a4) + 113c: 01f367b3 or a5,t1,t6 + 1140: 00e5a023 sw a4,0(a1) + 1144: 00879313 slli t1,a5,0x8 + 1148: 00d72223 sw a3,4(a4) + 114c: 00f36fb3 or t6,t1,a5 + 1150: 01f69023 sh t6,0(a3) + 1154: 01d69123 sh t4,2(a3) + 1158: 00070793 mv a5,a4 + 115c: 00038693 mv a3,t2 + 1160: 00028713 mv a4,t0 + 1164: 00870293 addi t0,a4,8 + 1168: 00180813 addi a6,a6,1 + 116c: 0512f863 bgeu t0,a7,11bc <__stack_size+0x1bc> + 1170: 00468393 addi t2,a3,4 + 1174: 05c3f463 bgeu t2,t3,11bc <__stack_size+0x1bc> + 1178: 01081313 slli t1,a6,0x10 + 117c: 01035f93 srli t6,t1,0x10 + 1180: 01efc333 xor t1,t6,t5 + 1184: 00331313 slli t1,t1,0x3 + 1188: 07837313 andi t1,t1,120 + 118c: 007fff93 andi t6,t6,7 + 1190: 00f72023 sw a5,0(a4) + 1194: 01f367b3 or a5,t1,t6 + 1198: 00e5a023 sw a4,0(a1) + 119c: 00879313 slli t1,a5,0x8 + 11a0: 00d72223 sw a3,4(a4) + 11a4: 00f36fb3 or t6,t1,a5 + 11a8: 01f69023 sh t6,0(a3) + 11ac: 01d69123 sh t4,2(a3) + 11b0: 00070793 mv a5,a4 + 11b4: 00038693 mv a3,t2 + 11b8: 00028713 mv a4,t0 + 11bc: 00870293 addi t0,a4,8 + 11c0: 00180313 addi t1,a6,1 + 11c4: 0512f863 bgeu t0,a7,1214 <__stack_size+0x214> + 11c8: 00468393 addi t2,a3,4 + 11cc: 05c3f463 bgeu t2,t3,1214 <__stack_size+0x214> + 11d0: 01031f93 slli t6,t1,0x10 + 11d4: 010fdf93 srli t6,t6,0x10 + 11d8: 01efc333 xor t1,t6,t5 + 11dc: 00331313 slli t1,t1,0x3 + 11e0: 07837313 andi t1,t1,120 + 11e4: 007fff93 andi t6,t6,7 + 11e8: 00f72023 sw a5,0(a4) + 11ec: 01f367b3 or a5,t1,t6 + 11f0: 00e5a023 sw a4,0(a1) + 11f4: 00879313 slli t1,a5,0x8 + 11f8: 00d72223 sw a3,4(a4) + 11fc: 00f36fb3 or t6,t1,a5 + 1200: 01f69023 sh t6,0(a3) + 1204: 01d69123 sh t4,2(a3) + 1208: 00070793 mv a5,a4 + 120c: 00038693 mv a3,t2 + 1210: 00028713 mv a4,t0 + 1214: 00870293 addi t0,a4,8 + 1218: 00280313 addi t1,a6,2 + 121c: 0512f863 bgeu t0,a7,126c <__stack_size+0x26c> + 1220: 00468393 addi t2,a3,4 + 1224: 05c3f463 bgeu t2,t3,126c <__stack_size+0x26c> + 1228: 01031f93 slli t6,t1,0x10 + 122c: 010fdf93 srli t6,t6,0x10 + 1230: 01efc333 xor t1,t6,t5 + 1234: 00331313 slli t1,t1,0x3 + 1238: 07837313 andi t1,t1,120 + 123c: 007fff93 andi t6,t6,7 + 1240: 00f72023 sw a5,0(a4) + 1244: 01f367b3 or a5,t1,t6 + 1248: 00e5a023 sw a4,0(a1) + 124c: 00879313 slli t1,a5,0x8 + 1250: 00d72223 sw a3,4(a4) + 1254: 00f36fb3 or t6,t1,a5 + 1258: 01f69023 sh t6,0(a3) + 125c: 01d69123 sh t4,2(a3) + 1260: 00070793 mv a5,a4 + 1264: 00038693 mv a3,t2 + 1268: 00028713 mv a4,t0 + 126c: 00380813 addi a6,a6,3 + 1270: eb0510e3 bne a0,a6,1110 <__stack_size+0x110> + 1274: 0007a883 lw a7,0(a5) + 1278: 06088663 beqz a7,12e4 <__stack_size+0x2e4> + 127c: 00500e13 li t3,5 + 1280: 03c55f33 divu t5,a0,t3 + 1284: 00004537 lui a0,0x4 + 1288: 00100693 li a3,1 + 128c: fff50e93 addi t4,a0,-1 # 3fff + 1290: 0180006f j 12a8 <__stack_size+0x2a8> + 1294: 0007a783 lw a5,0(a5) + 1298: 00d29123 sh a3,2(t0) + 129c: 00168693 addi a3,a3,1 + 12a0: 0007a283 lw t0,0(a5) + 12a4: 04028063 beqz t0,12e4 <__stack_size+0x2e4> + 12a8: 0047a283 lw t0,4(a5) + 12ac: ffe6e4e3 bltu a3,t5,1294 <__stack_size+0x294> + 12b0: 01069393 slli t2,a3,0x10 + 12b4: 0103d313 srli t1,t2,0x10 + 12b8: 00130f93 addi t6,t1,1 + 12bc: 008f9713 slli a4,t6,0x8 + 12c0: 70077813 andi a6,a4,1792 + 12c4: 00c348b3 xor a7,t1,a2 + 12c8: 0007a783 lw a5,0(a5) + 12cc: 01186e33 or t3,a6,a7 + 12d0: 01de7533 and a0,t3,t4 + 12d4: 00a29123 sh a0,2(t0) + 12d8: 0007a283 lw t0,0(a5) + 12dc: 00168693 addi a3,a3,1 + 12e0: fc0294e3 bnez t0,12a8 <__stack_size+0x2a8> + 12e4: 00100813 li a6,1 + 12e8: 00000893 li a7,0 + 12ec: 00000513 li a0,0 + 12f0: 00000f93 li t6,0 + 12f4: 00100293 li t0,1 + 12f8: 00787f13 andi t5,a6,7 + 12fc: 001f8f93 addi t6,t6,1 + 1300: 00058793 mv a5,a1 + 1304: 00000713 li a4,0 + 1308: 080f0663 beqz t5,1394 <__stack_size+0x394> + 130c: 00100613 li a2,1 + 1310: 06cf0a63 beq t5,a2,1384 <__stack_size+0x384> + 1314: 00200e93 li t4,2 + 1318: 07df0063 beq t5,t4,1378 <__stack_size+0x378> + 131c: 00300393 li t2,3 + 1320: 047f0663 beq t5,t2,136c <__stack_size+0x36c> + 1324: 00400313 li t1,4 + 1328: 026f0c63 beq t5,t1,1360 <__stack_size+0x360> + 132c: 00500e13 li t3,5 + 1330: 03cf0263 beq t5,t3,1354 <__stack_size+0x354> + 1334: 00600693 li a3,6 + 1338: 00df0863 beq t5,a3,1348 <__stack_size+0x348> + 133c: 0005a783 lw a5,0(a1) + 1340: 00100713 li a4,1 + 1344: 0a078a63 beqz a5,13f8 <__stack_size+0x3f8> + 1348: 0007a783 lw a5,0(a5) + 134c: 00170713 addi a4,a4,1 + 1350: 0a078463 beqz a5,13f8 <__stack_size+0x3f8> + 1354: 0007a783 lw a5,0(a5) + 1358: 00170713 addi a4,a4,1 + 135c: 08078e63 beqz a5,13f8 <__stack_size+0x3f8> + 1360: 0007a783 lw a5,0(a5) + 1364: 00170713 addi a4,a4,1 + 1368: 08078863 beqz a5,13f8 <__stack_size+0x3f8> + 136c: 0007a783 lw a5,0(a5) + 1370: 00170713 addi a4,a4,1 + 1374: 08078263 beqz a5,13f8 <__stack_size+0x3f8> + 1378: 0007a783 lw a5,0(a5) + 137c: 00170713 addi a4,a4,1 + 1380: 06078c63 beqz a5,13f8 <__stack_size+0x3f8> + 1384: 0007a783 lw a5,0(a5) + 1388: 00170713 addi a4,a4,1 + 138c: 06078663 beqz a5,13f8 <__stack_size+0x3f8> + 1390: 07070463 beq a4,a6,13f8 <__stack_size+0x3f8> + 1394: 0007a783 lw a5,0(a5) + 1398: 00170713 addi a4,a4,1 + 139c: 00070f13 mv t5,a4 + 13a0: 04078c63 beqz a5,13f8 <__stack_size+0x3f8> + 13a4: 0007a783 lw a5,0(a5) + 13a8: 00170713 addi a4,a4,1 + 13ac: 04078663 beqz a5,13f8 <__stack_size+0x3f8> + 13b0: 0007a783 lw a5,0(a5) + 13b4: 002f0713 addi a4,t5,2 + 13b8: 04078063 beqz a5,13f8 <__stack_size+0x3f8> + 13bc: 0007a783 lw a5,0(a5) + 13c0: 003f0713 addi a4,t5,3 + 13c4: 02078a63 beqz a5,13f8 <__stack_size+0x3f8> + 13c8: 0007a783 lw a5,0(a5) + 13cc: 004f0713 addi a4,t5,4 + 13d0: 02078463 beqz a5,13f8 <__stack_size+0x3f8> + 13d4: 0007a783 lw a5,0(a5) + 13d8: 005f0713 addi a4,t5,5 + 13dc: 00078e63 beqz a5,13f8 <__stack_size+0x3f8> + 13e0: 0007a783 lw a5,0(a5) + 13e4: 006f0713 addi a4,t5,6 + 13e8: 00078863 beqz a5,13f8 <__stack_size+0x3f8> + 13ec: 0007a783 lw a5,0(a5) + 13f0: 007f0713 addi a4,t5,7 + 13f4: f8079ee3 bnez a5,1390 <__stack_size+0x390> + 13f8: 00058693 mv a3,a1 + 13fc: 00080613 mv a2,a6 + 1400: 00078593 mv a1,a5 + 1404: 06070c63 beqz a4,147c <__stack_size+0x47c> + 1408: 08060c63 beqz a2,14a0 <__stack_size+0x4a0> + 140c: 08058a63 beqz a1,14a0 <__stack_size+0x4a0> + 1410: 0046ae83 lw t4,4(a3) + 1414: 0045ae03 lw t3,4(a1) + 1418: 000e9783 lh a5,0(t4) # ffff8000 <_sp+0xefff5000> + 141c: 002e1383 lh t2,2(t3) + 1420: 002e9303 lh t1,2(t4) + 1424: 01079f13 slli t5,a5,0x10 + 1428: 010f5f13 srli t5,t5,0x10 + 142c: 008f5f13 srli t5,t5,0x8 + 1430: f007f793 andi a5,a5,-256 + 1434: 01e7e7b3 or a5,a5,t5 + 1438: 00fe9023 sh a5,0(t4) + 143c: 000e1f03 lh t5,0(t3) + 1440: 40730333 sub t1,t1,t2 + 1444: 010f1e93 slli t4,t5,0x10 + 1448: 010ed393 srli t2,t4,0x10 + 144c: f00f7793 andi a5,t5,-256 + 1450: 0083df13 srli t5,t2,0x8 + 1454: 01e7eeb3 or t4,a5,t5 + 1458: 01de1023 sh t4,0(t3) + 145c: 04605263 blez t1,14a0 <__stack_size+0x4a0> + 1460: 00058e13 mv t3,a1 + 1464: 0005a583 lw a1,0(a1) + 1468: fff60613 addi a2,a2,-1 + 146c: 02088463 beqz a7,1494 <__stack_size+0x494> + 1470: 01c8a023 sw t3,0(a7) + 1474: 000e0893 mv a7,t3 + 1478: f80718e3 bnez a4,1408 <__stack_size+0x408> + 147c: 02060a63 beqz a2,14b0 <__stack_size+0x4b0> + 1480: 02058a63 beqz a1,14b4 <__stack_size+0x4b4> + 1484: 00058e13 mv t3,a1 + 1488: fff60613 addi a2,a2,-1 + 148c: 0005a583 lw a1,0(a1) + 1490: fe0890e3 bnez a7,1470 <__stack_size+0x470> + 1494: 000e0513 mv a0,t3 + 1498: 000e0893 mv a7,t3 + 149c: fddff06f j 1478 <__stack_size+0x478> + 14a0: 00068e13 mv t3,a3 + 14a4: fff70713 addi a4,a4,-1 + 14a8: 0006a683 lw a3,0(a3) + 14ac: fc1ff06f j 146c <__stack_size+0x46c> + 14b0: e40594e3 bnez a1,12f8 <__stack_size+0x2f8> + 14b4: 0008a023 sw zero,0(a7) + 14b8: 025f8063 beq t6,t0,14d8 <__stack_size+0x4d8> + 14bc: 00181813 slli a6,a6,0x1 + 14c0: 00050e63 beqz a0,14dc <__stack_size+0x4dc> + 14c4: 00050593 mv a1,a0 + 14c8: 00000f93 li t6,0 + 14cc: 00000893 li a7,0 + 14d0: 00000513 li a0,0 + 14d4: e25ff06f j 12f8 <__stack_size+0x2f8> + 14d8: 00008067 ret + 14dc: 00002023 sw zero,0(zero) # 0 <_start> + 14e0: 00100073 ebreak + 14e4: 00078713 mv a4,a5 + 14e8: 00030693 mv a3,t1 + 14ec: 00000793 li a5,0 + 14f0: af9ff06f j fe8 + +000014f4 : + 14f4: fe010113 addi sp,sp,-32 + 14f8: 01312623 sw s3,12(sp) + 14fc: 01c52983 lw s3,28(a0) + 1500: 00112e23 sw ra,28(sp) + 1504: 00812c23 sw s0,24(sp) + 1508: 00912a23 sw s1,20(sp) + 150c: 01212823 sw s2,16(sp) + 1510: 01412423 sw s4,8(sp) + 1514: 01512223 sw s5,4(sp) + 1518: 02052c23 sw zero,56(a0) + 151c: 02052e23 sw zero,60(a0) + 1520: 1c098263 beqz s3,16e4 + 1524: 0039f793 andi a5,s3,3 + 1528: 00050413 mv s0,a0 + 152c: 00000493 li s1,0 + 1530: 0a078e63 beqz a5,15ec + 1534: 00100713 li a4,1 + 1538: 06e78c63 beq a5,a4,15b0 + 153c: 00200093 li ra,2 + 1540: 02178c63 beq a5,ra,1578 + 1544: 00100593 li a1,1 + 1548: 9ecff0ef jal ra,734 + 154c: 03845583 lhu a1,56(s0) + 1550: 00100493 li s1,1 + 1554: 514020ef jal ra,3a68 + 1558: 02a41c23 sh a0,56(s0) + 155c: fff00593 li a1,-1 + 1560: 00040513 mv a0,s0 + 1564: 9d0ff0ef jal ra,734 + 1568: 03845583 lhu a1,56(s0) + 156c: 4fc020ef jal ra,3a68 + 1570: 02a41c23 sh a0,56(s0) + 1574: 02a41d23 sh a0,58(s0) + 1578: 00100593 li a1,1 + 157c: 00040513 mv a0,s0 + 1580: 9b4ff0ef jal ra,734 + 1584: 03845583 lhu a1,56(s0) + 1588: 4e0020ef jal ra,3a68 + 158c: 02a41c23 sh a0,56(s0) + 1590: fff00593 li a1,-1 + 1594: 00040513 mv a0,s0 + 1598: 99cff0ef jal ra,734 + 159c: 03845583 lhu a1,56(s0) + 15a0: 4c8020ef jal ra,3a68 + 15a4: 02a41c23 sh a0,56(s0) + 15a8: 18048063 beqz s1,1728 + 15ac: 00148493 addi s1,s1,1 + 15b0: 00100593 li a1,1 + 15b4: 00040513 mv a0,s0 + 15b8: 97cff0ef jal ra,734 + 15bc: 03845583 lhu a1,56(s0) + 15c0: 4a8020ef jal ra,3a68 + 15c4: 02a41c23 sh a0,56(s0) + 15c8: fff00593 li a1,-1 + 15cc: 00040513 mv a0,s0 + 15d0: 964ff0ef jal ra,734 + 15d4: 03845583 lhu a1,56(s0) + 15d8: 490020ef jal ra,3a68 + 15dc: 02a41c23 sh a0,56(s0) + 15e0: 12048c63 beqz s1,1718 + 15e4: 00148493 addi s1,s1,1 + 15e8: 0e998e63 beq s3,s1,16e4 + 15ec: 00100593 li a1,1 + 15f0: 00040513 mv a0,s0 + 15f4: 940ff0ef jal ra,734 + 15f8: 03845583 lhu a1,56(s0) + 15fc: 00148913 addi s2,s1,1 + 1600: 468020ef jal ra,3a68 + 1604: 02a41c23 sh a0,56(s0) + 1608: fff00593 li a1,-1 + 160c: 00040513 mv a0,s0 + 1610: 924ff0ef jal ra,734 + 1614: 03845583 lhu a1,56(s0) + 1618: 450020ef jal ra,3a68 + 161c: 00050293 mv t0,a0 + 1620: 02541c23 sh t0,56(s0) + 1624: 00100593 li a1,1 + 1628: 00040513 mv a0,s0 + 162c: 00049463 bnez s1,1634 + 1630: 02541d23 sh t0,58(s0) + 1634: 900ff0ef jal ra,734 + 1638: 03845583 lhu a1,56(s0) + 163c: 42c020ef jal ra,3a68 + 1640: 02a41c23 sh a0,56(s0) + 1644: fff00593 li a1,-1 + 1648: 00040513 mv a0,s0 + 164c: 8e8ff0ef jal ra,734 + 1650: 03845583 lhu a1,56(s0) + 1654: 414020ef jal ra,3a68 + 1658: 02a41c23 sh a0,56(s0) + 165c: 00091463 bnez s2,1664 + 1660: 02a41d23 sh a0,58(s0) + 1664: 00100593 li a1,1 + 1668: 00040513 mv a0,s0 + 166c: 8c8ff0ef jal ra,734 + 1670: 03845583 lhu a1,56(s0) + 1674: 00190a93 addi s5,s2,1 + 1678: 00290a13 addi s4,s2,2 + 167c: 3ec020ef jal ra,3a68 + 1680: 02a41c23 sh a0,56(s0) + 1684: fff00593 li a1,-1 + 1688: 00040513 mv a0,s0 + 168c: 8a8ff0ef jal ra,734 + 1690: 03845583 lhu a1,56(s0) + 1694: 00390493 addi s1,s2,3 + 1698: 3d0020ef jal ra,3a68 + 169c: 00050313 mv t1,a0 + 16a0: 02641c23 sh t1,56(s0) + 16a4: 00100593 li a1,1 + 16a8: 00040513 mv a0,s0 + 16ac: 000a9463 bnez s5,16b4 + 16b0: 02641d23 sh t1,58(s0) + 16b4: 880ff0ef jal ra,734 + 16b8: 03845583 lhu a1,56(s0) + 16bc: 3ac020ef jal ra,3a68 + 16c0: 02a41c23 sh a0,56(s0) + 16c4: fff00593 li a1,-1 + 16c8: 00040513 mv a0,s0 + 16cc: 868ff0ef jal ra,734 + 16d0: 03845583 lhu a1,56(s0) + 16d4: 394020ef jal ra,3a68 + 16d8: 02a41c23 sh a0,56(s0) + 16dc: 020a0863 beqz s4,170c + 16e0: f09996e3 bne s3,s1,15ec + 16e4: 01c12083 lw ra,28(sp) + 16e8: 01812403 lw s0,24(sp) + 16ec: 01412483 lw s1,20(sp) + 16f0: 01012903 lw s2,16(sp) + 16f4: 00c12983 lw s3,12(sp) + 16f8: 00812a03 lw s4,8(sp) + 16fc: 00412a83 lw s5,4(sp) + 1700: 00000513 li a0,0 + 1704: 02010113 addi sp,sp,32 + 1708: 00008067 ret + 170c: 02a41d23 sh a0,58(s0) + 1710: ec999ee3 bne s3,s1,15ec + 1714: fd1ff06f j 16e4 + 1718: 02a41d23 sh a0,58(s0) + 171c: 00148493 addi s1,s1,1 + 1720: ec9996e3 bne s3,s1,15ec + 1724: fc1ff06f j 16e4 + 1728: 02a41d23 sh a0,58(s0) + 172c: 00148493 addi s1,s1,1 + 1730: e81ff06f j 15b0 + +00001734 : + 1734: fd010113 addi sp,sp,-48 + 1738: 02812623 sw s0,44(sp) + 173c: 02912423 sw s1,40(sp) + 1740: 03212223 sw s2,36(sp) + 1744: 03312023 sw s3,32(sp) + 1748: 01412e23 sw s4,28(sp) + 174c: 01512c23 sw s5,24(sp) + 1750: 01612a23 sw s6,20(sp) + 1754: 01712823 sw s7,16(sp) + 1758: 01812623 sw s8,12(sp) + 175c: 01912423 sw s9,8(sp) + 1760: 00050813 mv a6,a0 + 1764: 00061463 bnez a2,176c + 1768: 00100613 li a2,1 + 176c: 00358593 addi a1,a1,3 + 1770: ffc5f913 andi s2,a1,-4 + 1774: 00000513 li a0,0 + 1778: 00081663 bnez a6,1784 + 177c: 30c0006f j 1a88 + 1780: 00070513 mv a0,a4 + 1784: 00150713 addi a4,a0,1 + 1788: 02e707b3 mul a5,a4,a4 + 178c: 00379293 slli t0,a5,0x3 + 1790: ff02e8e3 bltu t0,a6,1780 + 1794: 02a50333 mul t1,a0,a0 + 1798: 00050a13 mv s4,a0 + 179c: 00131413 slli s0,t1,0x1 + 17a0: 008909b3 add s3,s2,s0 + 17a4: 28050c63 beqz a0,1a3c + 17a8: 00010eb7 lui t4,0x10 + 17ac: 00151493 slli s1,a0,0x1 + 17b0: 00098f93 mv t6,s3 + 17b4: 00000393 li t2,0 + 17b8: 00100813 li a6,1 + 17bc: 41390f33 sub t5,s2,s3 + 17c0: fffe8e93 addi t4,t4,-1 # ffff <_data_lma+0x9957> + 17c4: 03060633 mul a2,a2,a6 + 17c8: 01081893 slli a7,a6,0x10 + 17cc: 0108da93 srli s5,a7,0x10 + 17d0: fff50b93 addi s7,a0,-1 + 17d4: 003bfc13 andi s8,s7,3 + 17d8: 01ff0b33 add s6,t5,t6 + 17dc: 00100e13 li t3,1 + 17e0: 002f8593 addi a1,t6,2 + 17e4: 00180813 addi a6,a6,1 + 17e8: 41f65c93 srai s9,a2,0x1f + 17ec: 010cd713 srli a4,s9,0x10 + 17f0: 00e607b3 add a5,a2,a4 + 17f4: 01d7f2b3 and t0,a5,t4 + 17f8: 40e28633 sub a2,t0,a4 + 17fc: 00ca8333 add t1,s5,a2 + 1800: 01031893 slli a7,t1,0x10 + 1804: 0108db93 srli s7,a7,0x10 + 1808: 015b8ab3 add s5,s7,s5 + 180c: 017f9023 sh s7,0(t6) + 1810: 0ffafc93 andi s9,s5,255 + 1814: 019b1023 sh s9,0(s6) + 1818: 20ae7c63 bgeu t3,a0,1a30 + 181c: 0e0c0c63 beqz s8,1914 + 1820: 0bcc0263 beq s8,t3,18c4 + 1824: 00200b13 li s6,2 + 1828: 056c0863 beq s8,s6,1878 + 182c: 03060633 mul a2,a2,a6 + 1830: 01081e13 slli t3,a6,0x10 + 1834: 010e5c13 srli s8,t3,0x10 + 1838: 00bf02b3 add t0,t5,a1 + 183c: 00200e13 li t3,2 + 1840: 00180813 addi a6,a6,1 + 1844: 41f65713 srai a4,a2,0x1f + 1848: 01075793 srli a5,a4,0x10 + 184c: 00f60333 add t1,a2,a5 + 1850: 01d378b3 and a7,t1,t4 + 1854: 40f88633 sub a2,a7,a5 + 1858: 00cc0bb3 add s7,s8,a2 + 185c: 010b9a93 slli s5,s7,0x10 + 1860: 010adc93 srli s9,s5,0x10 + 1864: 018c8b33 add s6,s9,s8 + 1868: 01959023 sh s9,0(a1) + 186c: 0ffb7593 andi a1,s6,255 + 1870: 00b29023 sh a1,0(t0) + 1874: 004f8593 addi a1,t6,4 + 1878: 03060633 mul a2,a2,a6 + 187c: 01081c13 slli s8,a6,0x10 + 1880: 010c5293 srli t0,s8,0x10 + 1884: 00bf0333 add t1,t5,a1 + 1888: 001e0e13 addi t3,t3,1 + 188c: 00180813 addi a6,a6,1 + 1890: 00258593 addi a1,a1,2 + 1894: 41f65713 srai a4,a2,0x1f + 1898: 01075793 srli a5,a4,0x10 + 189c: 00f608b3 add a7,a2,a5 + 18a0: 01d8fbb3 and s7,a7,t4 + 18a4: 40fb8633 sub a2,s7,a5 + 18a8: 00c28ab3 add s5,t0,a2 + 18ac: 010a9c93 slli s9,s5,0x10 + 18b0: 010cdb13 srli s6,s9,0x10 + 18b4: 005b0c33 add s8,s6,t0 + 18b8: ff659f23 sh s6,-2(a1) + 18bc: 0ffc7293 andi t0,s8,255 + 18c0: 00531023 sh t0,0(t1) + 18c4: 03060633 mul a2,a2,a6 + 18c8: 01081313 slli t1,a6,0x10 + 18cc: 01035793 srli a5,t1,0x10 + 18d0: 00bf08b3 add a7,t5,a1 + 18d4: 00258593 addi a1,a1,2 + 18d8: 001e0e13 addi t3,t3,1 + 18dc: 00180813 addi a6,a6,1 + 18e0: 41f65713 srai a4,a2,0x1f + 18e4: 01075b93 srli s7,a4,0x10 + 18e8: 01760ab3 add s5,a2,s7 + 18ec: 01dafcb3 and s9,s5,t4 + 18f0: 417c8633 sub a2,s9,s7 + 18f4: 00c78b33 add s6,a5,a2 + 18f8: 010b1c13 slli s8,s6,0x10 + 18fc: 010c5293 srli t0,s8,0x10 + 1900: 00f28333 add t1,t0,a5 + 1904: fe559f23 sh t0,-2(a1) + 1908: 0ff37793 andi a5,t1,255 + 190c: 00f89023 sh a5,0(a7) + 1910: 12ae7063 bgeu t3,a0,1a30 + 1914: 03060633 mul a2,a2,a6 + 1918: 00280713 addi a4,a6,2 + 191c: 01071c93 slli s9,a4,0x10 + 1920: 010cd313 srli t1,s9,0x10 + 1924: 00180793 addi a5,a6,1 + 1928: 01079b93 slli s7,a5,0x10 + 192c: 01081893 slli a7,a6,0x10 + 1930: 0108d293 srli t0,a7,0x10 + 1934: 00bf0c33 add s8,t5,a1 + 1938: 010bdb13 srli s6,s7,0x10 + 193c: 41f65c93 srai s9,a2,0x1f + 1940: 010cdc93 srli s9,s9,0x10 + 1944: 01960633 add a2,a2,s9 + 1948: 01d67633 and a2,a2,t4 + 194c: 41960cb3 sub s9,a2,s9 + 1950: 02fc87b3 mul a5,s9,a5 + 1954: 01928633 add a2,t0,s9 + 1958: 01061c93 slli s9,a2,0x10 + 195c: 010cd613 srli a2,s9,0x10 + 1960: 005602b3 add t0,a2,t0 + 1964: 00c59023 sh a2,0(a1) + 1968: 0ff2fc93 andi s9,t0,255 + 196c: 019c1023 sh s9,0(s8) + 1970: 000c0b93 mv s7,s8 + 1974: 000c0613 mv a2,s8 + 1978: 000c0293 mv t0,s8 + 197c: 41f7dc13 srai s8,a5,0x1f + 1980: 010c5c93 srli s9,s8,0x10 + 1984: 019787b3 add a5,a5,s9 + 1988: 01d7fc33 and s8,a5,t4 + 198c: 419c0cb3 sub s9,s8,s9 + 1990: 02ec8733 mul a4,s9,a4 + 1994: 019b07b3 add a5,s6,s9 + 1998: 01079c13 slli s8,a5,0x10 + 199c: 010c5c93 srli s9,s8,0x10 + 19a0: 016c8b33 add s6,s9,s6 + 19a4: 01959123 sh s9,2(a1) + 19a8: 0ffb7793 andi a5,s6,255 + 19ac: 00fb9123 sh a5,2(s7) + 19b0: 00380a93 addi s5,a6,3 + 19b4: 010a9893 slli a7,s5,0x10 + 19b8: 41f75b93 srai s7,a4,0x1f + 19bc: 010bdc13 srli s8,s7,0x10 + 19c0: 01870733 add a4,a4,s8 + 19c4: 01d77cb3 and s9,a4,t4 + 19c8: 418c8b33 sub s6,s9,s8 + 19cc: 035b0ab3 mul s5,s6,s5 + 19d0: 016307b3 add a5,t1,s6 + 19d4: 01079b93 slli s7,a5,0x10 + 19d8: 010bdc13 srli s8,s7,0x10 + 19dc: 006c0333 add t1,s8,t1 + 19e0: 00858593 addi a1,a1,8 + 19e4: ff859e23 sh s8,-4(a1) + 19e8: 0ff37713 andi a4,t1,255 + 19ec: 00e61223 sh a4,4(a2) + 19f0: 0108d893 srli a7,a7,0x10 + 19f4: 41fad613 srai a2,s5,0x1f + 19f8: 01065c93 srli s9,a2,0x10 + 19fc: 019a8b33 add s6,s5,s9 + 1a00: 01db7ab3 and s5,s6,t4 + 1a04: 419a8633 sub a2,s5,s9 + 1a08: 00c887b3 add a5,a7,a2 + 1a0c: 01079b93 slli s7,a5,0x10 + 1a10: 010bdc13 srli s8,s7,0x10 + 1a14: 011c08b3 add a7,s8,a7 + 1a18: ff859f23 sh s8,-2(a1) + 1a1c: 0ff8f313 andi t1,a7,255 + 1a20: 004e0e13 addi t3,t3,4 + 1a24: 00629323 sh t1,6(t0) + 1a28: 00480813 addi a6,a6,4 + 1a2c: eeae64e3 bltu t3,a0,1914 + 1a30: 00138393 addi t2,t2,1 + 1a34: 009f8fb3 add t6,t6,s1 + 1a38: d8a3e6e3 bltu t2,a0,17c4 + 1a3c: 00898433 add s0,s3,s0 + 1a40: 00340493 addi s1,s0,3 + 1a44: 02c12403 lw s0,44(sp) + 1a48: ffc4ff93 andi t6,s1,-4 + 1a4c: 0126a223 sw s2,4(a3) + 1a50: 0136a423 sw s3,8(a3) + 1a54: 0146a023 sw s4,0(a3) + 1a58: 01f6a623 sw t6,12(a3) + 1a5c: 02812483 lw s1,40(sp) + 1a60: 02412903 lw s2,36(sp) + 1a64: 02012983 lw s3,32(sp) + 1a68: 01c12a03 lw s4,28(sp) + 1a6c: 01812a83 lw s5,24(sp) + 1a70: 01412b03 lw s6,20(sp) + 1a74: 01012b83 lw s7,16(sp) + 1a78: 00c12c03 lw s8,12(sp) + 1a7c: 00812c83 lw s9,8(sp) + 1a80: 03010113 addi sp,sp,48 + 1a84: 00008067 ret + 1a88: 00290993 addi s3,s2,2 + 1a8c: fff00a13 li s4,-1 + 1a90: fff00513 li a0,-1 + 1a94: 00200413 li s0,2 + 1a98: d11ff06f j 17a8 + +00001a9c : + 1a9c: 26050663 beqz a0,1d08 + 1aa0: fc010113 addi sp,sp,-64 + 1aa4: 03712023 sw s7,32(sp) + 1aa8: 00050b93 mv s7,a0 + 1aac: 00151813 slli a6,a0,0x1 + 1ab0: 002b9793 slli a5,s7,0x2 + 1ab4: 03612223 sw s6,36(sp) + 1ab8: 01812e23 sw s8,28(sp) + 1abc: 01912c23 sw s9,24(sp) + 1ac0: 01a12a23 sw s10,20(sp) + 1ac4: 02812e23 sw s0,60(sp) + 1ac8: 02912c23 sw s1,56(sp) + 1acc: 03212a23 sw s2,52(sp) + 1ad0: 03312823 sw s3,48(sp) + 1ad4: 03412623 sw s4,44(sp) + 1ad8: 03512423 sw s5,40(sp) + 1adc: 01b12823 sw s11,16(sp) + 1ae0: 00068d13 mv s10,a3 + 1ae4: 00060513 mv a0,a2 + 1ae8: 010603b3 add t2,a2,a6 + 1aec: 00f12623 sw a5,12(sp) + 1af0: 00058c13 mv s8,a1 + 1af4: 01068b33 add s6,a3,a6 + 1af8: 00000c93 li s9,0 + 1afc: 000d0613 mv a2,s10 + 1b00: 000c0293 mv t0,s8 + 1b04: 40a38733 sub a4,t2,a0 + 1b08: ffe70313 addi t1,a4,-2 + 1b0c: 00135413 srli s0,t1,0x1 + 1b10: 00140493 addi s1,s0,1 + 1b14: 0074f913 andi s2,s1,7 + 1b18: 00060593 mv a1,a2 + 1b1c: 00050693 mv a3,a0 + 1b20: 00000793 li a5,0 + 1b24: 0c090e63 beqz s2,1c00 + 1b28: 00100893 li a7,1 + 1b2c: 0b190c63 beq s2,a7,1be4 + 1b30: 00200993 li s3,2 + 1b34: 09390c63 beq s2,s3,1bcc + 1b38: 00300a13 li s4,3 + 1b3c: 07490c63 beq s2,s4,1bb4 + 1b40: 00400a93 li s5,4 + 1b44: 05590c63 beq s2,s5,1b9c + 1b48: 00500d93 li s11,5 + 1b4c: 03b90c63 beq s2,s11,1b84 + 1b50: 00600e13 li t3,6 + 1b54: 01c90c63 beq s2,t3,1b6c + 1b58: 00051e83 lh t4,0(a0) + 1b5c: 00061f03 lh t5,0(a2) + 1b60: 00250693 addi a3,a0,2 + 1b64: 010605b3 add a1,a2,a6 + 1b68: 03ee87b3 mul a5,t4,t5 + 1b6c: 00069f83 lh t6,0(a3) + 1b70: 00059703 lh a4,0(a1) + 1b74: 00268693 addi a3,a3,2 + 1b78: 010585b3 add a1,a1,a6 + 1b7c: 02ef8333 mul t1,t6,a4 + 1b80: 006787b3 add a5,a5,t1 + 1b84: 00069403 lh s0,0(a3) + 1b88: 00059483 lh s1,0(a1) + 1b8c: 00268693 addi a3,a3,2 + 1b90: 010585b3 add a1,a1,a6 + 1b94: 02940933 mul s2,s0,s1 + 1b98: 012787b3 add a5,a5,s2 + 1b9c: 00069983 lh s3,0(a3) + 1ba0: 00059883 lh a7,0(a1) + 1ba4: 00268693 addi a3,a3,2 + 1ba8: 010585b3 add a1,a1,a6 + 1bac: 03198a33 mul s4,s3,a7 + 1bb0: 014787b3 add a5,a5,s4 + 1bb4: 00069a83 lh s5,0(a3) + 1bb8: 00059d83 lh s11,0(a1) + 1bbc: 00268693 addi a3,a3,2 + 1bc0: 010585b3 add a1,a1,a6 + 1bc4: 03ba8e33 mul t3,s5,s11 + 1bc8: 01c787b3 add a5,a5,t3 + 1bcc: 00069e83 lh t4,0(a3) + 1bd0: 00059f03 lh t5,0(a1) + 1bd4: 00268693 addi a3,a3,2 + 1bd8: 010585b3 add a1,a1,a6 + 1bdc: 03ee8fb3 mul t6,t4,t5 + 1be0: 01f787b3 add a5,a5,t6 + 1be4: 00069703 lh a4,0(a3) + 1be8: 00059303 lh t1,0(a1) + 1bec: 00268693 addi a3,a3,2 + 1bf0: 010585b3 add a1,a1,a6 + 1bf4: 02670433 mul s0,a4,t1 + 1bf8: 008787b3 add a5,a5,s0 + 1bfc: 0ad38663 beq t2,a3,1ca8 + 1c00: 010584b3 add s1,a1,a6 + 1c04: 00069983 lh s3,0(a3) + 1c08: 00059a03 lh s4,0(a1) + 1c0c: 00049f03 lh t5,0(s1) + 1c10: 00269a83 lh s5,2(a3) + 1c14: 03498733 mul a4,s3,s4 + 1c18: 010488b3 add a7,s1,a6 + 1c1c: 01088e33 add t3,a7,a6 + 1c20: 00089d83 lh s11,0(a7) + 1c24: 00469903 lh s2,4(a3) + 1c28: 010e0fb3 add t6,t3,a6 + 1c2c: 000e1a03 lh s4,0(t3) + 1c30: 00669403 lh s0,6(a3) + 1c34: 010f8333 add t1,t6,a6 + 1c38: 00869e83 lh t4,8(a3) + 1c3c: 03ea8ab3 mul s5,s5,t5 + 1c40: 000f9983 lh s3,0(t6) + 1c44: 010308b3 add a7,t1,a6 + 1c48: 00a69e03 lh t3,10(a3) + 1c4c: 00031483 lh s1,0(t1) + 1c50: 010885b3 add a1,a7,a6 + 1c54: 00c69303 lh t1,12(a3) + 1c58: 00089f83 lh t6,0(a7) + 1c5c: 00059f03 lh t5,0(a1) + 1c60: 00e69883 lh a7,14(a3) + 1c64: 03b90933 mul s2,s2,s11 + 1c68: 00e787b3 add a5,a5,a4 + 1c6c: 01578db3 add s11,a5,s5 + 1c70: 01068693 addi a3,a3,16 + 1c74: 010585b3 add a1,a1,a6 + 1c78: 03440433 mul s0,s0,s4 + 1c7c: 012d8733 add a4,s11,s2 + 1c80: 033e8a33 mul s4,t4,s3 + 1c84: 00870eb3 add t4,a4,s0 + 1c88: 029e09b3 mul s3,t3,s1 + 1c8c: 014e8e33 add t3,t4,s4 + 1c90: 03f304b3 mul s1,t1,t6 + 1c94: 013e0333 add t1,t3,s3 + 1c98: 03e88ab3 mul s5,a7,t5 + 1c9c: 00930fb3 add t6,t1,s1 + 1ca0: 015f87b3 add a5,t6,s5 + 1ca4: f4d39ee3 bne t2,a3,1c00 + 1ca8: 00f2a023 sw a5,0(t0) + 1cac: 00260613 addi a2,a2,2 + 1cb0: 00428293 addi t0,t0,4 + 1cb4: e4cb18e3 bne s6,a2,1b04 + 1cb8: 00c12603 lw a2,12(sp) + 1cbc: 001c8c93 addi s9,s9,1 + 1cc0: 01050533 add a0,a0,a6 + 1cc4: 010383b3 add t2,t2,a6 + 1cc8: 00cc0c33 add s8,s8,a2 + 1ccc: e39b98e3 bne s7,s9,1afc + 1cd0: 03c12403 lw s0,60(sp) + 1cd4: 03812483 lw s1,56(sp) + 1cd8: 03412903 lw s2,52(sp) + 1cdc: 03012983 lw s3,48(sp) + 1ce0: 02c12a03 lw s4,44(sp) + 1ce4: 02812a83 lw s5,40(sp) + 1ce8: 02412b03 lw s6,36(sp) + 1cec: 02012b83 lw s7,32(sp) + 1cf0: 01c12c03 lw s8,28(sp) + 1cf4: 01812c83 lw s9,24(sp) + 1cf8: 01412d03 lw s10,20(sp) + 1cfc: 01012d83 lw s11,16(sp) + 1d00: 04010113 addi sp,sp,64 + 1d04: 00008067 ret + 1d08: 00008067 ret + +00001d0c : + 1d0c: 1e050a63 beqz a0,1f00 + 1d10: fe010113 addi sp,sp,-32 + 1d14: 00151e13 slli t3,a0,0x1 + 1d18: 00912c23 sw s1,24(sp) + 1d1c: 00068493 mv s1,a3 + 1d20: 00812e23 sw s0,28(sp) + 1d24: 01212a23 sw s2,20(sp) + 1d28: 01312823 sw s3,16(sp) + 1d2c: 01412623 sw s4,12(sp) + 1d30: 01512423 sw s5,8(sp) + 1d34: 01612223 sw s6,4(sp) + 1d38: 00060f93 mv t6,a2 + 1d3c: 01c60f33 add t5,a2,t3 + 1d40: 00251913 slli s2,a0,0x2 + 1d44: 00058693 mv a3,a1 + 1d48: 01c483b3 add t2,s1,t3 + 1d4c: 00000413 li s0,0 + 1d50: 00048e93 mv t4,s1 + 1d54: 00068293 mv t0,a3 + 1d58: 41ff07b3 sub a5,t5,t6 + 1d5c: ffe78313 addi t1,a5,-2 + 1d60: 00135593 srli a1,t1,0x1 + 1d64: 00158613 addi a2,a1,1 + 1d68: 00367813 andi a6,a2,3 + 1d6c: 000e8313 mv t1,t4 + 1d70: 000f8613 mv a2,t6 + 1d74: 00000993 li s3,0 + 1d78: 08080c63 beqz a6,1e10 + 1d7c: 00100713 li a4,1 + 1d80: 06e80063 beq a6,a4,1de0 + 1d84: 00200893 li a7,2 + 1d88: 03180663 beq a6,a7,1db4 + 1d8c: 000f9983 lh s3,0(t6) + 1d90: 000e9a03 lh s4,0(t4) + 1d94: 002f8613 addi a2,t6,2 + 1d98: 01ce8333 add t1,t4,t3 + 1d9c: 03498ab3 mul s5,s3,s4 + 1da0: 402adb13 srai s6,s5,0x2 + 1da4: 405ad793 srai a5,s5,0x5 + 1da8: 00fb7593 andi a1,s6,15 + 1dac: 07f7f813 andi a6,a5,127 + 1db0: 030589b3 mul s3,a1,a6 + 1db4: 00061883 lh a7,0(a2) + 1db8: 00031703 lh a4,0(t1) + 1dbc: 00260613 addi a2,a2,2 + 1dc0: 01c30333 add t1,t1,t3 + 1dc4: 02e88a33 mul s4,a7,a4 + 1dc8: 402a5a93 srai s5,s4,0x2 + 1dcc: 405a5b13 srai s6,s4,0x5 + 1dd0: 00faf593 andi a1,s5,15 + 1dd4: 07fb7793 andi a5,s6,127 + 1dd8: 02f58833 mul a6,a1,a5 + 1ddc: 010989b3 add s3,s3,a6 + 1de0: 00061883 lh a7,0(a2) + 1de4: 00031703 lh a4,0(t1) + 1de8: 00260613 addi a2,a2,2 + 1dec: 01c30333 add t1,t1,t3 + 1df0: 02e88a33 mul s4,a7,a4 + 1df4: 402a5a93 srai s5,s4,0x2 + 1df8: 405a5b13 srai s6,s4,0x5 + 1dfc: 00faf593 andi a1,s5,15 + 1e00: 07fb7793 andi a5,s6,127 + 1e04: 02f58833 mul a6,a1,a5 + 1e08: 010989b3 add s3,s3,a6 + 1e0c: 0acf0663 beq t5,a2,1eb8 + 1e10: 01c30733 add a4,t1,t3 + 1e14: 00061a03 lh s4,0(a2) + 1e18: 00031a83 lh s5,0(t1) + 1e1c: 01c70b33 add s6,a4,t3 + 1e20: 00071783 lh a5,0(a4) + 1e24: 00261883 lh a7,2(a2) + 1e28: 01cb0333 add t1,s6,t3 + 1e2c: 00461803 lh a6,4(a2) + 1e30: 000b1b03 lh s6,0(s6) + 1e34: 035a0733 mul a4,s4,s5 + 1e38: 00661583 lh a1,6(a2) + 1e3c: 00031a83 lh s5,0(t1) + 1e40: 00860613 addi a2,a2,8 + 1e44: 01c30333 add t1,t1,t3 + 1e48: 02f888b3 mul a7,a7,a5 + 1e4c: 40575a13 srai s4,a4,0x5 + 1e50: 40275793 srai a5,a4,0x2 + 1e54: 00f7f713 andi a4,a5,15 + 1e58: 07fa7793 andi a5,s4,127 + 1e5c: 03680833 mul a6,a6,s6 + 1e60: 4028db13 srai s6,a7,0x2 + 1e64: 4058d893 srai a7,a7,0x5 + 1e68: 00fb7a13 andi s4,s6,15 + 1e6c: 07f8fb13 andi s6,a7,127 + 1e70: 035585b3 mul a1,a1,s5 + 1e74: 40285a93 srai s5,a6,0x2 + 1e78: 40585813 srai a6,a6,0x5 + 1e7c: 00fafa93 andi s5,s5,15 + 1e80: 07f87813 andi a6,a6,127 + 1e84: 02f707b3 mul a5,a4,a5 + 1e88: 4055d893 srai a7,a1,0x5 + 1e8c: 4025d713 srai a4,a1,0x2 + 1e90: 00f77713 andi a4,a4,15 + 1e94: 07f8f593 andi a1,a7,127 + 1e98: 036a0a33 mul s4,s4,s6 + 1e9c: 00f989b3 add s3,s3,a5 + 1ea0: 030a8b33 mul s6,s5,a6 + 1ea4: 01498ab3 add s5,s3,s4 + 1ea8: 02b70833 mul a6,a4,a1 + 1eac: 016a87b3 add a5,s5,s6 + 1eb0: 010789b3 add s3,a5,a6 + 1eb4: f4cf1ee3 bne t5,a2,1e10 + 1eb8: 0132a023 sw s3,0(t0) + 1ebc: 002e8e93 addi t4,t4,2 + 1ec0: 00428293 addi t0,t0,4 + 1ec4: e9d39ae3 bne t2,t4,1d58 + 1ec8: 00140413 addi s0,s0,1 + 1ecc: 01cf8fb3 add t6,t6,t3 + 1ed0: 01cf0f33 add t5,t5,t3 + 1ed4: 012686b3 add a3,a3,s2 + 1ed8: e6851ce3 bne a0,s0,1d50 + 1edc: 01c12403 lw s0,28(sp) + 1ee0: 01812483 lw s1,24(sp) + 1ee4: 01412903 lw s2,20(sp) + 1ee8: 01012983 lw s3,16(sp) + 1eec: 00c12a03 lw s4,12(sp) + 1ef0: 00812a83 lw s5,8(sp) + 1ef4: 00412b03 lw s6,4(sp) + 1ef8: 02010113 addi sp,sp,32 + 1efc: 00008067 ret + 1f00: 00008067 ret + +00001f04 : + 1f04: fa010113 addi sp,sp,-96 + 1f08: 04812c23 sw s0,88(sp) + 1f0c: 05612023 sw s6,64(sp) + 1f10: fffff437 lui s0,0xfffff + 1f14: 04112e23 sw ra,92(sp) + 1f18: 04912a23 sw s1,84(sp) + 1f1c: 05212823 sw s2,80(sp) + 1f20: 05312623 sw s3,76(sp) + 1f24: 05412423 sw s4,72(sp) + 1f28: 05512223 sw s5,68(sp) + 1f2c: 03712e23 sw s7,60(sp) + 1f30: 03812c23 sw s8,56(sp) + 1f34: 03912a23 sw s9,52(sp) + 1f38: 03a12823 sw s10,48(sp) + 1f3c: 03b12623 sw s11,44(sp) + 1f40: 00b12623 sw a1,12(sp) + 1f44: 00c12823 sw a2,16(sp) + 1f48: 00068b13 mv s6,a3 + 1f4c: 00876433 or s0,a4,s0 + 1f50: 00051463 bnez a0,1f58 + 1f54: 2b80106f j 320c + 1f58: 00151d13 slli s10,a0,0x1 + 1f5c: 40a00f33 neg t5,a0 + 1f60: 00060993 mv s3,a2 + 1f64: 01071093 slli ra,a4,0x10 + 1f68: 01a60633 add a2,a2,s10 + 1f6c: 001f1c93 slli s9,t5,0x1 + 1f70: 00050e13 mv t3,a0 + 1f74: 0100d913 srli s2,ra,0x10 + 1f78: 00060693 mv a3,a2 + 1f7c: 00000813 li a6,0 + 1f80: 002f1f13 slli t5,t5,0x2 + 1f84: 00dc8533 add a0,s9,a3 + 1f88: 40a685b3 sub a1,a3,a0 + 1f8c: ffe58293 addi t0,a1,-2 + 1f90: 0012d313 srli t1,t0,0x1 + 1f94: 00130393 addi t2,t1,1 + 1f98: 0073fa93 andi s5,t2,7 + 1f9c: 00050793 mv a5,a0 + 1fa0: 0a0a8463 beqz s5,2048 + 1fa4: 00100893 li a7,1 + 1fa8: 091a8663 beq s5,a7,2034 + 1fac: 00200b93 li s7,2 + 1fb0: 077a8a63 beq s5,s7,2024 + 1fb4: 00300c13 li s8,3 + 1fb8: 058a8e63 beq s5,s8,2014 + 1fbc: 00400d93 li s11,4 + 1fc0: 05ba8263 beq s5,s11,2004 + 1fc4: 00500e93 li t4,5 + 1fc8: 03da8663 beq s5,t4,1ff4 + 1fcc: 00600f93 li t6,6 + 1fd0: 01fa8a63 beq s5,t6,1fe4 + 1fd4: 00055483 lhu s1,0(a0) + 1fd8: 00250793 addi a5,a0,2 + 1fdc: 00990a33 add s4,s2,s1 + 1fe0: 01451023 sh s4,0(a0) + 1fe4: 0007d083 lhu ra,0(a5) + 1fe8: 00278793 addi a5,a5,2 + 1fec: 001905b3 add a1,s2,ra + 1ff0: feb79f23 sh a1,-2(a5) + 1ff4: 0007d283 lhu t0,0(a5) + 1ff8: 00278793 addi a5,a5,2 + 1ffc: 00590333 add t1,s2,t0 + 2000: fe679f23 sh t1,-2(a5) + 2004: 0007d383 lhu t2,0(a5) + 2008: 00278793 addi a5,a5,2 + 200c: 00790ab3 add s5,s2,t2 + 2010: ff579f23 sh s5,-2(a5) + 2014: 0007d883 lhu a7,0(a5) + 2018: 00278793 addi a5,a5,2 + 201c: 01190bb3 add s7,s2,a7 + 2020: ff779f23 sh s7,-2(a5) + 2024: 0007dc03 lhu s8,0(a5) + 2028: 00278793 addi a5,a5,2 + 202c: 01890db3 add s11,s2,s8 + 2030: ffb79f23 sh s11,-2(a5) + 2034: 0007de83 lhu t4,0(a5) + 2038: 00278793 addi a5,a5,2 + 203c: 01d90fb3 add t6,s2,t4 + 2040: fff79f23 sh t6,-2(a5) + 2044: 06d78663 beq a5,a3,20b0 + 2048: 0007d483 lhu s1,0(a5) + 204c: 0027da03 lhu s4,2(a5) + 2050: 0047d283 lhu t0,4(a5) + 2054: 0067da83 lhu s5,6(a5) + 2058: 0087db83 lhu s7,8(a5) + 205c: 00a7d303 lhu t1,10(a5) + 2060: 00c7d883 lhu a7,12(a5) + 2064: 00e7d583 lhu a1,14(a5) + 2068: 009900b3 add ra,s2,s1 + 206c: 014903b3 add t2,s2,s4 + 2070: 00590c33 add s8,s2,t0 + 2074: 01590db3 add s11,s2,s5 + 2078: 01790eb3 add t4,s2,s7 + 207c: 00690fb3 add t6,s2,t1 + 2080: 011904b3 add s1,s2,a7 + 2084: 00b90a33 add s4,s2,a1 + 2088: 00179023 sh ra,0(a5) + 208c: 00779123 sh t2,2(a5) + 2090: 01879223 sh s8,4(a5) + 2094: 01b79323 sh s11,6(a5) + 2098: 01d79423 sh t4,8(a5) + 209c: 01f79523 sh t6,10(a5) + 20a0: 00979623 sh s1,12(a5) + 20a4: 01479723 sh s4,14(a5) + 20a8: 01078793 addi a5,a5,16 + 20ac: f8d79ee3 bne a5,a3,2048 + 20b0: 00180493 addi s1,a6,1 + 20b4: 41e506b3 sub a3,a0,t5 + 20b8: 009e0663 beq t3,s1,20c4 + 20bc: 00048813 mv a6,s1 + 20c0: ec5ff06f j 1f84 + 20c4: 00c12383 lw t2,12(sp) + 20c8: 40900c33 neg s8,s1 + 20cc: 00249a93 slli s5,s1,0x2 + 20d0: 00038a13 mv s4,t2 + 20d4: 00000093 li ra,0 + 20d8: 002c1b93 slli s7,s8,0x2 + 20dc: 01960533 add a0,a2,s9 + 20e0: 40a607b3 sub a5,a2,a0 + 20e4: ffe78e13 addi t3,a5,-2 + 20e8: 001e5f13 srli t5,t3,0x1 + 20ec: 001f0293 addi t0,t5,1 + 20f0: 0072f313 andi t1,t0,7 + 20f4: 00038693 mv a3,t2 + 20f8: 00050793 mv a5,a0 + 20fc: 0c030263 beqz t1,21c0 + 2100: 00100893 li a7,1 + 2104: 0b130263 beq t1,a7,21a8 + 2108: 00200593 li a1,2 + 210c: 08b30463 beq t1,a1,2194 + 2110: 00300d93 li s11,3 + 2114: 07b30663 beq t1,s11,2180 + 2118: 00400e93 li t4,4 + 211c: 05d30863 beq t1,t4,216c + 2120: 00500f93 li t6,5 + 2124: 03f30a63 beq t1,t6,2158 + 2128: 00600e13 li t3,6 + 212c: 01c30c63 beq t1,t3,2144 + 2130: 00051f03 lh t5,0(a0) + 2134: 00250793 addi a5,a0,2 + 2138: 00438693 addi a3,t2,4 + 213c: 02ef02b3 mul t0,t5,a4 + 2140: 0053a023 sw t0,0(t2) + 2144: 00079303 lh t1,0(a5) + 2148: 00468693 addi a3,a3,4 + 214c: 00278793 addi a5,a5,2 + 2150: 02e308b3 mul a7,t1,a4 + 2154: ff16ae23 sw a7,-4(a3) + 2158: 00079583 lh a1,0(a5) + 215c: 00468693 addi a3,a3,4 + 2160: 00278793 addi a5,a5,2 + 2164: 02e58db3 mul s11,a1,a4 + 2168: ffb6ae23 sw s11,-4(a3) + 216c: 00079e83 lh t4,0(a5) + 2170: 00468693 addi a3,a3,4 + 2174: 00278793 addi a5,a5,2 + 2178: 02ee8fb3 mul t6,t4,a4 + 217c: fff6ae23 sw t6,-4(a3) + 2180: 00079e03 lh t3,0(a5) + 2184: 00468693 addi a3,a3,4 + 2188: 00278793 addi a5,a5,2 + 218c: 02ee0f33 mul t5,t3,a4 + 2190: ffe6ae23 sw t5,-4(a3) + 2194: 00079283 lh t0,0(a5) + 2198: 00468693 addi a3,a3,4 + 219c: 00278793 addi a5,a5,2 + 21a0: 02e28333 mul t1,t0,a4 + 21a4: fe66ae23 sw t1,-4(a3) + 21a8: 00079883 lh a7,0(a5) + 21ac: 00468693 addi a3,a3,4 + 21b0: 00278793 addi a5,a5,2 + 21b4: 02e885b3 mul a1,a7,a4 + 21b8: feb6ae23 sw a1,-4(a3) + 21bc: 06f60863 beq a2,a5,222c + 21c0: 00079d83 lh s11,0(a5) + 21c4: 00279f83 lh t6,2(a5) + 21c8: 00479f03 lh t5,4(a5) + 21cc: 00679e83 lh t4,6(a5) + 21d0: 00879e03 lh t3,8(a5) + 21d4: 00a79303 lh t1,10(a5) + 21d8: 00c79883 lh a7,12(a5) + 21dc: 00e79583 lh a1,14(a5) + 21e0: 02ed82b3 mul t0,s11,a4 + 21e4: 02068693 addi a3,a3,32 + 21e8: 01078793 addi a5,a5,16 + 21ec: 02ef8db3 mul s11,t6,a4 + 21f0: fe56a023 sw t0,-32(a3) + 21f4: 02ef0fb3 mul t6,t5,a4 + 21f8: ffb6a223 sw s11,-28(a3) + 21fc: 02ee8f33 mul t5,t4,a4 + 2200: fff6a423 sw t6,-24(a3) + 2204: 02ee0eb3 mul t4,t3,a4 + 2208: ffe6a623 sw t5,-20(a3) + 220c: 02e30e33 mul t3,t1,a4 + 2210: ffd6a823 sw t4,-16(a3) + 2214: 02e88333 mul t1,a7,a4 + 2218: ffc6aa23 sw t3,-12(a3) + 221c: 02e588b3 mul a7,a1,a4 + 2220: fe66ac23 sw t1,-8(a3) + 2224: ff16ae23 sw a7,-4(a3) + 2228: f8f61ce3 bne a2,a5,21c0 + 222c: 00108793 addi a5,ra,1 + 2230: 015383b3 add t2,t2,s5 + 2234: 41750633 sub a2,a0,s7 + 2238: 01008663 beq ra,a6,2244 + 223c: 00078093 mv ra,a5 + 2240: e9dff06f j 20dc + 2244: 00c12703 lw a4,12(sp) + 2248: 00000513 li a0,0 + 224c: 00000313 li t1,0 + 2250: 01570733 add a4,a4,s5 + 2254: 00070c93 mv s9,a4 + 2258: 00000593 li a1,0 + 225c: 00000613 li a2,0 + 2260: 003c1c13 slli s8,s8,0x3 + 2264: 017700b3 add ra,a4,s7 + 2268: 401706b3 sub a3,a4,ra + 226c: ffc68293 addi t0,a3,-4 + 2270: 0022dd93 srli s11,t0,0x2 + 2274: 001d8f93 addi t6,s11,1 + 2278: 007fff13 andi t5,t6,7 + 227c: 00008793 mv a5,ra + 2280: 280f0463 beqz t5,2508 + 2284: 00100e93 li t4,1 + 2288: 13df0a63 beq t5,t4,23bc + 228c: 00200e13 li t3,2 + 2290: 11cf0063 beq t5,t3,2390 + 2294: 00300893 li a7,3 + 2298: 0d1f0663 beq t5,a7,2364 + 229c: 00400393 li t2,4 + 22a0: 087f0c63 beq t5,t2,2338 + 22a4: 00500693 li a3,5 + 22a8: 06df0263 beq t5,a3,230c + 22ac: 00600293 li t0,6 + 22b0: 025f0863 beq t5,t0,22e0 + 22b4: 0000ad83 lw s11,0(ra) + 22b8: 01051513 slli a0,a0,0x10 + 22bc: 01055793 srli a5,a0,0x10 + 22c0: 01b585b3 add a1,a1,s11 + 22c4: 72b44ae3 blt s0,a1,31f8 + 22c8: 01b32333 slt t1,t1,s11 + 22cc: 00678fb3 add t6,a5,t1 + 22d0: 010f9f13 slli t5,t6,0x10 + 22d4: 410f5513 srai a0,t5,0x10 + 22d8: 00408793 addi a5,ra,4 + 22dc: 000d8313 mv t1,s11 + 22e0: 0007ae03 lw t3,0(a5) + 22e4: 01051893 slli a7,a0,0x10 + 22e8: 0108d393 srli t2,a7,0x10 + 22ec: 01c585b3 add a1,a1,t3 + 22f0: 3ab44e63 blt s0,a1,26ac + 22f4: 01c326b3 slt a3,t1,t3 + 22f8: 00d382b3 add t0,t2,a3 + 22fc: 01029d93 slli s11,t0,0x10 + 2300: 410dd513 srai a0,s11,0x10 + 2304: 00478793 addi a5,a5,4 + 2308: 000e0313 mv t1,t3 + 230c: 0007af83 lw t6,0(a5) + 2310: 01051f13 slli t5,a0,0x10 + 2314: 010f5e93 srli t4,t5,0x10 + 2318: 01f585b3 add a1,a1,t6 + 231c: 36b44e63 blt s0,a1,2698 + 2320: 01f32e33 slt t3,t1,t6 + 2324: 01ce88b3 add a7,t4,t3 + 2328: 01089393 slli t2,a7,0x10 + 232c: 4103d513 srai a0,t2,0x10 + 2330: 00478793 addi a5,a5,4 + 2334: 000f8313 mv t1,t6 + 2338: 0007a283 lw t0,0(a5) + 233c: 01051d93 slli s11,a0,0x10 + 2340: 010dd513 srli a0,s11,0x10 + 2344: 005585b3 add a1,a1,t0 + 2348: 32b44e63 blt s0,a1,2684 + 234c: 00532333 slt t1,t1,t0 + 2350: 00650fb3 add t6,a0,t1 + 2354: 010f9f13 slli t5,t6,0x10 + 2358: 410f5513 srai a0,t5,0x10 + 235c: 00478793 addi a5,a5,4 + 2360: 00028313 mv t1,t0 + 2364: 0007a883 lw a7,0(a5) + 2368: 01051393 slli t2,a0,0x10 + 236c: 0103d693 srli a3,t2,0x10 + 2370: 011585b3 add a1,a1,a7 + 2374: 2eb44e63 blt s0,a1,2670 + 2378: 011322b3 slt t0,t1,a7 + 237c: 00568db3 add s11,a3,t0 + 2380: 010d9513 slli a0,s11,0x10 + 2384: 41055513 srai a0,a0,0x10 + 2388: 00478793 addi a5,a5,4 + 238c: 00088313 mv t1,a7 + 2390: 0007af83 lw t6,0(a5) + 2394: 01051f13 slli t5,a0,0x10 + 2398: 010f5e93 srli t4,t5,0x10 + 239c: 01f585b3 add a1,a1,t6 + 23a0: 2ab44e63 blt s0,a1,265c + 23a4: 01f32e33 slt t3,t1,t6 + 23a8: 01ce88b3 add a7,t4,t3 + 23ac: 01089393 slli t2,a7,0x10 + 23b0: 4103d513 srai a0,t2,0x10 + 23b4: 00478793 addi a5,a5,4 + 23b8: 000f8313 mv t1,t6 + 23bc: 0007ad83 lw s11,0(a5) + 23c0: 01051513 slli a0,a0,0x10 + 23c4: 01055f93 srli t6,a0,0x10 + 23c8: 01b585b3 add a1,a1,s11 + 23cc: 26b44e63 blt s0,a1,2648 + 23d0: 01b32333 slt t1,t1,s11 + 23d4: 006f8f33 add t5,t6,t1 + 23d8: 010f1e93 slli t4,t5,0x10 + 23dc: 410ed513 srai a0,t4,0x10 + 23e0: 00478793 addi a5,a5,4 + 23e4: 000d8313 mv t1,s11 + 23e8: 12f71063 bne a4,a5,2508 + 23ec: 2480006f j 2634 + 23f0: 0047ae03 lw t3,4(a5) + 23f4: 00a68313 addi t1,a3,10 + 23f8: 01031e93 slli t4,t1,0x10 + 23fc: 410edf13 srai t5,t4,0x10 + 2400: 00000293 li t0,0 + 2404: 010f1593 slli a1,t5,0x10 + 2408: 01c28f33 add t5,t0,t3 + 240c: 00478793 addi a5,a5,4 + 2410: 0105d393 srli t2,a1,0x10 + 2414: 13e45863 bge s0,t5,2544 + 2418: 00a38d93 addi s11,t2,10 + 241c: 0047ae83 lw t4,4(a5) + 2420: 010d9513 slli a0,s11,0x10 + 2424: 41055f93 srai t6,a0,0x10 + 2428: 00000f13 li t5,0 + 242c: 010f9313 slli t1,t6,0x10 + 2430: 01df0fb3 add t6,t5,t4 + 2434: 01035393 srli t2,t1,0x10 + 2438: 13f44863 blt s0,t6,2568 + 243c: 01de2e33 slt t3,t3,t4 + 2440: 01c388b3 add a7,t2,t3 + 2444: 0087af03 lw t5,8(a5) + 2448: 01089693 slli a3,a7,0x10 + 244c: 4106dd93 srai s11,a3,0x10 + 2450: 010d9513 slli a0,s11,0x10 + 2454: 01ef85b3 add a1,t6,t5 + 2458: 01055313 srli t1,a0,0x10 + 245c: 12b44863 blt s0,a1,258c + 2460: 01eeaeb3 slt t4,t4,t5 + 2464: 01d303b3 add t2,t1,t4 + 2468: 00c7ad83 lw s11,12(a5) + 246c: 01039e13 slli t3,t2,0x10 + 2470: 410e5293 srai t0,t3,0x10 + 2474: 01029f93 slli t6,t0,0x10 + 2478: 01b586b3 add a3,a1,s11 + 247c: 010fd513 srli a0,t6,0x10 + 2480: 12d44863 blt s0,a3,25b0 + 2484: 01bf2f33 slt t5,t5,s11 + 2488: 01e50333 add t1,a0,t5 + 248c: 0107a283 lw t0,16(a5) + 2490: 01031e93 slli t4,t1,0x10 + 2494: 410ed893 srai a7,t4,0x10 + 2498: 01089593 slli a1,a7,0x10 + 249c: 00568e33 add t3,a3,t0 + 24a0: 0105df93 srli t6,a1,0x10 + 24a4: 13c44863 blt s0,t3,25d4 + 24a8: 005dadb3 slt s11,s11,t0 + 24ac: 01bf8533 add a0,t6,s11 + 24b0: 0147a883 lw a7,20(a5) + 24b4: 01051f13 slli t5,a0,0x10 + 24b8: 410f5393 srai t2,t5,0x10 + 24bc: 01039693 slli a3,t2,0x10 + 24c0: 011e03b3 add t2,t3,a7 + 24c4: 0106df93 srli t6,a3,0x10 + 24c8: 12744863 blt s0,t2,25f8 + 24cc: 0112a2b3 slt t0,t0,a7 + 24d0: 005f8db3 add s11,t6,t0 + 24d4: 0187a303 lw t1,24(a5) + 24d8: 010d9513 slli a0,s11,0x10 + 24dc: 41055e93 srai t4,a0,0x10 + 24e0: 010e9e13 slli t3,t4,0x10 + 24e4: 006385b3 add a1,t2,t1 + 24e8: 010e5693 srli a3,t3,0x10 + 24ec: 12b44863 blt s0,a1,261c + 24f0: 0068a8b3 slt a7,a7,t1 + 24f4: 01168fb3 add t6,a3,a7 + 24f8: 010f9293 slli t0,t6,0x10 + 24fc: 01c78793 addi a5,a5,28 + 2500: 4102d513 srai a0,t0,0x10 + 2504: 12f70863 beq a4,a5,2634 + 2508: 0007a883 lw a7,0(a5) + 250c: 01051393 slli t2,a0,0x10 + 2510: 0103d693 srli a3,t2,0x10 + 2514: 011582b3 add t0,a1,a7 + 2518: ec544ce3 blt s0,t0,23f0 + 251c: 01132db3 slt s11,t1,a7 + 2520: 0047ae03 lw t3,4(a5) + 2524: 01b68533 add a0,a3,s11 + 2528: 01051f93 slli t6,a0,0x10 + 252c: 410fdf13 srai t5,t6,0x10 + 2530: 010f1593 slli a1,t5,0x10 + 2534: 01c28f33 add t5,t0,t3 + 2538: 00478793 addi a5,a5,4 + 253c: 0105d393 srli t2,a1,0x10 + 2540: ede44ce3 blt s0,t5,2418 + 2544: 01c8a8b3 slt a7,a7,t3 + 2548: 011386b3 add a3,t2,a7 + 254c: 0047ae83 lw t4,4(a5) + 2550: 01069293 slli t0,a3,0x10 + 2554: 4102df93 srai t6,t0,0x10 + 2558: 010f9313 slli t1,t6,0x10 + 255c: 01df0fb3 add t6,t5,t4 + 2560: 01035393 srli t2,t1,0x10 + 2564: edf45ce3 bge s0,t6,243c + 2568: 00a38593 addi a1,t2,10 + 256c: 0087af03 lw t5,8(a5) + 2570: 01059293 slli t0,a1,0x10 + 2574: 4102dd93 srai s11,t0,0x10 + 2578: 00000f93 li t6,0 + 257c: 010d9513 slli a0,s11,0x10 + 2580: 01ef85b3 add a1,t6,t5 + 2584: 01055313 srli t1,a0,0x10 + 2588: ecb45ce3 bge s0,a1,2460 + 258c: 00a30893 addi a7,t1,10 + 2590: 00c7ad83 lw s11,12(a5) + 2594: 01089693 slli a3,a7,0x10 + 2598: 4106d293 srai t0,a3,0x10 + 259c: 00000593 li a1,0 + 25a0: 01029f93 slli t6,t0,0x10 + 25a4: 01b586b3 add a3,a1,s11 + 25a8: 010fd513 srli a0,t6,0x10 + 25ac: ecd45ce3 bge s0,a3,2484 + 25b0: 00a50393 addi t2,a0,10 + 25b4: 0107a283 lw t0,16(a5) + 25b8: 01039e13 slli t3,t2,0x10 + 25bc: 410e5893 srai a7,t3,0x10 + 25c0: 00000693 li a3,0 + 25c4: 01089593 slli a1,a7,0x10 + 25c8: 00568e33 add t3,a3,t0 + 25cc: 0105df93 srli t6,a1,0x10 + 25d0: edc45ce3 bge s0,t3,24a8 + 25d4: 00af8313 addi t1,t6,10 + 25d8: 0147a883 lw a7,20(a5) + 25dc: 01031e93 slli t4,t1,0x10 + 25e0: 410ed393 srai t2,t4,0x10 + 25e4: 00000e13 li t3,0 + 25e8: 01039693 slli a3,t2,0x10 + 25ec: 011e03b3 add t2,t3,a7 + 25f0: 0106df93 srli t6,a3,0x10 + 25f4: ec745ce3 bge s0,t2,24cc + 25f8: 00af8593 addi a1,t6,10 + 25fc: 0187a303 lw t1,24(a5) + 2600: 01059f13 slli t5,a1,0x10 + 2604: 410f5e93 srai t4,t5,0x10 + 2608: 00000393 li t2,0 + 260c: 010e9e13 slli t3,t4,0x10 + 2610: 006385b3 add a1,t2,t1 + 2614: 010e5693 srli a3,t3,0x10 + 2618: ecb45ce3 bge s0,a1,24f0 + 261c: 00a68d93 addi s11,a3,10 + 2620: 010d9513 slli a0,s11,0x10 + 2624: 01c78793 addi a5,a5,28 + 2628: 41055513 srai a0,a0,0x10 + 262c: 00000593 li a1,0 + 2630: ecf71ce3 bne a4,a5,2508 + 2634: 00160f13 addi t5,a2,1 + 2638: 41808733 sub a4,ra,s8 + 263c: 09060263 beq a2,a6,26c0 + 2640: 000f0613 mv a2,t5 + 2644: c21ff06f j 2264 + 2648: 00af8593 addi a1,t6,10 + 264c: 01059e13 slli t3,a1,0x10 + 2650: 410e5513 srai a0,t3,0x10 + 2654: 00000593 li a1,0 + 2658: d89ff06f j 23e0 + 265c: 00ae8693 addi a3,t4,10 + 2660: 01069293 slli t0,a3,0x10 + 2664: 4102d513 srai a0,t0,0x10 + 2668: 00000593 li a1,0 + 266c: d49ff06f j 23b4 + 2670: 00a68593 addi a1,a3,10 + 2674: 01059313 slli t1,a1,0x10 + 2678: 41035513 srai a0,t1,0x10 + 267c: 00000593 li a1,0 + 2680: d09ff06f j 2388 + 2684: 00a50e93 addi t4,a0,10 + 2688: 010e9e13 slli t3,t4,0x10 + 268c: 410e5513 srai a0,t3,0x10 + 2690: 00000593 li a1,0 + 2694: cc9ff06f j 235c + 2698: 00ae8593 addi a1,t4,10 + 269c: 01059693 slli a3,a1,0x10 + 26a0: 4106d513 srai a0,a3,0x10 + 26a4: 00000593 li a1,0 + 26a8: c89ff06f j 2330 + 26ac: 00a38513 addi a0,t2,10 + 26b0: 01051313 slli t1,a0,0x10 + 26b4: 41035513 srai a0,t1,0x10 + 26b8: 00000593 li a1,0 + 26bc: c49ff06f j 2304 + 26c0: 00000593 li a1,0 + 26c4: 335010ef jal ra,41f8 + 26c8: 01012f83 lw t6,16(sp) + 26cc: 00c12583 lw a1,12(sp) + 26d0: 00a12a23 sw a0,20(sp) + 26d4: 01ab02b3 add t0,s6,s10 + 26d8: 00812c23 sw s0,24(sp) + 26dc: 01512e23 sw s5,28(sp) + 26e0: 000c8d93 mv s11,s9 + 26e4: 41628633 sub a2,t0,s6 + 26e8: ffe60093 addi ra,a2,-2 + 26ec: 0010de93 srli t4,ra,0x1 + 26f0: 001e8393 addi t2,t4,1 + 26f4: 0073f313 andi t1,t2,7 + 26f8: 000b0693 mv a3,s6 + 26fc: 000f8613 mv a2,t6 + 2700: 00000793 li a5,0 + 2704: 0c030e63 beqz t1,27e0 + 2708: 00100e13 li t3,1 + 270c: 0bc30c63 beq t1,t3,27c4 + 2710: 00200893 li a7,2 + 2714: 09130c63 beq t1,a7,27ac + 2718: 00300513 li a0,3 + 271c: 06a30c63 beq t1,a0,2794 + 2720: 00400413 li s0,4 + 2724: 04830c63 beq t1,s0,277c + 2728: 00500813 li a6,5 + 272c: 03030c63 beq t1,a6,2764 + 2730: 00600a93 li s5,6 + 2734: 01530c63 beq t1,s5,274c + 2738: 000f9b83 lh s7,0(t6) + 273c: 000b1783 lh a5,0(s6) + 2740: 002f8613 addi a2,t6,2 + 2744: 002b0693 addi a3,s6,2 + 2748: 02fb87b3 mul a5,s7,a5 + 274c: 00061c03 lh s8,0(a2) + 2750: 00069c83 lh s9,0(a3) + 2754: 00260613 addi a2,a2,2 + 2758: 00268693 addi a3,a3,2 + 275c: 039c0f33 mul t5,s8,s9 + 2760: 01e787b3 add a5,a5,t5 + 2764: 00061703 lh a4,0(a2) + 2768: 00069083 lh ra,0(a3) + 276c: 00260613 addi a2,a2,2 + 2770: 00268693 addi a3,a3,2 + 2774: 02170eb3 mul t4,a4,ra + 2778: 01d787b3 add a5,a5,t4 + 277c: 00061383 lh t2,0(a2) + 2780: 00069303 lh t1,0(a3) + 2784: 00260613 addi a2,a2,2 + 2788: 00268693 addi a3,a3,2 + 278c: 02638e33 mul t3,t2,t1 + 2790: 01c787b3 add a5,a5,t3 + 2794: 00061883 lh a7,0(a2) + 2798: 00069503 lh a0,0(a3) + 279c: 00260613 addi a2,a2,2 + 27a0: 00268693 addi a3,a3,2 + 27a4: 02a88433 mul s0,a7,a0 + 27a8: 008787b3 add a5,a5,s0 + 27ac: 00061803 lh a6,0(a2) + 27b0: 00069a83 lh s5,0(a3) + 27b4: 00260613 addi a2,a2,2 + 27b8: 00268693 addi a3,a3,2 + 27bc: 03580bb3 mul s7,a6,s5 + 27c0: 017787b3 add a5,a5,s7 + 27c4: 00061c03 lh s8,0(a2) + 27c8: 00069c83 lh s9,0(a3) + 27cc: 00268693 addi a3,a3,2 + 27d0: 00260613 addi a2,a2,2 + 27d4: 039c0f33 mul t5,s8,s9 + 27d8: 01e787b3 add a5,a5,t5 + 27dc: 08d28863 beq t0,a3,286c + 27e0: 00061e83 lh t4,0(a2) + 27e4: 00069703 lh a4,0(a3) + 27e8: 00269a83 lh s5,2(a3) + 27ec: 00261c83 lh s9,2(a2) + 27f0: 02ee8733 mul a4,t4,a4 + 27f4: 00461083 lh ra,4(a2) + 27f8: 00469c03 lh s8,4(a3) + 27fc: 00661e03 lh t3,6(a2) + 2800: 00669b83 lh s7,6(a3) + 2804: 00861303 lh t1,8(a2) + 2808: 00869403 lh s0,8(a3) + 280c: 00a61883 lh a7,10(a2) + 2810: 00a69383 lh t2,10(a3) + 2814: 00c61803 lh a6,12(a2) + 2818: 035c8cb3 mul s9,s9,s5 + 281c: 00e78ab3 add s5,a5,a4 + 2820: 00c69f03 lh t5,12(a3) + 2824: 00e61503 lh a0,14(a2) + 2828: 00e69e83 lh t4,14(a3) + 282c: 01068693 addi a3,a3,16 + 2830: 01060613 addi a2,a2,16 + 2834: 038087b3 mul a5,ra,s8 + 2838: 019a80b3 add ra,s5,s9 + 283c: 037e0c33 mul s8,t3,s7 + 2840: 00f08e33 add t3,ra,a5 + 2844: 02830bb3 mul s7,t1,s0 + 2848: 018e0733 add a4,t3,s8 + 284c: 02788333 mul t1,a7,t2 + 2850: 01770433 add s0,a4,s7 + 2854: 03e808b3 mul a7,a6,t5 + 2858: 006403b3 add t2,s0,t1 + 285c: 03d50833 mul a6,a0,t4 + 2860: 01138f33 add t5,t2,a7 + 2864: 010f07b3 add a5,t5,a6 + 2868: f6d29ce3 bne t0,a3,27e0 + 286c: 00f5a023 sw a5,0(a1) + 2870: 00458593 addi a1,a1,4 + 2874: 01af8fb3 add t6,t6,s10 + 2878: e6bd96e3 bne s11,a1,26e4 + 287c: 01812403 lw s0,24(sp) + 2880: 01c12a83 lw s5,28(sp) + 2884: 00c12783 lw a5,12(sp) + 2888: 00000513 li a0,0 + 288c: 00000093 li ra,0 + 2890: 00000593 li a1,0 + 2894: 00000713 li a4,0 + 2898: 0007a883 lw a7,0(a5) + 289c: fff48293 addi t0,s1,-1 + 28a0: 01051d93 slli s11,a0,0x10 + 28a4: 011585b3 add a1,a1,a7 + 28a8: 0032ff93 andi t6,t0,3 + 28ac: 010dd613 srli a2,s11,0x10 + 28b0: 08b450e3 bge s0,a1,3130 + 28b4: 00a60593 addi a1,a2,10 + 28b8: 01059c93 slli s9,a1,0x10 + 28bc: 410cd513 srai a0,s9,0x10 + 28c0: 00000593 li a1,0 + 28c4: 00100813 li a6,1 + 28c8: 00478613 addi a2,a5,4 + 28cc: 00088c13 mv s8,a7 + 28d0: 1c987c63 bgeu a6,s1,2aa8 + 28d4: 120f8863 beqz t6,2a04 + 28d8: 070f8463 beq t6,a6,2940 + 28dc: 00200093 li ra,2 + 28e0: 021f8863 beq t6,ra,2910 + 28e4: 00062c03 lw s8,0(a2) + 28e8: 01051e13 slli t3,a0,0x10 + 28ec: 010e5b93 srli s7,t3,0x10 + 28f0: 018585b3 add a1,a1,s8 + 28f4: 0eb448e3 blt s0,a1,31e4 + 28f8: 0188a333 slt t1,a7,s8 + 28fc: 006b88b3 add a7,s7,t1 + 2900: 01089393 slli t2,a7,0x10 + 2904: 4103d513 srai a0,t2,0x10 + 2908: 00180813 addi a6,a6,1 + 290c: 00460613 addi a2,a2,4 + 2910: 00062f83 lw t6,0(a2) + 2914: 01051d93 slli s11,a0,0x10 + 2918: 010dd513 srli a0,s11,0x10 + 291c: 01f585b3 add a1,a1,t6 + 2920: 06b440e3 blt s0,a1,3180 + 2924: 01fc26b3 slt a3,s8,t6 + 2928: 00d50eb3 add t4,a0,a3 + 292c: 010e9c93 slli s9,t4,0x10 + 2930: 410cd513 srai a0,s9,0x10 + 2934: 00180813 addi a6,a6,1 + 2938: 00460613 addi a2,a2,4 + 293c: 000f8c13 mv s8,t6 + 2940: 00062883 lw a7,0(a2) + 2944: 01051e13 slli t3,a0,0x10 + 2948: 010e5b93 srli s7,t3,0x10 + 294c: 011585b3 add a1,a1,a7 + 2950: 00b44ee3 blt s0,a1,316c + 2954: 011c2333 slt t1,s8,a7 + 2958: 006b83b3 add t2,s7,t1 + 295c: 01039f13 slli t5,t2,0x10 + 2960: 410f5513 srai a0,t5,0x10 + 2964: 00180813 addi a6,a6,1 + 2968: 00460613 addi a2,a2,4 + 296c: 08986c63 bltu a6,s1,2a04 + 2970: 1380006f j 2aa8 + 2974: 00462b83 lw s7,4(a2) + 2978: 00a68c13 addi s8,a3,10 + 297c: 010c1e13 slli t3,s8,0x10 + 2980: 410e5093 srai ra,t3,0x10 + 2984: 00000e93 li t4,0 + 2988: 01009313 slli t1,ra,0x10 + 298c: 017e88b3 add a7,t4,s7 + 2990: 00180813 addi a6,a6,1 + 2994: 00460613 addi a2,a2,4 + 2998: 01035393 srli t2,t1,0x10 + 299c: 0b145463 bge s0,a7,2a44 + 29a0: 00a38d93 addi s11,t2,10 + 29a4: 00462683 lw a3,4(a2) + 29a8: 010d9513 slli a0,s11,0x10 + 29ac: 41055e93 srai t4,a0,0x10 + 29b0: 00000893 li a7,0 + 29b4: 010e9c93 slli s9,t4,0x10 + 29b8: 00d88f33 add t5,a7,a3 + 29bc: 010cd093 srli ra,s9,0x10 + 29c0: 0be44463 blt s0,t5,2a68 + 29c4: 00dbac33 slt s8,s7,a3 + 29c8: 01808e33 add t3,ra,s8 + 29cc: 00862883 lw a7,8(a2) + 29d0: 010e1b93 slli s7,t3,0x10 + 29d4: 410bd393 srai t2,s7,0x10 + 29d8: 01039293 slli t0,t2,0x10 + 29dc: 011f05b3 add a1,t5,a7 + 29e0: 0102df93 srli t6,t0,0x10 + 29e4: 0ab44463 blt s0,a1,2a8c + 29e8: 0116adb3 slt s11,a3,a7 + 29ec: 01bf8533 add a0,t6,s11 + 29f0: 01051e93 slli t4,a0,0x10 + 29f4: 00380813 addi a6,a6,3 + 29f8: 410ed513 srai a0,t4,0x10 + 29fc: 00c60613 addi a2,a2,12 + 2a00: 0a987463 bgeu a6,s1,2aa8 + 2a04: 00062d83 lw s11,0(a2) + 2a08: 01051513 slli a0,a0,0x10 + 2a0c: 01055693 srli a3,a0,0x10 + 2a10: 01b58eb3 add t4,a1,s11 + 2a14: f7d440e3 blt s0,t4,2974 + 2a18: 01b8a8b3 slt a7,a7,s11 + 2a1c: 01168cb3 add s9,a3,a7 + 2a20: 00462b83 lw s7,4(a2) + 2a24: 010c9593 slli a1,s9,0x10 + 2a28: 4105d093 srai ra,a1,0x10 + 2a2c: 01009313 slli t1,ra,0x10 + 2a30: 017e88b3 add a7,t4,s7 + 2a34: 00180813 addi a6,a6,1 + 2a38: 00460613 addi a2,a2,4 + 2a3c: 01035393 srli t2,t1,0x10 + 2a40: f71440e3 blt s0,a7,29a0 + 2a44: 017daf33 slt t5,s11,s7 + 2a48: 01e382b3 add t0,t2,t5 + 2a4c: 00462683 lw a3,4(a2) + 2a50: 01029f93 slli t6,t0,0x10 + 2a54: 410fde93 srai t4,t6,0x10 + 2a58: 010e9c93 slli s9,t4,0x10 + 2a5c: 00d88f33 add t5,a7,a3 + 2a60: 010cd093 srli ra,s9,0x10 + 2a64: f7e450e3 bge s0,t5,29c4 + 2a68: 00a08593 addi a1,ra,10 + 2a6c: 00862883 lw a7,8(a2) + 2a70: 01059313 slli t1,a1,0x10 + 2a74: 41035393 srai t2,t1,0x10 + 2a78: 00000f13 li t5,0 + 2a7c: 01039293 slli t0,t2,0x10 + 2a80: 011f05b3 add a1,t5,a7 + 2a84: 0102df93 srli t6,t0,0x10 + 2a88: f6b450e3 bge s0,a1,29e8 + 2a8c: 00af8693 addi a3,t6,10 + 2a90: 01069c93 slli s9,a3,0x10 + 2a94: 00380813 addi a6,a6,3 + 2a98: 410cd513 srai a0,s9,0x10 + 2a9c: 00000593 li a1,0 + 2aa0: 00c60613 addi a2,a2,12 + 2aa4: f69860e3 bltu a6,s1,2a04 + 2aa8: 00170713 addi a4,a4,1 + 2aac: 015787b3 add a5,a5,s5 + 2ab0: 00088093 mv ra,a7 + 2ab4: de9762e3 bltu a4,s1,2898 + 2ab8: 01412583 lw a1,20(sp) + 2abc: 73c010ef jal ra,41f8 + 2ac0: 00c12c03 lw s8,12(sp) + 2ac4: 01012603 lw a2,16(sp) + 2ac8: 00050b93 mv s7,a0 + 2acc: 000c0593 mv a1,s8 + 2ad0: 00048513 mv a0,s1 + 2ad4: 000b0693 mv a3,s6 + 2ad8: fc5fe0ef jal ra,1a9c + 2adc: 00000513 li a0,0 + 2ae0: 00000e13 li t3,0 + 2ae4: 00000593 li a1,0 + 2ae8: 00000393 li t2,0 + 2aec: 000c2883 lw a7,0(s8) + 2af0: fff48313 addi t1,s1,-1 + 2af4: 01051293 slli t0,a0,0x10 + 2af8: 011585b3 add a1,a1,a7 + 2afc: 00337f13 andi t5,t1,3 + 2b00: 0102df93 srli t6,t0,0x10 + 2b04: 60b45263 bge s0,a1,3108 + 2b08: 00af8693 addi a3,t6,10 + 2b0c: 01069c93 slli s9,a3,0x10 + 2b10: 410cd513 srai a0,s9,0x10 + 2b14: 00000593 li a1,0 + 2b18: 00100813 li a6,1 + 2b1c: 004c0613 addi a2,s8,4 + 2b20: 00088093 mv ra,a7 + 2b24: 1c987e63 bgeu a6,s1,2d00 + 2b28: 120f0a63 beqz t5,2c5c + 2b2c: 070f0663 beq t5,a6,2b98 + 2b30: 00200713 li a4,2 + 2b34: 02ef0a63 beq t5,a4,2b68 + 2b38: 00062783 lw a5,0(a2) + 2b3c: 01051093 slli ra,a0,0x10 + 2b40: 0100de13 srli t3,ra,0x10 + 2b44: 00f585b3 add a1,a1,a5 + 2b48: 68b44463 blt s0,a1,31d0 + 2b4c: 00f8a8b3 slt a7,a7,a5 + 2b50: 011e0333 add t1,t3,a7 + 2b54: 01031f13 slli t5,t1,0x10 + 2b58: 410f5513 srai a0,t5,0x10 + 2b5c: 00180813 addi a6,a6,1 + 2b60: 00460613 addi a2,a2,4 + 2b64: 00078093 mv ra,a5 + 2b68: 00062f83 lw t6,0(a2) + 2b6c: 01051d93 slli s11,a0,0x10 + 2b70: 010dd513 srli a0,s11,0x10 + 2b74: 01f585b3 add a1,a1,t6 + 2b78: 62b44863 blt s0,a1,31a8 + 2b7c: 01f0aeb3 slt t4,ra,t6 + 2b80: 01d506b3 add a3,a0,t4 + 2b84: 01069c93 slli s9,a3,0x10 + 2b88: 410cd513 srai a0,s9,0x10 + 2b8c: 00180813 addi a6,a6,1 + 2b90: 00460613 addi a2,a2,4 + 2b94: 000f8093 mv ra,t6 + 2b98: 00062883 lw a7,0(a2) + 2b9c: 01051e13 slli t3,a0,0x10 + 2ba0: 010e5313 srli t1,t3,0x10 + 2ba4: 011585b3 add a1,a1,a7 + 2ba8: 58b44e63 blt s0,a1,3144 + 2bac: 0110af33 slt t5,ra,a7 + 2bb0: 01e302b3 add t0,t1,t5 + 2bb4: 01029f93 slli t6,t0,0x10 + 2bb8: 410fd513 srai a0,t6,0x10 + 2bbc: 00180813 addi a6,a6,1 + 2bc0: 00460613 addi a2,a2,4 + 2bc4: 08986c63 bltu a6,s1,2c5c + 2bc8: 1380006f j 2d00 + 2bcc: 00462f03 lw t5,4(a2) + 2bd0: 00a68e13 addi t3,a3,10 + 2bd4: 010e1313 slli t1,t3,0x10 + 2bd8: 41035093 srai ra,t1,0x10 + 2bdc: 00000c93 li s9,0 + 2be0: 01009293 slli t0,ra,0x10 + 2be4: 01ec88b3 add a7,s9,t5 + 2be8: 00180813 addi a6,a6,1 + 2bec: 00460613 addi a2,a2,4 + 2bf0: 0102df93 srli t6,t0,0x10 + 2bf4: 0b145463 bge s0,a7,2c9c + 2bf8: 00af8593 addi a1,t6,10 + 2bfc: 00462703 lw a4,4(a2) + 2c00: 01059693 slli a3,a1,0x10 + 2c04: 4106dc93 srai s9,a3,0x10 + 2c08: 00000893 li a7,0 + 2c0c: 010c9793 slli a5,s9,0x10 + 2c10: 00e88eb3 add t4,a7,a4 + 2c14: 0107d093 srli ra,a5,0x10 + 2c18: 0bd44463 blt s0,t4,2cc0 + 2c1c: 00ef2e33 slt t3,t5,a4 + 2c20: 01c08333 add t1,ra,t3 + 2c24: 00862883 lw a7,8(a2) + 2c28: 01031f13 slli t5,t1,0x10 + 2c2c: 410f5d93 srai s11,t5,0x10 + 2c30: 010d9513 slli a0,s11,0x10 + 2c34: 011e85b3 add a1,t4,a7 + 2c38: 01055c93 srli s9,a0,0x10 + 2c3c: 0ab44463 blt s0,a1,2ce4 + 2c40: 011726b3 slt a3,a4,a7 + 2c44: 00dc8733 add a4,s9,a3 + 2c48: 01071793 slli a5,a4,0x10 + 2c4c: 00380813 addi a6,a6,3 + 2c50: 4107d513 srai a0,a5,0x10 + 2c54: 00c60613 addi a2,a2,12 + 2c58: 0a987463 bgeu a6,s1,2d00 + 2c5c: 00062e83 lw t4,0(a2) + 2c60: 01051513 slli a0,a0,0x10 + 2c64: 01055693 srli a3,a0,0x10 + 2c68: 01d58cb3 add s9,a1,t4 + 2c6c: f79440e3 blt s0,s9,2bcc + 2c70: 01d8a8b3 slt a7,a7,t4 + 2c74: 01168733 add a4,a3,a7 + 2c78: 00462f03 lw t5,4(a2) + 2c7c: 01071793 slli a5,a4,0x10 + 2c80: 4107d093 srai ra,a5,0x10 + 2c84: 01009293 slli t0,ra,0x10 + 2c88: 01ec88b3 add a7,s9,t5 + 2c8c: 00180813 addi a6,a6,1 + 2c90: 00460613 addi a2,a2,4 + 2c94: 0102df93 srli t6,t0,0x10 + 2c98: f71440e3 blt s0,a7,2bf8 + 2c9c: 01eeadb3 slt s11,t4,t5 + 2ca0: 01bf8eb3 add t4,t6,s11 + 2ca4: 00462703 lw a4,4(a2) + 2ca8: 010e9513 slli a0,t4,0x10 + 2cac: 41055c93 srai s9,a0,0x10 + 2cb0: 010c9793 slli a5,s9,0x10 + 2cb4: 00e88eb3 add t4,a7,a4 + 2cb8: 0107d093 srli ra,a5,0x10 + 2cbc: f7d450e3 bge s0,t4,2c1c + 2cc0: 00a08293 addi t0,ra,10 + 2cc4: 00862883 lw a7,8(a2) + 2cc8: 01029f93 slli t6,t0,0x10 + 2ccc: 410fdd93 srai s11,t6,0x10 + 2cd0: 00000e93 li t4,0 + 2cd4: 010d9513 slli a0,s11,0x10 + 2cd8: 011e85b3 add a1,t4,a7 + 2cdc: 01055c93 srli s9,a0,0x10 + 2ce0: f6b450e3 bge s0,a1,2c40 + 2ce4: 00ac8593 addi a1,s9,10 + 2ce8: 01059093 slli ra,a1,0x10 + 2cec: 00380813 addi a6,a6,3 + 2cf0: 4100d513 srai a0,ra,0x10 + 2cf4: 00000593 li a1,0 + 2cf8: 00c60613 addi a2,a2,12 + 2cfc: f69860e3 bltu a6,s1,2c5c + 2d00: 00138393 addi t2,t2,1 + 2d04: 015c0c33 add s8,s8,s5 + 2d08: 00088e13 mv t3,a7 + 2d0c: de93e0e3 bltu t2,s1,2aec + 2d10: 000b8593 mv a1,s7 + 2d14: 4e4010ef jal ra,41f8 + 2d18: 01012603 lw a2,16(sp) + 2d1c: 00c12583 lw a1,12(sp) + 2d20: 000b0693 mv a3,s6 + 2d24: 00050b93 mv s7,a0 + 2d28: 00048513 mv a0,s1 + 2d2c: fe1fe0ef jal ra,1d0c + 2d30: 00000513 li a0,0 + 2d34: 00000b13 li s6,0 + 2d38: 00000e93 li t4,0 + 2d3c: 00000c13 li s8,0 + 2d40: 000a2683 lw a3,0(s4) + 2d44: fff48393 addi t2,s1,-1 + 2d48: 01051313 slli t1,a0,0x10 + 2d4c: 00de8eb3 add t4,t4,a3 + 2d50: 0033fe13 andi t3,t2,3 + 2d54: 01035f13 srli t5,t1,0x10 + 2d58: 3dd45263 bge s0,t4,311c + 2d5c: 00af0e93 addi t4,t5,10 + 2d60: 010e9893 slli a7,t4,0x10 + 2d64: 4108d513 srai a0,a7,0x10 + 2d68: 00000e93 li t4,0 + 2d6c: 00100593 li a1,1 + 2d70: 004a0613 addi a2,s4,4 + 2d74: 00068893 mv a7,a3 + 2d78: 1c95fc63 bgeu a1,s1,2f50 + 2d7c: 120e0863 beqz t3,2eac + 2d80: 06be0463 beq t3,a1,2de8 + 2d84: 00200c93 li s9,2 + 2d88: 039e0863 beq t3,s9,2db8 + 2d8c: 00062883 lw a7,0(a2) + 2d90: 01051513 slli a0,a0,0x10 + 2d94: 01055713 srli a4,a0,0x10 + 2d98: 011e8eb3 add t4,t4,a7 + 2d9c: 43d44063 blt s0,t4,31bc + 2da0: 0116a6b3 slt a3,a3,a7 + 2da4: 00d707b3 add a5,a4,a3 + 2da8: 01079093 slli ra,a5,0x10 + 2dac: 4100d513 srai a0,ra,0x10 + 2db0: 00158593 addi a1,a1,1 + 2db4: 00460613 addi a2,a2,4 + 2db8: 00062383 lw t2,0(a2) + 2dbc: 01051e13 slli t3,a0,0x10 + 2dc0: 010e5313 srli t1,t3,0x10 + 2dc4: 007e8eb3 add t4,t4,t2 + 2dc8: 3dd44663 blt s0,t4,3194 + 2dcc: 0078af33 slt t5,a7,t2 + 2dd0: 01e302b3 add t0,t1,t5 + 2dd4: 01029f93 slli t6,t0,0x10 + 2dd8: 410fd513 srai a0,t6,0x10 + 2ddc: 00158593 addi a1,a1,1 + 2de0: 00460613 addi a2,a2,4 + 2de4: 00038893 mv a7,t2 + 2de8: 00062683 lw a3,0(a2) + 2dec: 01051c93 slli s9,a0,0x10 + 2df0: 010cd513 srli a0,s9,0x10 + 2df4: 00de8eb3 add t4,t4,a3 + 2df8: 37d44063 blt s0,t4,3158 + 2dfc: 00d8a733 slt a4,a7,a3 + 2e00: 00e507b3 add a5,a0,a4 + 2e04: 01079093 slli ra,a5,0x10 + 2e08: 4100d513 srai a0,ra,0x10 + 2e0c: 00158593 addi a1,a1,1 + 2e10: 00460613 addi a2,a2,4 + 2e14: 0895ec63 bltu a1,s1,2eac + 2e18: 1380006f j 2f50 + 2e1c: 00a30e93 addi t4,t1,10 + 2e20: 00462c83 lw s9,4(a2) + 2e24: 010e9893 slli a7,t4,0x10 + 2e28: 4108dd93 srai s11,a7,0x10 + 2e2c: 00000f13 li t5,0 + 2e30: 00158713 addi a4,a1,1 + 2e34: 019f0333 add t1,t5,s9 + 2e38: 010d9593 slli a1,s11,0x10 + 2e3c: 00460613 addi a2,a2,4 + 2e40: 0105d513 srli a0,a1,0x10 + 2e44: 0a645463 bge s0,t1,2eec + 2e48: 00a50813 addi a6,a0,10 + 2e4c: 00462f03 lw t5,4(a2) + 2e50: 01081393 slli t2,a6,0x10 + 2e54: 4103de13 srai t3,t2,0x10 + 2e58: 00000313 li t1,0 + 2e5c: 010e1693 slli a3,t3,0x10 + 2e60: 01e307b3 add a5,t1,t5 + 2e64: 0106d293 srli t0,a3,0x10 + 2e68: 0af44463 blt s0,a5,2f10 + 2e6c: 01ecafb3 slt t6,s9,t5 + 2e70: 01f28db3 add s11,t0,t6 + 2e74: 00862683 lw a3,8(a2) + 2e78: 010d9e93 slli t4,s11,0x10 + 2e7c: 410ed593 srai a1,t4,0x10 + 2e80: 01059513 slli a0,a1,0x10 + 2e84: 00d78eb3 add t4,a5,a3 + 2e88: 01055093 srli ra,a0,0x10 + 2e8c: 0bd44463 blt s0,t4,2f34 + 2e90: 00df2b33 slt s6,t5,a3 + 2e94: 016083b3 add t2,ra,s6 + 2e98: 01039e13 slli t3,t2,0x10 + 2e9c: 00370593 addi a1,a4,3 + 2ea0: 410e5513 srai a0,t3,0x10 + 2ea4: 00c60613 addi a2,a2,12 + 2ea8: 0a95f463 bgeu a1,s1,2f50 + 2eac: 00062383 lw t2,0(a2) + 2eb0: 01051e13 slli t3,a0,0x10 + 2eb4: 010e5313 srli t1,t3,0x10 + 2eb8: 007e8f33 add t5,t4,t2 + 2ebc: f7e440e3 blt s0,t5,2e1c + 2ec0: 0076a6b3 slt a3,a3,t2 + 2ec4: 00d302b3 add t0,t1,a3 + 2ec8: 00462c83 lw s9,4(a2) + 2ecc: 01029f93 slli t6,t0,0x10 + 2ed0: 410fdd93 srai s11,t6,0x10 + 2ed4: 00158713 addi a4,a1,1 + 2ed8: 019f0333 add t1,t5,s9 + 2edc: 010d9593 slli a1,s11,0x10 + 2ee0: 00460613 addi a2,a2,4 + 2ee4: 0105d513 srli a0,a1,0x10 + 2ee8: f66440e3 blt s0,t1,2e48 + 2eec: 0193a7b3 slt a5,t2,s9 + 2ef0: 00f500b3 add ra,a0,a5 + 2ef4: 00462f03 lw t5,4(a2) + 2ef8: 01009b13 slli s6,ra,0x10 + 2efc: 410b5e13 srai t3,s6,0x10 + 2f00: 010e1693 slli a3,t3,0x10 + 2f04: 01e307b3 add a5,t1,t5 + 2f08: 0106d293 srli t0,a3,0x10 + 2f0c: f6f450e3 bge s0,a5,2e6c + 2f10: 00a28893 addi a7,t0,10 + 2f14: 00862683 lw a3,8(a2) + 2f18: 01089c93 slli s9,a7,0x10 + 2f1c: 410cd593 srai a1,s9,0x10 + 2f20: 00000793 li a5,0 + 2f24: 01059513 slli a0,a1,0x10 + 2f28: 00d78eb3 add t4,a5,a3 + 2f2c: 01055093 srli ra,a0,0x10 + 2f30: f7d450e3 bge s0,t4,2e90 + 2f34: 00a08813 addi a6,ra,10 + 2f38: 01081313 slli t1,a6,0x10 + 2f3c: 00370593 addi a1,a4,3 + 2f40: 41035513 srai a0,t1,0x10 + 2f44: 00000e93 li t4,0 + 2f48: 00c60613 addi a2,a2,12 + 2f4c: f695e0e3 bltu a1,s1,2eac + 2f50: 001c0c13 addi s8,s8,1 + 2f54: 015a0a33 add s4,s4,s5 + 2f58: 00068b13 mv s6,a3 + 2f5c: de9c62e3 bltu s8,s1,2d40 + 2f60: 000b8593 mv a1,s7 + 2f64: 294010ef jal ra,41f8 + 2f68: 00000a13 li s4,0 + 2f6c: 0009d403 lhu s0,0(s3) + 2f70: fff48a93 addi s5,s1,-1 + 2f74: 00100713 li a4,1 + 2f78: 41240bb3 sub s7,s0,s2 + 2f7c: 01799023 sh s7,0(s3) + 2f80: 007afc13 andi s8,s5,7 + 2f84: 00298793 addi a5,s3,2 + 2f88: 12977863 bgeu a4,s1,30b8 + 2f8c: 0c0c0063 beqz s8,304c + 2f90: 0aec0263 beq s8,a4,3034 + 2f94: 00200f13 li t5,2 + 2f98: 09ec0463 beq s8,t5,3020 + 2f9c: 00300293 li t0,3 + 2fa0: 065c0663 beq s8,t0,300c + 2fa4: 00400f93 li t6,4 + 2fa8: 05fc0863 beq s8,t6,2ff8 + 2fac: 00500d93 li s11,5 + 2fb0: 03bc0a63 beq s8,s11,2fe4 + 2fb4: 00600893 li a7,6 + 2fb8: 011c0c63 beq s8,a7,2fd0 + 2fbc: 0007dc83 lhu s9,0(a5) + 2fc0: 00200713 li a4,2 + 2fc4: 412c86b3 sub a3,s9,s2 + 2fc8: 00d79023 sh a3,0(a5) + 2fcc: 00498793 addi a5,s3,4 + 2fd0: 0007d083 lhu ra,0(a5) + 2fd4: 00170713 addi a4,a4,1 + 2fd8: 00278793 addi a5,a5,2 + 2fdc: 41208b33 sub s6,ra,s2 + 2fe0: ff679f23 sh s6,-2(a5) + 2fe4: 0007d383 lhu t2,0(a5) + 2fe8: 00170713 addi a4,a4,1 + 2fec: 00278793 addi a5,a5,2 + 2ff0: 41238e33 sub t3,t2,s2 + 2ff4: ffc79f23 sh t3,-2(a5) + 2ff8: 0007d803 lhu a6,0(a5) + 2ffc: 00170713 addi a4,a4,1 + 3000: 00278793 addi a5,a5,2 + 3004: 41280333 sub t1,a6,s2 + 3008: fe679f23 sh t1,-2(a5) + 300c: 0007de83 lhu t4,0(a5) + 3010: 00170713 addi a4,a4,1 + 3014: 00278793 addi a5,a5,2 + 3018: 412e85b3 sub a1,t4,s2 + 301c: feb79f23 sh a1,-2(a5) + 3020: 0007d603 lhu a2,0(a5) + 3024: 00170713 addi a4,a4,1 + 3028: 00278793 addi a5,a5,2 + 302c: 41260433 sub s0,a2,s2 + 3030: fe879f23 sh s0,-2(a5) + 3034: 0007da83 lhu s5,0(a5) + 3038: 00278793 addi a5,a5,2 + 303c: 00170713 addi a4,a4,1 + 3040: 412a8bb3 sub s7,s5,s2 + 3044: ff779f23 sh s7,-2(a5) + 3048: 06977863 bgeu a4,s1,30b8 + 304c: 0007dc03 lhu s8,0(a5) + 3050: 0027d283 lhu t0,2(a5) + 3054: 0047df83 lhu t6,4(a5) + 3058: 0067dd83 lhu s11,6(a5) + 305c: 0087dc83 lhu s9,8(a5) + 3060: 00a7d083 lhu ra,10(a5) + 3064: 00c7db03 lhu s6,12(a5) + 3068: 00e7d683 lhu a3,14(a5) + 306c: 412c0f33 sub t5,s8,s2 + 3070: 412283b3 sub t2,t0,s2 + 3074: 412f8e33 sub t3,t6,s2 + 3078: 412d88b3 sub a7,s11,s2 + 307c: 412c8833 sub a6,s9,s2 + 3080: 41208333 sub t1,ra,s2 + 3084: 412b0eb3 sub t4,s6,s2 + 3088: 412685b3 sub a1,a3,s2 + 308c: 01e79023 sh t5,0(a5) + 3090: 00779123 sh t2,2(a5) + 3094: 01c79223 sh t3,4(a5) + 3098: 01179323 sh a7,6(a5) + 309c: 01079423 sh a6,8(a5) + 30a0: 00679523 sh t1,10(a5) + 30a4: 01d79623 sh t4,12(a5) + 30a8: 00b79723 sh a1,14(a5) + 30ac: 00870713 addi a4,a4,8 + 30b0: 01078793 addi a5,a5,16 + 30b4: f8976ce3 bltu a4,s1,304c + 30b8: 001a0a13 addi s4,s4,1 + 30bc: 01a989b3 add s3,s3,s10 + 30c0: ea9a66e3 bltu s4,s1,2f6c + 30c4: 05c12083 lw ra,92(sp) + 30c8: 05812403 lw s0,88(sp) + 30cc: 01051493 slli s1,a0,0x10 + 30d0: 4104d513 srai a0,s1,0x10 + 30d4: 05012903 lw s2,80(sp) + 30d8: 05412483 lw s1,84(sp) + 30dc: 04c12983 lw s3,76(sp) + 30e0: 04812a03 lw s4,72(sp) + 30e4: 04412a83 lw s5,68(sp) + 30e8: 04012b03 lw s6,64(sp) + 30ec: 03c12b83 lw s7,60(sp) + 30f0: 03812c03 lw s8,56(sp) + 30f4: 03412c83 lw s9,52(sp) + 30f8: 03012d03 lw s10,48(sp) + 30fc: 02c12d83 lw s11,44(sp) + 3100: 06010113 addi sp,sp,96 + 3104: 00008067 ret + 3108: 011e2db3 slt s11,t3,a7 + 310c: 01bf8533 add a0,t6,s11 + 3110: 01051e93 slli t4,a0,0x10 + 3114: 410ed513 srai a0,t4,0x10 + 3118: a01ff06f j 2b18 + 311c: 00db22b3 slt t0,s6,a3 + 3120: 005f0fb3 add t6,t5,t0 + 3124: 010f9d93 slli s11,t6,0x10 + 3128: 410dd513 srai a0,s11,0x10 + 312c: c41ff06f j 2d6c + 3130: 0110a6b3 slt a3,ra,a7 + 3134: 00d60533 add a0,a2,a3 + 3138: 01051e93 slli t4,a0,0x10 + 313c: 410ed513 srai a0,t4,0x10 + 3140: f84ff06f j 28c4 + 3144: 00a30593 addi a1,t1,10 + 3148: 01059d93 slli s11,a1,0x10 + 314c: 410dd513 srai a0,s11,0x10 + 3150: 00000593 li a1,0 + 3154: a69ff06f j 2bbc + 3158: 00a50813 addi a6,a0,10 + 315c: 01081b13 slli s6,a6,0x10 + 3160: 410b5513 srai a0,s6,0x10 + 3164: 00000e93 li t4,0 + 3168: ca5ff06f j 2e0c + 316c: 00ab8293 addi t0,s7,10 + 3170: 01029f93 slli t6,t0,0x10 + 3174: 410fd513 srai a0,t6,0x10 + 3178: 00000593 li a1,0 + 317c: fe8ff06f j 2964 + 3180: 00a50593 addi a1,a0,10 + 3184: 01059093 slli ra,a1,0x10 + 3188: 4100d513 srai a0,ra,0x10 + 318c: 00000593 li a1,0 + 3190: fa4ff06f j 2934 + 3194: 00a30d93 addi s11,t1,10 + 3198: 010d9e93 slli t4,s11,0x10 + 319c: 410ed513 srai a0,t4,0x10 + 31a0: 00000e93 li t4,0 + 31a4: c39ff06f j 2ddc + 31a8: 00a50713 addi a4,a0,10 + 31ac: 01071793 slli a5,a4,0x10 + 31b0: 4107d513 srai a0,a5,0x10 + 31b4: 00000593 li a1,0 + 31b8: 9d5ff06f j 2b8c + 31bc: 00a70813 addi a6,a4,10 + 31c0: 01081b13 slli s6,a6,0x10 + 31c4: 410b5513 srai a0,s6,0x10 + 31c8: 00000e93 li t4,0 + 31cc: be5ff06f j 2db0 + 31d0: 00ae0593 addi a1,t3,10 + 31d4: 01059293 slli t0,a1,0x10 + 31d8: 4102d513 srai a0,t0,0x10 + 31dc: 00000593 li a1,0 + 31e0: 97dff06f j 2b5c + 31e4: 00ab8f13 addi t5,s7,10 + 31e8: 010f1293 slli t0,t5,0x10 + 31ec: 4102d513 srai a0,t0,0x10 + 31f0: 00000593 li a1,0 + 31f4: f14ff06f j 2908 + 31f8: 00a78593 addi a1,a5,10 + 31fc: 01059e93 slli t4,a1,0x10 + 3200: 410ed513 srai a0,t4,0x10 + 3204: 00000593 li a1,0 + 3208: 8d0ff06f j 22d8 + 320c: 00000593 li a1,0 + 3210: 7e9000ef jal ra,41f8 + 3214: 00050593 mv a1,a0 + 3218: 00000513 li a0,0 + 321c: 7dd000ef jal ra,41f8 + 3220: 01012903 lw s2,16(sp) + 3224: 00c12483 lw s1,12(sp) + 3228: 000b0693 mv a3,s6 + 322c: 00090613 mv a2,s2 + 3230: 00050993 mv s3,a0 + 3234: 00048593 mv a1,s1 + 3238: 00000513 li a0,0 + 323c: 861fe0ef jal ra,1a9c + 3240: 00098593 mv a1,s3 + 3244: 00000513 li a0,0 + 3248: 7b1000ef jal ra,41f8 + 324c: 00050a13 mv s4,a0 + 3250: 00048593 mv a1,s1 + 3254: 000b0693 mv a3,s6 + 3258: 00090613 mv a2,s2 + 325c: 00000513 li a0,0 + 3260: aadfe0ef jal ra,1d0c + 3264: 000a0593 mv a1,s4 + 3268: 00000513 li a0,0 + 326c: 78d000ef jal ra,41f8 + 3270: e55ff06f j 30c4 + +00003274 : + 3274: ff010113 addi sp,sp,-16 + 3278: 00812423 sw s0,8(sp) + 327c: 00058713 mv a4,a1 + 3280: 00060413 mv s0,a2 + 3284: 00c52583 lw a1,12(a0) + 3288: 00852683 lw a3,8(a0) + 328c: 00452603 lw a2,4(a0) + 3290: 00052503 lw a0,0(a0) + 3294: 00112623 sw ra,12(sp) + 3298: c6dfe0ef jal ra,1f04 + 329c: 00040593 mv a1,s0 + 32a0: 00812403 lw s0,8(sp) + 32a4: 00c12083 lw ra,12(sp) + 32a8: 01010113 addi sp,sp,16 + 32ac: 74d0006f j 41f8 + +000032b0 : + 32b0: 00000793 li a5,0 + 32b4: 00000693 li a3,0 + 32b8: ff010113 addi sp,sp,-16 + 32bc: 00158593 addi a1,a1,1 + 32c0: 00f68733 add a4,a3,a5 + 32c4: 01059293 slli t0,a1,0x10 + 32c8: 00812623 sw s0,12(sp) + 32cc: 00912423 sw s1,8(sp) + 32d0: 01212223 sw s2,4(sp) + 32d4: fff50313 addi t1,a0,-1 + 32d8: 00170493 addi s1,a4,1 + 32dc: 0102d593 srli a1,t0,0x10 + 32e0: 00000413 li s0,0 + 32e4: 00400893 li a7,4 + 32e8: 02c00e13 li t3,44 + 32ec: 00800393 li t2,8 + 32f0: 0fffd297 auipc t0,0xfffd + 32f4: 1d428293 addi t0,t0,468 # 100004c4 + 32f8: 0fffd817 auipc a6,0xfffd + 32fc: 19880813 addi a6,a6,408 # 10000490 + 3300: 0fffdf97 auipc t6,0xfffd + 3304: 1a4f8f93 addi t6,t6,420 # 100004a4 + 3308: 0fffdf17 auipc t5,0xfffd + 330c: 1ccf0f13 addi t5,t5,460 # 100004d4 + 3310: 0fffde97 auipc t4,0xfffd + 3314: 1a4e8e93 addi t4,t4,420 # 100004b4 + 3318: 0664f063 bgeu s1,t1,3378 + 331c: 12079a63 bnez a5,3450 + 3320: 0075f493 andi s1,a1,7 + 3324: ffd48793 addi a5,s1,-3 + 3328: 01079413 slli s0,a5,0x10 + 332c: 0035d913 srli s2,a1,0x3 + 3330: 01045493 srli s1,s0,0x10 + 3334: 00397713 andi a4,s2,3 + 3338: 1898e663 bltu a7,s1,34c4 + 333c: 00249793 slli a5,s1,0x2 + 3340: 01078933 add s2,a5,a6 + 3344: 00092403 lw s0,0(s2) + 3348: 00271713 slli a4,a4,0x2 + 334c: 010404b3 add s1,s0,a6 + 3350: 00048067 jr s1 + 3354: 00ee87b3 add a5,t4,a4 + 3358: 0007a403 lw s0,0(a5) + 335c: 00800793 li a5,8 + 3360: 00158593 addi a1,a1,1 + 3364: 00f68733 add a4,a3,a5 + 3368: 01059913 slli s2,a1,0x10 + 336c: 00170493 addi s1,a4,1 + 3370: 01095593 srli a1,s2,0x10 + 3374: fa64e4e3 bltu s1,t1,331c + 3378: 00d607b3 add a5,a2,a3 + 337c: 00a60633 add a2,a2,a0 + 3380: 08a6fe63 bgeu a3,a0,341c + 3384: 40f60333 sub t1,a2,a5 + 3388: 00737393 andi t2,t1,7 + 338c: 06038463 beqz t2,33f4 + 3390: 00100693 li a3,1 + 3394: 04d38a63 beq t2,a3,33e8 + 3398: 00200413 li s0,2 + 339c: 04838263 beq t2,s0,33e0 + 33a0: 00300513 li a0,3 + 33a4: 02a38a63 beq t2,a0,33d8 + 33a8: 00400813 li a6,4 + 33ac: 03038263 beq t2,a6,33d0 + 33b0: 00500893 li a7,5 + 33b4: 01138a63 beq t2,a7,33c8 + 33b8: 00600913 li s2,6 + 33bc: 11239e63 bne t2,s2,34d8 + 33c0: 00078023 sb zero,0(a5) + 33c4: 00178793 addi a5,a5,1 + 33c8: 00078023 sb zero,0(a5) + 33cc: 00178793 addi a5,a5,1 + 33d0: 00078023 sb zero,0(a5) + 33d4: 00178793 addi a5,a5,1 + 33d8: 00078023 sb zero,0(a5) + 33dc: 00178793 addi a5,a5,1 + 33e0: 00078023 sb zero,0(a5) + 33e4: 00178793 addi a5,a5,1 + 33e8: 00078023 sb zero,0(a5) + 33ec: 00178793 addi a5,a5,1 + 33f0: 02c78663 beq a5,a2,341c + 33f4: 00078023 sb zero,0(a5) + 33f8: 000780a3 sb zero,1(a5) + 33fc: 00078123 sb zero,2(a5) + 3400: 000781a3 sb zero,3(a5) + 3404: 00078223 sb zero,4(a5) + 3408: 000782a3 sb zero,5(a5) + 340c: 00078323 sb zero,6(a5) + 3410: 000783a3 sb zero,7(a5) + 3414: 00878793 addi a5,a5,8 + 3418: fcc79ee3 bne a5,a2,33f4 + 341c: 00c12403 lw s0,12(sp) + 3420: 00812483 lw s1,8(sp) + 3424: 00412903 lw s2,4(sp) + 3428: 01010113 addi sp,sp,16 + 342c: 00008067 ret + 3430: 00ef0933 add s2,t5,a4 + 3434: 00092403 lw s0,0(s2) + 3438: 00800793 li a5,8 + 343c: f25ff06f j 3360 + 3440: 00ef8433 add s0,t6,a4 + 3444: 00042403 lw s0,0(s0) # fffff000 <_sp+0xefffc000> + 3448: 00800793 li a5,8 + 344c: f15ff06f j 3360 + 3450: 00044903 lbu s2,0(s0) + 3454: 00d606b3 add a3,a2,a3 + 3458: 01268023 sb s2,0(a3) + 345c: 00144903 lbu s2,1(s0) + 3460: 012680a3 sb s2,1(a3) + 3464: 00244903 lbu s2,2(s0) + 3468: 01268123 sb s2,2(a3) + 346c: 00344903 lbu s2,3(s0) + 3470: 012681a3 sb s2,3(a3) + 3474: 03178463 beq a5,a7,349c + 3478: 00444903 lbu s2,4(s0) + 347c: 01268223 sb s2,4(a3) + 3480: 00544903 lbu s2,5(s0) + 3484: 012682a3 sb s2,5(a3) + 3488: 00644903 lbu s2,6(s0) + 348c: 01268323 sb s2,6(a3) + 3490: 00779663 bne a5,t2,349c + 3494: 00744403 lbu s0,7(s0) + 3498: 008683a3 sb s0,7(a3) + 349c: 00048693 mv a3,s1 + 34a0: 0075f493 andi s1,a1,7 + 34a4: ffd48793 addi a5,s1,-3 + 34a8: 00e60733 add a4,a2,a4 + 34ac: 01079413 slli s0,a5,0x10 + 34b0: 01c70023 sb t3,0(a4) + 34b4: 0035d913 srli s2,a1,0x3 + 34b8: 01045493 srli s1,s0,0x10 + 34bc: 00397713 andi a4,s2,3 + 34c0: e698fee3 bgeu a7,s1,333c + 34c4: 00271493 slli s1,a4,0x2 + 34c8: 00928733 add a4,t0,s1 + 34cc: 00072403 lw s0,0(a4) + 34d0: 00400793 li a5,4 + 34d4: e8dff06f j 3360 + 34d8: 00078023 sb zero,0(a5) + 34dc: 00178793 addi a5,a5,1 + 34e0: ee1ff06f j 33c0 + +000034e4 : + 34e4: 00052783 lw a5,0(a0) + 34e8: 0007c683 lbu a3,0(a5) + 34ec: 2e068863 beqz a3,37dc + 34f0: 02c00813 li a6,44 + 34f4: 00178713 addi a4,a5,1 + 34f8: 2b068e63 beq a3,a6,37b4 + 34fc: 0005a883 lw a7,0(a1) + 3500: fd068613 addi a2,a3,-48 + 3504: 0ff67293 andi t0,a2,255 + 3508: 00900313 li t1,9 + 350c: 00188393 addi t2,a7,1 + 3510: 0a536c63 bltu t1,t0,35c8 + 3514: 0075a023 sw t2,0(a1) + 3518: 0017c303 lbu t1,1(a5) + 351c: 16030463 beqz t1,3684 + 3520: 00278e13 addi t3,a5,2 + 3524: 15030e63 beq t1,a6,3680 + 3528: fd030613 addi a2,t1,-48 + 352c: 02e00f13 li t5,46 + 3530: 00900f93 li t6,9 + 3534: 02c00893 li a7,44 + 3538: 0ff67813 andi a6,a2,255 + 353c: 03e30663 beq t1,t5,3568 + 3540: 0d0fe063 bltu t6,a6,3600 + 3544: 00174303 lbu t1,1(a4) + 3548: 001e0393 addi t2,t3,1 + 354c: 000e0713 mv a4,t3 + 3550: 12030863 beqz t1,3680 + 3554: 2b130a63 beq t1,a7,3808 + 3558: fd030613 addi a2,t1,-48 + 355c: 00038e13 mv t3,t2 + 3560: 0ff67813 andi a6,a2,255 + 3564: fde31ee3 bne t1,t5,3540 + 3568: 0105a783 lw a5,16(a1) + 356c: 00178e93 addi t4,a5,1 + 3570: 01d5a823 sw t4,16(a1) + 3574: 00174383 lbu t2,1(a4) + 3578: 28038263 beqz t2,37fc + 357c: 02c00713 li a4,44 + 3580: 001e0e93 addi t4,t3,1 + 3584: 22e38263 beq t2,a4,37a8 + 3588: 04500f13 li t5,69 + 358c: 00900f93 li t6,9 + 3590: 02c00893 li a7,44 + 3594: fd038813 addi a6,t2,-48 + 3598: 0df3f693 andi a3,t2,223 + 359c: 0ff87293 andi t0,a6,255 + 35a0: 0fe68663 beq a3,t5,368c + 35a4: 1a5ffa63 bgeu t6,t0,3758 + 35a8: 0145a303 lw t1,20(a1) + 35ac: 000e8713 mv a4,t4 + 35b0: 00100393 li t2,1 + 35b4: 00130613 addi a2,t1,1 + 35b8: 00c5aa23 sw a2,20(a1) + 35bc: 00e52023 sw a4,0(a0) + 35c0: 00038513 mv a0,t2 + 35c4: 00008067 ret + 35c8: 02b00e13 li t3,43 + 35cc: 05c68a63 beq a3,t3,3620 + 35d0: 02d00e93 li t4,45 + 35d4: 05d68663 beq a3,t4,3620 + 35d8: 02e00f13 li t5,46 + 35dc: 19e68c63 beq a3,t5,3774 + 35e0: 0045af83 lw t6,4(a1) + 35e4: 0075a023 sw t2,0(a1) + 35e8: 00100393 li t2,1 + 35ec: 001f8693 addi a3,t6,1 + 35f0: 00d5a223 sw a3,4(a1) + 35f4: 00e52023 sw a4,0(a0) + 35f8: 00038513 mv a0,t2 + 35fc: 00008067 ret + 3600: 0105a683 lw a3,16(a1) + 3604: 000e0713 mv a4,t3 + 3608: 00100393 li t2,1 + 360c: 00168293 addi t0,a3,1 + 3610: 0055a823 sw t0,16(a1) + 3614: 00e52023 sw a4,0(a0) + 3618: 00038513 mv a0,t2 + 361c: 00008067 ret + 3620: 0075a023 sw t2,0(a1) + 3624: 0017c883 lbu a7,1(a5) + 3628: 1c088063 beqz a7,37e8 + 362c: 00278713 addi a4,a5,2 + 3630: 1b088c63 beq a7,a6,37e8 + 3634: 0085a603 lw a2,8(a1) + 3638: fd088813 addi a6,a7,-48 + 363c: 0ff87293 andi t0,a6,255 + 3640: 00900313 li t1,9 + 3644: 00160393 addi t2,a2,1 + 3648: 02537063 bgeu t1,t0,3668 + 364c: 02e00e13 li t3,46 + 3650: 15c88063 beq a7,t3,3790 + 3654: 0075a423 sw t2,8(a1) + 3658: 00100393 li t2,1 + 365c: 00e52023 sw a4,0(a0) + 3660: 00038513 mv a0,t2 + 3664: 00008067 ret + 3668: 0075a423 sw t2,8(a1) + 366c: 0027c303 lbu t1,2(a5) + 3670: 00030a63 beqz t1,3684 + 3674: 02c00e93 li t4,44 + 3678: 00170e13 addi t3,a4,1 + 367c: ebd316e3 bne t1,t4,3528 + 3680: 000e0713 mv a4,t3 + 3684: 00400393 li t2,4 + 3688: f8dff06f j 3614 + 368c: 0145a783 lw a5,20(a1) + 3690: 00178713 addi a4,a5,1 + 3694: 00e5aa23 sw a4,20(a1) + 3698: 001e4e03 lbu t3,1(t3) + 369c: 120e0a63 beqz t3,37d0 + 36a0: 02c00f13 li t5,44 + 36a4: 001e8713 addi a4,t4,1 + 36a8: 13ee0663 beq t3,t5,37d4 + 36ac: 00c5af83 lw t6,12(a1) + 36b0: fd5e0893 addi a7,t3,-43 + 36b4: 0fd8f813 andi a6,a7,253 + 36b8: 001f8693 addi a3,t6,1 + 36bc: 00d5a623 sw a3,12(a1) + 36c0: 00080a63 beqz a6,36d4 + 36c4: 00100393 li t2,1 + 36c8: 00e52023 sw a4,0(a0) + 36cc: 00038513 mv a0,t2 + 36d0: 00008067 ret + 36d4: 001ec283 lbu t0,1(t4) + 36d8: 0e028863 beqz t0,37c8 + 36dc: 002e8713 addi a4,t4,2 + 36e0: 0fe28463 beq t0,t5,37c8 + 36e4: 0185a303 lw t1,24(a1) + 36e8: fd028613 addi a2,t0,-48 + 36ec: 0ff67393 andi t2,a2,255 + 36f0: 00130e13 addi t3,t1,1 + 36f4: 00900793 li a5,9 + 36f8: 01c5ac23 sw t3,24(a1) + 36fc: fc77e4e3 bltu a5,t2,36c4 + 3700: 002ec283 lbu t0,2(t4) + 3704: 0a028e63 beqz t0,37c0 + 3708: 003e8613 addi a2,t4,3 + 370c: 0be28863 beq t0,t5,37bc + 3710: 00900e93 li t4,9 + 3714: 02c00f13 li t5,44 + 3718: fd028f93 addi t6,t0,-48 + 371c: 0ffff893 andi a7,t6,255 + 3720: 011efe63 bgeu t4,a7,373c + 3724: 0045a803 lw a6,4(a1) + 3728: 00060713 mv a4,a2 + 372c: 00100393 li t2,1 + 3730: 00180693 addi a3,a6,1 + 3734: 00d5a223 sw a3,4(a1) + 3738: eddff06f j 3614 + 373c: 00174283 lbu t0,1(a4) + 3740: 00160313 addi t1,a2,1 + 3744: 00060713 mv a4,a2 + 3748: 06028a63 beqz t0,37bc + 374c: 0be28263 beq t0,t5,37f0 + 3750: 00030613 mv a2,t1 + 3754: fc5ff06f j 3718 + 3758: 001e4383 lbu t2,1(t3) + 375c: 001e8713 addi a4,t4,1 + 3760: 000e8e13 mv t3,t4 + 3764: 04038263 beqz t2,37a8 + 3768: 05138263 beq t2,a7,37ac + 376c: 00070e93 mv t4,a4 + 3770: e25ff06f j 3594 + 3774: 0075a023 sw t2,0(a1) + 3778: 0017c383 lbu t2,1(a5) + 377c: 02038863 beqz t2,37ac + 3780: 00278e93 addi t4,a5,2 + 3784: 03038263 beq t2,a6,37a8 + 3788: 00070e13 mv t3,a4 + 378c: dfdff06f j 3588 + 3790: 0075a423 sw t2,8(a1) + 3794: 0027c383 lbu t2,2(a5) + 3798: 00038a63 beqz t2,37ac + 379c: 02c00793 li a5,44 + 37a0: 00170e93 addi t4,a4,1 + 37a4: fef392e3 bne t2,a5,3788 + 37a8: 000e8713 mv a4,t4 + 37ac: 00500393 li t2,5 + 37b0: e65ff06f j 3614 + 37b4: 00000393 li t2,0 + 37b8: e5dff06f j 3614 + 37bc: 00060713 mv a4,a2 + 37c0: 00700393 li t2,7 + 37c4: e51ff06f j 3614 + 37c8: 00600393 li t2,6 + 37cc: e49ff06f j 3614 + 37d0: 000e8713 mv a4,t4 + 37d4: 00300393 li t2,3 + 37d8: e3dff06f j 3614 + 37dc: 00078713 mv a4,a5 + 37e0: 00000393 li t2,0 + 37e4: e31ff06f j 3614 + 37e8: 00200393 li t2,2 + 37ec: e29ff06f j 3614 + 37f0: 00030713 mv a4,t1 + 37f4: 00700393 li t2,7 + 37f8: e1dff06f j 3614 + 37fc: 000e0713 mv a4,t3 + 3800: 00500393 li t2,5 + 3804: e11ff06f j 3614 + 3808: 00038713 mv a4,t2 + 380c: 00400393 li t2,4 + 3810: e05ff06f j 3614 + +00003814 : + 3814: f8010113 addi sp,sp,-128 + 3818: 06812c23 sw s0,120(sp) + 381c: 07212823 sw s2,112(sp) + 3820: 07312623 sw s3,108(sp) + 3824: 07412423 sw s4,104(sp) + 3828: 07612023 sw s6,96(sp) + 382c: 05712e23 sw s7,92(sp) + 3830: 06112e23 sw ra,124(sp) + 3834: 06912a23 sw s1,116(sp) + 3838: 07512223 sw s5,100(sp) + 383c: 00058413 mv s0,a1 + 3840: 0005c583 lbu a1,0(a1) + 3844: 00812623 sw s0,12(sp) + 3848: 02012823 sw zero,48(sp) + 384c: 00012823 sw zero,16(sp) + 3850: 02012a23 sw zero,52(sp) + 3854: 00012a23 sw zero,20(sp) + 3858: 02012c23 sw zero,56(sp) + 385c: 00012c23 sw zero,24(sp) + 3860: 02012e23 sw zero,60(sp) + 3864: 00012e23 sw zero,28(sp) + 3868: 04012023 sw zero,64(sp) + 386c: 02012023 sw zero,32(sp) + 3870: 04012223 sw zero,68(sp) + 3874: 02012223 sw zero,36(sp) + 3878: 04012423 sw zero,72(sp) + 387c: 02012423 sw zero,40(sp) + 3880: 04012623 sw zero,76(sp) + 3884: 02012623 sw zero,44(sp) + 3888: 00050b93 mv s7,a0 + 388c: 00060b13 mv s6,a2 + 3890: 00068a13 mv s4,a3 + 3894: 00070913 mv s2,a4 + 3898: 00078993 mv s3,a5 + 389c: 14058063 beqz a1,39dc + 38a0: 03010493 addi s1,sp,48 + 38a4: 00c10a93 addi s5,sp,12 + 38a8: 00048593 mv a1,s1 + 38ac: 000a8513 mv a0,s5 + 38b0: c35ff0ef jal ra,34e4 + 38b4: 00251513 slli a0,a0,0x2 + 38b8: 05010793 addi a5,sp,80 + 38bc: 00a782b3 add t0,a5,a0 + 38c0: 00c12703 lw a4,12(sp) + 38c4: fc02a303 lw t1,-64(t0) + 38c8: 00074383 lbu t2,0(a4) + 38cc: 00130613 addi a2,t1,1 + 38d0: fcc2a023 sw a2,-64(t0) + 38d4: fc039ae3 bnez t2,38a8 + 38d8: 00812623 sw s0,12(sp) + 38dc: 01740bb3 add s7,s0,s7 + 38e0: 00044583 lbu a1,0(s0) + 38e4: 11747463 bgeu s0,s7,39ec + 38e8: 00040893 mv a7,s0 + 38ec: 02c00693 li a3,44 + 38f0: 0080006f j 38f8 + 38f4: 0008c583 lbu a1,0(a7) + 38f8: 0165c0b3 xor ra,a1,s6 + 38fc: 00d58463 beq a1,a3,3904 + 3900: 00188023 sb ra,0(a7) + 3904: 00c12803 lw a6,12(sp) + 3908: 012808b3 add a7,a6,s2 + 390c: 01112623 sw a7,12(sp) + 3910: ff78e2e3 bltu a7,s7,38f4 + 3914: 00044e03 lbu t3,0(s0) + 3918: 00812623 sw s0,12(sp) + 391c: 00c10a93 addi s5,sp,12 + 3920: 020e0e63 beqz t3,395c + 3924: 00048593 mv a1,s1 + 3928: 000a8513 mv a0,s5 + 392c: bb9ff0ef jal ra,34e4 + 3930: 00251e93 slli t4,a0,0x2 + 3934: 05010f13 addi t5,sp,80 + 3938: 01df0fb3 add t6,t5,t4 + 393c: 00c12b03 lw s6,12(sp) + 3940: fc0fa583 lw a1,-64(t6) + 3944: 000b4503 lbu a0,0(s6) + 3948: 00158793 addi a5,a1,1 + 394c: fcffa023 sw a5,-64(t6) + 3950: fc051ae3 bnez a0,3924 + 3954: 00812623 sw s0,12(sp) + 3958: 03747463 bgeu s0,s7,3980 + 395c: 02c00a93 li s5,44 + 3960: 00044283 lbu t0,0(s0) + 3964: 0142c333 xor t1,t0,s4 + 3968: 01528463 beq t0,s5,3970 + 396c: 00640023 sb t1,0(s0) + 3970: 00c12403 lw s0,12(sp) + 3974: 01240433 add s0,s0,s2 + 3978: 00812623 sw s0,12(sp) + 397c: ff7462e3 bltu s0,s7,3960 + 3980: 01010b93 addi s7,sp,16 + 3984: 00048b13 mv s6,s1 + 3988: 000ba503 lw a0,0(s7) + 398c: 00098593 mv a1,s3 + 3990: 004b8b93 addi s7,s7,4 + 3994: 354000ef jal ra,3ce8 + 3998: 00050593 mv a1,a0 + 399c: 000b2503 lw a0,0(s6) + 39a0: 004b0b13 addi s6,s6,4 + 39a4: 344000ef jal ra,3ce8 + 39a8: 00050993 mv s3,a0 + 39ac: fc9b9ee3 bne s7,s1,3988 + 39b0: 07c12083 lw ra,124(sp) + 39b4: 07812403 lw s0,120(sp) + 39b8: 07412483 lw s1,116(sp) + 39bc: 07012903 lw s2,112(sp) + 39c0: 06c12983 lw s3,108(sp) + 39c4: 06812a03 lw s4,104(sp) + 39c8: 06412a83 lw s5,100(sp) + 39cc: 06012b03 lw s6,96(sp) + 39d0: 05c12b83 lw s7,92(sp) + 39d4: 08010113 addi sp,sp,128 + 39d8: 00008067 ret + 39dc: 00a40bb3 add s7,s0,a0 + 39e0: 03010493 addi s1,sp,48 + 39e4: f17462e3 bltu s0,s7,38e8 + 39e8: f99ff06f j 3980 + 39ec: f2059ce3 bnez a1,3924 + 39f0: f91ff06f j 3980 + +000039f4 : + 39f4: 00500793 li a5,5 + 39f8: 06a7e463 bltu a5,a0,3a60 + 39fc: 0fffd717 auipc a4,0xfffd + 3a00: b9870713 addi a4,a4,-1128 # 10000594 + 3a04: 00251513 slli a0,a0,0x2 + 3a08: 00e502b3 add t0,a0,a4 + 3a0c: 0002a303 lw t1,0(t0) + 3a10: 00e303b3 add t2,t1,a4 + 3a14: 00038067 jr t2 + 3a18: 81018593 addi a1,gp,-2032 # 10000768 + 3a1c: 0005a503 lw a0,0(a1) + 3a20: 00008067 ret + 3a24: 0fffd897 auipc a7,0xfffd + 3a28: d3c88893 addi a7,a7,-708 # 10000760 + 3a2c: 0008a503 lw a0,0(a7) + 3a30: 00008067 ret + 3a34: 80c18813 addi a6,gp,-2036 # 10000764 + 3a38: 00082503 lw a0,0(a6) + 3a3c: 00008067 ret + 3a40: 0fffd697 auipc a3,0xfffd + 3a44: d1868693 addi a3,a3,-744 # 10000758 + 3a48: 0006a503 lw a0,0(a3) + 3a4c: 00008067 ret + 3a50: 0fffd617 auipc a2,0xfffd + 3a54: d0c60613 addi a2,a2,-756 # 1000075c + 3a58: 00062503 lw a0,0(a2) + 3a5c: 00008067 ret + 3a60: 00000513 li a0,0 + 3a64: 00008067 ret + +00003a68 : + 3a68: 00a5c633 xor a2,a1,a0 + 3a6c: 0ff57693 andi a3,a0,255 + 3a70: 00167293 andi t0,a2,1 + 3a74: 0016d713 srli a4,a3,0x1 + 3a78: 0015d813 srli a6,a1,0x1 + 3a7c: 00028c63 beqz t0,3a94 + 3a80: ffffa337 lui t1,0xffffa + 3a84: 00130393 addi t2,t1,1 # ffffa001 <_sp+0xefff7001> + 3a88: 007847b3 xor a5,a6,t2 + 3a8c: 01079593 slli a1,a5,0x10 + 3a90: 0105d813 srli a6,a1,0x10 + 3a94: 00e848b3 xor a7,a6,a4 + 3a98: 0018fe13 andi t3,a7,1 + 3a9c: 0026de93 srli t4,a3,0x2 + 3aa0: 00185313 srli t1,a6,0x1 + 3aa4: 000e0c63 beqz t3,3abc + 3aa8: ffffaf37 lui t5,0xffffa + 3aac: 001f0f93 addi t6,t5,1 # ffffa001 <_sp+0xefff7001> + 3ab0: 01f34633 xor a2,t1,t6 + 3ab4: 01061293 slli t0,a2,0x10 + 3ab8: 0102d313 srli t1,t0,0x10 + 3abc: 01d34733 xor a4,t1,t4 + 3ac0: 00177393 andi t2,a4,1 + 3ac4: 0036d593 srli a1,a3,0x3 + 3ac8: 00135e93 srli t4,t1,0x1 + 3acc: 00038c63 beqz t2,3ae4 + 3ad0: ffffa837 lui a6,0xffffa + 3ad4: 00180893 addi a7,a6,1 # ffffa001 <_sp+0xefff7001> + 3ad8: 011ec7b3 xor a5,t4,a7 + 3adc: 01079e13 slli t3,a5,0x10 + 3ae0: 010e5e93 srli t4,t3,0x10 + 3ae4: 00becf33 xor t5,t4,a1 + 3ae8: 001f7f93 andi t6,t5,1 + 3aec: 0046d293 srli t0,a3,0x4 + 3af0: 001ed593 srli a1,t4,0x1 + 3af4: 000f8c63 beqz t6,3b0c + 3af8: ffffa637 lui a2,0xffffa + 3afc: 00160313 addi t1,a2,1 # ffffa001 <_sp+0xefff7001> + 3b00: 0065c733 xor a4,a1,t1 + 3b04: 01071393 slli t2,a4,0x10 + 3b08: 0103d593 srli a1,t2,0x10 + 3b0c: 0055c833 xor a6,a1,t0 + 3b10: 00187893 andi a7,a6,1 + 3b14: 0056de13 srli t3,a3,0x5 + 3b18: 0015d293 srli t0,a1,0x1 + 3b1c: 00088c63 beqz a7,3b34 + 3b20: ffffaeb7 lui t4,0xffffa + 3b24: 001e8f13 addi t5,t4,1 # ffffa001 <_sp+0xefff7001> + 3b28: 01e2c7b3 xor a5,t0,t5 + 3b2c: 01079f93 slli t6,a5,0x10 + 3b30: 010fd293 srli t0,t6,0x10 + 3b34: 01c2c633 xor a2,t0,t3 + 3b38: 00167313 andi t1,a2,1 + 3b3c: 0066d713 srli a4,a3,0x6 + 3b40: 0012de13 srli t3,t0,0x1 + 3b44: 00030c63 beqz t1,3b5c + 3b48: ffffa3b7 lui t2,0xffffa + 3b4c: 00138593 addi a1,t2,1 # ffffa001 <_sp+0xefff7001> + 3b50: 00be4833 xor a6,t3,a1 + 3b54: 01081893 slli a7,a6,0x10 + 3b58: 0108de13 srli t3,a7,0x10 + 3b5c: 00ee4eb3 xor t4,t3,a4 + 3b60: 001eff13 andi t5,t4,1 + 3b64: 0076d693 srli a3,a3,0x7 + 3b68: 001e5313 srli t1,t3,0x1 + 3b6c: 000f0c63 beqz t5,3b84 + 3b70: ffffafb7 lui t6,0xffffa + 3b74: 001f8293 addi t0,t6,1 # ffffa001 <_sp+0xefff7001> + 3b78: 005347b3 xor a5,t1,t0 + 3b7c: 01079613 slli a2,a5,0x10 + 3b80: 01065313 srli t1,a2,0x10 + 3b84: 00137713 andi a4,t1,1 + 3b88: 00135e13 srli t3,t1,0x1 + 3b8c: 00d70c63 beq a4,a3,3ba4 + 3b90: ffffa3b7 lui t2,0xffffa + 3b94: 00138593 addi a1,t2,1 # ffffa001 <_sp+0xefff7001> + 3b98: 00be4833 xor a6,t3,a1 + 3b9c: 01081893 slli a7,a6,0x10 + 3ba0: 0108de13 srli t3,a7,0x10 + 3ba4: 00855513 srli a0,a0,0x8 + 3ba8: 01c54eb3 xor t4,a0,t3 + 3bac: 0ff57f13 andi t5,a0,255 + 3bb0: 001eff93 andi t6,t4,1 + 3bb4: 001f5693 srli a3,t5,0x1 + 3bb8: 001e5713 srli a4,t3,0x1 + 3bbc: 000f8c63 beqz t6,3bd4 + 3bc0: ffffa2b7 lui t0,0xffffa + 3bc4: 00128793 addi a5,t0,1 # ffffa001 <_sp+0xefff7001> + 3bc8: 00f74633 xor a2,a4,a5 + 3bcc: 01061313 slli t1,a2,0x10 + 3bd0: 01035713 srli a4,t1,0x10 + 3bd4: 00e6c3b3 xor t2,a3,a4 + 3bd8: 0013f593 andi a1,t2,1 + 3bdc: 002f5813 srli a6,t5,0x2 + 3be0: 00175f93 srli t6,a4,0x1 + 3be4: 00058c63 beqz a1,3bfc + 3be8: ffffa8b7 lui a7,0xffffa + 3bec: 00188e13 addi t3,a7,1 # ffffa001 <_sp+0xefff7001> + 3bf0: 01cfc533 xor a0,t6,t3 + 3bf4: 01051e93 slli t4,a0,0x10 + 3bf8: 010edf93 srli t6,t4,0x10 + 3bfc: 010fc6b3 xor a3,t6,a6 + 3c00: 0016f293 andi t0,a3,1 + 3c04: 003f5613 srli a2,t5,0x3 + 3c08: 001fd593 srli a1,t6,0x1 + 3c0c: 00028c63 beqz t0,3c24 + 3c10: ffffa7b7 lui a5,0xffffa + 3c14: 00178313 addi t1,a5,1 # ffffa001 <_sp+0xefff7001> + 3c18: 0065c733 xor a4,a1,t1 + 3c1c: 01071393 slli t2,a4,0x10 + 3c20: 0103d593 srli a1,t2,0x10 + 3c24: 00c5c833 xor a6,a1,a2 + 3c28: 00187893 andi a7,a6,1 + 3c2c: 004f5e13 srli t3,t5,0x4 + 3c30: 0015d293 srli t0,a1,0x1 + 3c34: 00088c63 beqz a7,3c4c + 3c38: ffffaeb7 lui t4,0xffffa + 3c3c: 001e8f93 addi t6,t4,1 # ffffa001 <_sp+0xefff7001> + 3c40: 01f2c533 xor a0,t0,t6 + 3c44: 01051693 slli a3,a0,0x10 + 3c48: 0106d293 srli t0,a3,0x10 + 3c4c: 01c2c633 xor a2,t0,t3 + 3c50: 00167793 andi a5,a2,1 + 3c54: 005f5313 srli t1,t5,0x5 + 3c58: 0012d893 srli a7,t0,0x1 + 3c5c: 00078c63 beqz a5,3c74 + 3c60: ffffa737 lui a4,0xffffa + 3c64: 00170393 addi t2,a4,1 # ffffa001 <_sp+0xefff7001> + 3c68: 0078c5b3 xor a1,a7,t2 + 3c6c: 01059813 slli a6,a1,0x10 + 3c70: 01085893 srli a7,a6,0x10 + 3c74: 0068ce33 xor t3,a7,t1 + 3c78: 001e7e93 andi t4,t3,1 + 3c7c: 006f5f93 srli t6,t5,0x6 + 3c80: 0018d313 srli t1,a7,0x1 + 3c84: 000e8c63 beqz t4,3c9c + 3c88: ffffa6b7 lui a3,0xffffa + 3c8c: 00168293 addi t0,a3,1 # ffffa001 <_sp+0xefff7001> + 3c90: 00534533 xor a0,t1,t0 + 3c94: 01051613 slli a2,a0,0x10 + 3c98: 01065313 srli t1,a2,0x10 + 3c9c: 01f347b3 xor a5,t1,t6 + 3ca0: 0017f393 andi t2,a5,1 + 3ca4: 007f5f13 srli t5,t5,0x7 + 3ca8: 00135e13 srli t3,t1,0x1 + 3cac: 00038c63 beqz t2,3cc4 + 3cb0: ffffa737 lui a4,0xffffa + 3cb4: 00170593 addi a1,a4,1 # ffffa001 <_sp+0xefff7001> + 3cb8: 00be4833 xor a6,t3,a1 + 3cbc: 01081893 slli a7,a6,0x10 + 3cc0: 0108de13 srli t3,a7,0x10 + 3cc4: 001e7e93 andi t4,t3,1 + 3cc8: 001e5513 srli a0,t3,0x1 + 3ccc: 01ee8c63 beq t4,t5,3ce4 + 3cd0: ffffafb7 lui t6,0xffffa + 3cd4: 001f8693 addi a3,t6,1 # ffffa001 <_sp+0xefff7001> + 3cd8: 00d542b3 xor t0,a0,a3 + 3cdc: 01029513 slli a0,t0,0x10 + 3ce0: 01055513 srli a0,a0,0x10 + 3ce4: 00008067 ret + +00003ce8 : + 3ce8: 00a5c833 xor a6,a1,a0 + 3cec: 0ff57693 andi a3,a0,255 + 3cf0: 01051713 slli a4,a0,0x10 + 3cf4: 00187293 andi t0,a6,1 + 3cf8: 01075313 srli t1,a4,0x10 + 3cfc: 0016d613 srli a2,a3,0x1 + 3d00: 0015de13 srli t3,a1,0x1 + 3d04: 00028c63 beqz t0,3d1c + 3d08: ffffa5b7 lui a1,0xffffa + 3d0c: 00158393 addi t2,a1,1 # ffffa001 <_sp+0xefff7001> + 3d10: 007e47b3 xor a5,t3,t2 + 3d14: 01079893 slli a7,a5,0x10 + 3d18: 0108de13 srli t3,a7,0x10 + 3d1c: 00ce4eb3 xor t4,t3,a2 + 3d20: 001eff13 andi t5,t4,1 + 3d24: 0026df93 srli t6,a3,0x2 + 3d28: 001e5393 srli t2,t3,0x1 + 3d2c: 000f0c63 beqz t5,3d44 + 3d30: ffffa837 lui a6,0xffffa + 3d34: 00180293 addi t0,a6,1 # ffffa001 <_sp+0xefff7001> + 3d38: 0053c733 xor a4,t2,t0 + 3d3c: 01071613 slli a2,a4,0x10 + 3d40: 01065393 srli t2,a2,0x10 + 3d44: 01f3c5b3 xor a1,t2,t6 + 3d48: 0015f893 andi a7,a1,1 + 3d4c: 0036de13 srli t3,a3,0x3 + 3d50: 0013d813 srli a6,t2,0x1 + 3d54: 00088c63 beqz a7,3d6c + 3d58: ffffaeb7 lui t4,0xffffa + 3d5c: 001e8f13 addi t5,t4,1 # ffffa001 <_sp+0xefff7001> + 3d60: 01e847b3 xor a5,a6,t5 + 3d64: 01079f93 slli t6,a5,0x10 + 3d68: 010fd813 srli a6,t6,0x10 + 3d6c: 01c842b3 xor t0,a6,t3 + 3d70: 0012f713 andi a4,t0,1 + 3d74: 0046d613 srli a2,a3,0x4 + 3d78: 00185e93 srli t4,a6,0x1 + 3d7c: 00070c63 beqz a4,3d94 + 3d80: ffffa3b7 lui t2,0xffffa + 3d84: 00138593 addi a1,t2,1 # ffffa001 <_sp+0xefff7001> + 3d88: 00bec8b3 xor a7,t4,a1 + 3d8c: 01089e13 slli t3,a7,0x10 + 3d90: 010e5e93 srli t4,t3,0x10 + 3d94: 00cecf33 xor t5,t4,a2 + 3d98: 001f7f93 andi t6,t5,1 + 3d9c: 0056d813 srli a6,a3,0x5 + 3da0: 001ed393 srli t2,t4,0x1 + 3da4: 000f8c63 beqz t6,3dbc + 3da8: ffffa2b7 lui t0,0xffffa + 3dac: 00128713 addi a4,t0,1 # ffffa001 <_sp+0xefff7001> + 3db0: 00e3c7b3 xor a5,t2,a4 + 3db4: 01079613 slli a2,a5,0x10 + 3db8: 01065393 srli t2,a2,0x10 + 3dbc: 0103c5b3 xor a1,t2,a6 + 3dc0: 0015f893 andi a7,a1,1 + 3dc4: 0066de13 srli t3,a3,0x6 + 3dc8: 0013d293 srli t0,t2,0x1 + 3dcc: 00088c63 beqz a7,3de4 + 3dd0: ffffaeb7 lui t4,0xffffa + 3dd4: 001e8f13 addi t5,t4,1 # ffffa001 <_sp+0xefff7001> + 3dd8: 01e2cfb3 xor t6,t0,t5 + 3ddc: 010f9813 slli a6,t6,0x10 + 3de0: 01085293 srli t0,a6,0x10 + 3de4: 01c2c733 xor a4,t0,t3 + 3de8: 00177613 andi a2,a4,1 + 3dec: 0076d693 srli a3,a3,0x7 + 3df0: 0012de13 srli t3,t0,0x1 + 3df4: 00060c63 beqz a2,3e0c + 3df8: ffffa3b7 lui t2,0xffffa + 3dfc: 00138593 addi a1,t2,1 # ffffa001 <_sp+0xefff7001> + 3e00: 00be47b3 xor a5,t3,a1 + 3e04: 01079893 slli a7,a5,0x10 + 3e08: 0108de13 srli t3,a7,0x10 + 3e0c: 001e7e93 andi t4,t3,1 + 3e10: 001e5393 srli t2,t3,0x1 + 3e14: 00de8c63 beq t4,a3,3e2c + 3e18: ffffaf37 lui t5,0xffffa + 3e1c: 001f0f93 addi t6,t5,1 # ffffa001 <_sp+0xefff7001> + 3e20: 01f3c833 xor a6,t2,t6 + 3e24: 01081293 slli t0,a6,0x10 + 3e28: 0102d393 srli t2,t0,0x10 + 3e2c: 00835313 srli t1,t1,0x8 + 3e30: 0063c633 xor a2,t2,t1 + 3e34: 0ff37713 andi a4,t1,255 + 3e38: 00167693 andi a3,a2,1 + 3e3c: 00175593 srli a1,a4,0x1 + 3e40: 0013df13 srli t5,t2,0x1 + 3e44: 00068c63 beqz a3,3e5c + 3e48: ffffa8b7 lui a7,0xffffa + 3e4c: 00188e13 addi t3,a7,1 # ffffa001 <_sp+0xefff7001> + 3e50: 01cf47b3 xor a5,t5,t3 + 3e54: 01079e93 slli t4,a5,0x10 + 3e58: 010edf13 srli t5,t4,0x10 + 3e5c: 00bf4fb3 xor t6,t5,a1 + 3e60: 001ff813 andi a6,t6,1 + 3e64: 00275293 srli t0,a4,0x2 + 3e68: 001f5593 srli a1,t5,0x1 + 3e6c: 00080c63 beqz a6,3e84 + 3e70: ffffa3b7 lui t2,0xffffa + 3e74: 00138313 addi t1,t2,1 # ffffa001 <_sp+0xefff7001> + 3e78: 0065c633 xor a2,a1,t1 + 3e7c: 01061693 slli a3,a2,0x10 + 3e80: 0106d593 srli a1,a3,0x10 + 3e84: 0055c8b3 xor a7,a1,t0 + 3e88: 0018fe13 andi t3,a7,1 + 3e8c: 00375e93 srli t4,a4,0x3 + 3e90: 0015d293 srli t0,a1,0x1 + 3e94: 000e0c63 beqz t3,3eac + 3e98: ffffaf37 lui t5,0xffffa + 3e9c: 001f0f93 addi t6,t5,1 # ffffa001 <_sp+0xefff7001> + 3ea0: 01f2c7b3 xor a5,t0,t6 + 3ea4: 01079813 slli a6,a5,0x10 + 3ea8: 01085293 srli t0,a6,0x10 + 3eac: 01d2c3b3 xor t2,t0,t4 + 3eb0: 0013f313 andi t1,t2,1 + 3eb4: 00475693 srli a3,a4,0x4 + 3eb8: 0012de93 srli t4,t0,0x1 + 3ebc: 00030c63 beqz t1,3ed4 + 3ec0: ffffa637 lui a2,0xffffa + 3ec4: 00160593 addi a1,a2,1 # ffffa001 <_sp+0xefff7001> + 3ec8: 00bec8b3 xor a7,t4,a1 + 3ecc: 01089e13 slli t3,a7,0x10 + 3ed0: 010e5e93 srli t4,t3,0x10 + 3ed4: 00decf33 xor t5,t4,a3 + 3ed8: 001f7f93 andi t6,t5,1 + 3edc: 00575813 srli a6,a4,0x5 + 3ee0: 001ed593 srli a1,t4,0x1 + 3ee4: 000f8c63 beqz t6,3efc + 3ee8: ffffa2b7 lui t0,0xffffa + 3eec: 00128393 addi t2,t0,1 # ffffa001 <_sp+0xefff7001> + 3ef0: 0075c7b3 xor a5,a1,t2 + 3ef4: 01079313 slli t1,a5,0x10 + 3ef8: 01035593 srli a1,t1,0x10 + 3efc: 0105c6b3 xor a3,a1,a6 + 3f00: 0016f613 andi a2,a3,1 + 3f04: 00675893 srli a7,a4,0x6 + 3f08: 0015d813 srli a6,a1,0x1 + 3f0c: 00060c63 beqz a2,3f24 + 3f10: ffffae37 lui t3,0xffffa + 3f14: 001e0e93 addi t4,t3,1 # ffffa001 <_sp+0xefff7001> + 3f18: 01d84f33 xor t5,a6,t4 + 3f1c: 010f1f93 slli t6,t5,0x10 + 3f20: 010fd813 srli a6,t6,0x10 + 3f24: 011842b3 xor t0,a6,a7 + 3f28: 0012f393 andi t2,t0,1 + 3f2c: 00775713 srli a4,a4,0x7 + 3f30: 00185613 srli a2,a6,0x1 + 3f34: 00038c63 beqz t2,3f4c + 3f38: ffffa337 lui t1,0xffffa + 3f3c: 00130593 addi a1,t1,1 # ffffa001 <_sp+0xefff7001> + 3f40: 00b647b3 xor a5,a2,a1 + 3f44: 01079693 slli a3,a5,0x10 + 3f48: 0106d613 srli a2,a3,0x10 + 3f4c: 00167893 andi a7,a2,1 + 3f50: 00165813 srli a6,a2,0x1 + 3f54: 00e88c63 beq a7,a4,3f6c + 3f58: ffffae37 lui t3,0xffffa + 3f5c: 001e0e93 addi t4,t3,1 # ffffa001 <_sp+0xefff7001> + 3f60: 01d84f33 xor t5,a6,t4 + 3f64: 010f1f93 slli t6,t5,0x10 + 3f68: 010fd813 srli a6,t6,0x10 + 3f6c: 01055513 srli a0,a0,0x10 + 3f70: 00a842b3 xor t0,a6,a0 + 3f74: 0ff57393 andi t2,a0,255 + 3f78: 01051313 slli t1,a0,0x10 + 3f7c: 0012f713 andi a4,t0,1 + 3f80: 01035593 srli a1,t1,0x10 + 3f84: 0013d693 srli a3,t2,0x1 + 3f88: 00185e93 srli t4,a6,0x1 + 3f8c: 00070c63 beqz a4,3fa4 + 3f90: ffffa7b7 lui a5,0xffffa + 3f94: 00178613 addi a2,a5,1 # ffffa001 <_sp+0xefff7001> + 3f98: 00cec8b3 xor a7,t4,a2 + 3f9c: 01089e13 slli t3,a7,0x10 + 3fa0: 010e5e93 srli t4,t3,0x10 + 3fa4: 00decf33 xor t5,t4,a3 + 3fa8: 001f7f93 andi t6,t5,1 + 3fac: 0023d813 srli a6,t2,0x2 + 3fb0: 001ed693 srli a3,t4,0x1 + 3fb4: 000f8c63 beqz t6,3fcc + 3fb8: ffffa2b7 lui t0,0xffffa + 3fbc: 00128713 addi a4,t0,1 # ffffa001 <_sp+0xefff7001> + 3fc0: 00e6c533 xor a0,a3,a4 + 3fc4: 01051313 slli t1,a0,0x10 + 3fc8: 01035693 srli a3,t1,0x10 + 3fcc: 0106c7b3 xor a5,a3,a6 + 3fd0: 0017f893 andi a7,a5,1 + 3fd4: 0033d613 srli a2,t2,0x3 + 3fd8: 0016d813 srli a6,a3,0x1 + 3fdc: 00088c63 beqz a7,3ff4 + 3fe0: ffffae37 lui t3,0xffffa + 3fe4: 001e0e93 addi t4,t3,1 # ffffa001 <_sp+0xefff7001> + 3fe8: 01d84f33 xor t5,a6,t4 + 3fec: 010f1f93 slli t6,t5,0x10 + 3ff0: 010fd813 srli a6,t6,0x10 + 3ff4: 00c842b3 xor t0,a6,a2 + 3ff8: 0012f713 andi a4,t0,1 + 3ffc: 0043d313 srli t1,t2,0x4 + 4000: 00185e13 srli t3,a6,0x1 + 4004: 00070c63 beqz a4,401c + 4008: ffffa6b7 lui a3,0xffffa + 400c: 00168793 addi a5,a3,1 # ffffa001 <_sp+0xefff7001> + 4010: 00fe4533 xor a0,t3,a5 + 4014: 01051893 slli a7,a0,0x10 + 4018: 0108de13 srli t3,a7,0x10 + 401c: 006e4633 xor a2,t3,t1 + 4020: 00167e93 andi t4,a2,1 + 4024: 0053df13 srli t5,t2,0x5 + 4028: 001e5313 srli t1,t3,0x1 + 402c: 000e8c63 beqz t4,4044 + 4030: ffffafb7 lui t6,0xffffa + 4034: 001f8813 addi a6,t6,1 # ffffa001 <_sp+0xefff7001> + 4038: 010342b3 xor t0,t1,a6 + 403c: 01029713 slli a4,t0,0x10 + 4040: 01075313 srli t1,a4,0x10 + 4044: 01e346b3 xor a3,t1,t5 + 4048: 0016f893 andi a7,a3,1 + 404c: 0063d793 srli a5,t2,0x6 + 4050: 00135f13 srli t5,t1,0x1 + 4054: 00088c63 beqz a7,406c + 4058: ffffae37 lui t3,0xffffa + 405c: 001e0613 addi a2,t3,1 # ffffa001 <_sp+0xefff7001> + 4060: 00cf4533 xor a0,t5,a2 + 4064: 01051e93 slli t4,a0,0x10 + 4068: 010edf13 srli t5,t4,0x10 + 406c: 00ff4fb3 xor t6,t5,a5 + 4070: 001ff813 andi a6,t6,1 + 4074: 0073d393 srli t2,t2,0x7 + 4078: 001f5893 srli a7,t5,0x1 + 407c: 00080c63 beqz a6,4094 + 4080: ffffa2b7 lui t0,0xffffa + 4084: 00128713 addi a4,t0,1 # ffffa001 <_sp+0xefff7001> + 4088: 00e8c333 xor t1,a7,a4 + 408c: 01031693 slli a3,t1,0x10 + 4090: 0106d893 srli a7,a3,0x10 + 4094: 0018f793 andi a5,a7,1 + 4098: 0018df13 srli t5,a7,0x1 + 409c: 00778c63 beq a5,t2,40b4 + 40a0: ffffae37 lui t3,0xffffa + 40a4: 001e0613 addi a2,t3,1 # ffffa001 <_sp+0xefff7001> + 40a8: 00cf4533 xor a0,t5,a2 + 40ac: 01051e93 slli t4,a0,0x10 + 40b0: 010edf13 srli t5,t4,0x10 + 40b4: 0085d593 srli a1,a1,0x8 + 40b8: 01e5cfb3 xor t6,a1,t5 + 40bc: 0ff5f813 andi a6,a1,255 + 40c0: 001ff393 andi t2,t6,1 + 40c4: 00185293 srli t0,a6,0x1 + 40c8: 001f5793 srli a5,t5,0x1 + 40cc: 00038c63 beqz t2,40e4 + 40d0: ffffa737 lui a4,0xffffa + 40d4: 00170313 addi t1,a4,1 # ffffa001 <_sp+0xefff7001> + 40d8: 0067c6b3 xor a3,a5,t1 + 40dc: 01069893 slli a7,a3,0x10 + 40e0: 0108d793 srli a5,a7,0x10 + 40e4: 00f2ce33 xor t3,t0,a5 + 40e8: 001e7613 andi a2,t3,1 + 40ec: 00285e93 srli t4,a6,0x2 + 40f0: 0017d393 srli t2,a5,0x1 + 40f4: 00060c63 beqz a2,410c + 40f8: ffffaf37 lui t5,0xffffa + 40fc: 001f0593 addi a1,t5,1 # ffffa001 <_sp+0xefff7001> + 4100: 00b3c533 xor a0,t2,a1 + 4104: 01051f93 slli t6,a0,0x10 + 4108: 010fd393 srli t2,t6,0x10 + 410c: 007ec2b3 xor t0,t4,t2 + 4110: 0012f713 andi a4,t0,1 + 4114: 00385313 srli t1,a6,0x3 + 4118: 0013d613 srli a2,t2,0x1 + 411c: 00070c63 beqz a4,4134 + 4120: ffffa6b7 lui a3,0xffffa + 4124: 00168893 addi a7,a3,1 # ffffa001 <_sp+0xefff7001> + 4128: 011647b3 xor a5,a2,a7 + 412c: 01079e13 slli t3,a5,0x10 + 4130: 010e5613 srli a2,t3,0x10 + 4134: 00664eb3 xor t4,a2,t1 + 4138: 001eff13 andi t5,t4,1 + 413c: 00485593 srli a1,a6,0x4 + 4140: 00165313 srli t1,a2,0x1 + 4144: 000f0c63 beqz t5,415c + 4148: ffffafb7 lui t6,0xffffa + 414c: 001f8393 addi t2,t6,1 # ffffa001 <_sp+0xefff7001> + 4150: 00734533 xor a0,t1,t2 + 4154: 01051293 slli t0,a0,0x10 + 4158: 0102d313 srli t1,t0,0x10 + 415c: 00b34733 xor a4,t1,a1 + 4160: 00177893 andi a7,a4,1 + 4164: 00585693 srli a3,a6,0x5 + 4168: 00135f13 srli t5,t1,0x1 + 416c: 00088c63 beqz a7,4184 + 4170: ffffa7b7 lui a5,0xffffa + 4174: 00178e13 addi t3,a5,1 # ffffa001 <_sp+0xefff7001> + 4178: 01cf4633 xor a2,t5,t3 + 417c: 01061e93 slli t4,a2,0x10 + 4180: 010edf13 srli t5,t4,0x10 + 4184: 00df45b3 xor a1,t5,a3 + 4188: 0015ff93 andi t6,a1,1 + 418c: 00685393 srli t2,a6,0x6 + 4190: 001f5893 srli a7,t5,0x1 + 4194: 000f8c63 beqz t6,41ac + 4198: ffffa2b7 lui t0,0xffffa + 419c: 00128313 addi t1,t0,1 # ffffa001 <_sp+0xefff7001> + 41a0: 0068c533 xor a0,a7,t1 + 41a4: 01051713 slli a4,a0,0x10 + 41a8: 01075893 srli a7,a4,0x10 + 41ac: 0078c6b3 xor a3,a7,t2 + 41b0: 0016fe13 andi t3,a3,1 + 41b4: 00785813 srli a6,a6,0x7 + 41b8: 0018d593 srli a1,a7,0x1 + 41bc: 000e0c63 beqz t3,41d4 + 41c0: ffffa7b7 lui a5,0xffffa + 41c4: 00178613 addi a2,a5,1 # ffffa001 <_sp+0xefff7001> + 41c8: 00c5ceb3 xor t4,a1,a2 + 41cc: 010e9f13 slli t5,t4,0x10 + 41d0: 010f5593 srli a1,t5,0x10 + 41d4: 0015ff93 andi t6,a1,1 + 41d8: 0015d513 srli a0,a1,0x1 + 41dc: 010f8c63 beq t6,a6,41f4 + 41e0: ffffa3b7 lui t2,0xffffa + 41e4: 00138293 addi t0,t2,1 # ffffa001 <_sp+0xefff7001> + 41e8: 00554333 xor t1,a0,t0 + 41ec: 01031513 slli a0,t1,0x10 + 41f0: 01055513 srli a0,a0,0x10 + 41f4: 00008067 ret + +000041f8 : + 41f8: 00a5c633 xor a2,a1,a0 + 41fc: 0ff57713 andi a4,a0,255 + 4200: 01051793 slli a5,a0,0x10 + 4204: 00167293 andi t0,a2,1 + 4208: 0107d313 srli t1,a5,0x10 + 420c: 00175693 srli a3,a4,0x1 + 4210: 0015d893 srli a7,a1,0x1 + 4214: 00028c63 beqz t0,422c + 4218: ffffa5b7 lui a1,0xffffa + 421c: 00158393 addi t2,a1,1 # ffffa001 <_sp+0xefff7001> + 4220: 0078c533 xor a0,a7,t2 + 4224: 01051813 slli a6,a0,0x10 + 4228: 01085893 srli a7,a6,0x10 + 422c: 00d8ce33 xor t3,a7,a3 + 4230: 001e7e93 andi t4,t3,1 + 4234: 00275f13 srli t5,a4,0x2 + 4238: 0018d593 srli a1,a7,0x1 + 423c: 000e8c63 beqz t4,4254 + 4240: ffffafb7 lui t6,0xffffa + 4244: 001f8613 addi a2,t6,1 # ffffa001 <_sp+0xefff7001> + 4248: 00c5c2b3 xor t0,a1,a2 + 424c: 01029793 slli a5,t0,0x10 + 4250: 0107d593 srli a1,a5,0x10 + 4254: 01e5c6b3 xor a3,a1,t5 + 4258: 0016f393 andi t2,a3,1 + 425c: 00375813 srli a6,a4,0x3 + 4260: 0015df13 srli t5,a1,0x1 + 4264: 00038c63 beqz t2,427c + 4268: ffffa8b7 lui a7,0xffffa + 426c: 00188e13 addi t3,a7,1 # ffffa001 <_sp+0xefff7001> + 4270: 01cf4533 xor a0,t5,t3 + 4274: 01051e93 slli t4,a0,0x10 + 4278: 010edf13 srli t5,t4,0x10 + 427c: 010f4fb3 xor t6,t5,a6 + 4280: 001ff613 andi a2,t6,1 + 4284: 00475293 srli t0,a4,0x4 + 4288: 001f5813 srli a6,t5,0x1 + 428c: 00060c63 beqz a2,42a4 + 4290: ffffa7b7 lui a5,0xffffa + 4294: 00178593 addi a1,a5,1 # ffffa001 <_sp+0xefff7001> + 4298: 00b846b3 xor a3,a6,a1 + 429c: 01069393 slli t2,a3,0x10 + 42a0: 0103d813 srli a6,t2,0x10 + 42a4: 005848b3 xor a7,a6,t0 + 42a8: 0018fe13 andi t3,a7,1 + 42ac: 00575e93 srli t4,a4,0x5 + 42b0: 00185293 srli t0,a6,0x1 + 42b4: 000e0c63 beqz t3,42cc + 42b8: ffffaf37 lui t5,0xffffa + 42bc: 001f0f93 addi t6,t5,1 # ffffa001 <_sp+0xefff7001> + 42c0: 01f2c533 xor a0,t0,t6 + 42c4: 01051613 slli a2,a0,0x10 + 42c8: 01065293 srli t0,a2,0x10 + 42cc: 01d2c7b3 xor a5,t0,t4 + 42d0: 0017f593 andi a1,a5,1 + 42d4: 00675693 srli a3,a4,0x6 + 42d8: 0012de93 srli t4,t0,0x1 + 42dc: 00058c63 beqz a1,42f4 + 42e0: ffffa3b7 lui t2,0xffffa + 42e4: 00138813 addi a6,t2,1 # ffffa001 <_sp+0xefff7001> + 42e8: 010ec8b3 xor a7,t4,a6 + 42ec: 01089e13 slli t3,a7,0x10 + 42f0: 010e5e93 srli t4,t3,0x10 + 42f4: 00decf33 xor t5,t4,a3 + 42f8: 001f7f93 andi t6,t5,1 + 42fc: 00775713 srli a4,a4,0x7 + 4300: 001ed593 srli a1,t4,0x1 + 4304: 000f8c63 beqz t6,431c + 4308: ffffa637 lui a2,0xffffa + 430c: 00160293 addi t0,a2,1 # ffffa001 <_sp+0xefff7001> + 4310: 0055c533 xor a0,a1,t0 + 4314: 01051793 slli a5,a0,0x10 + 4318: 0107d593 srli a1,a5,0x10 + 431c: 0015f693 andi a3,a1,1 + 4320: 0015de93 srli t4,a1,0x1 + 4324: 00e68c63 beq a3,a4,433c + 4328: ffffa3b7 lui t2,0xffffa + 432c: 00138813 addi a6,t2,1 # ffffa001 <_sp+0xefff7001> + 4330: 010ec8b3 xor a7,t4,a6 + 4334: 01089e13 slli t3,a7,0x10 + 4338: 010e5e93 srli t4,t3,0x10 + 433c: 00835313 srli t1,t1,0x8 + 4340: 01d34f33 xor t5,t1,t4 + 4344: 0ff37f93 andi t6,t1,255 + 4348: 001f7713 andi a4,t5,1 + 434c: 001fd613 srli a2,t6,0x1 + 4350: 001ed393 srli t2,t4,0x1 + 4354: 00070c63 beqz a4,436c + 4358: ffffa2b7 lui t0,0xffffa + 435c: 00128793 addi a5,t0,1 # ffffa001 <_sp+0xefff7001> + 4360: 00f3c533 xor a0,t2,a5 + 4364: 01051593 slli a1,a0,0x10 + 4368: 0105d393 srli t2,a1,0x10 + 436c: 007646b3 xor a3,a2,t2 + 4370: 0016f813 andi a6,a3,1 + 4374: 002fd893 srli a7,t6,0x2 + 4378: 0013d613 srli a2,t2,0x1 + 437c: 00080c63 beqz a6,4394 + 4380: ffffae37 lui t3,0xffffa + 4384: 001e0e93 addi t4,t3,1 # ffffa001 <_sp+0xefff7001> + 4388: 01d64333 xor t1,a2,t4 + 438c: 01031f13 slli t5,t1,0x10 + 4390: 010f5613 srli a2,t5,0x10 + 4394: 01164733 xor a4,a2,a7 + 4398: 00177293 andi t0,a4,1 + 439c: 003fd793 srli a5,t6,0x3 + 43a0: 00165813 srli a6,a2,0x1 + 43a4: 00028c63 beqz t0,43bc + 43a8: ffffa5b7 lui a1,0xffffa + 43ac: 00158393 addi t2,a1,1 # ffffa001 <_sp+0xefff7001> + 43b0: 00784533 xor a0,a6,t2 + 43b4: 01051693 slli a3,a0,0x10 + 43b8: 0106d813 srli a6,a3,0x10 + 43bc: 00f848b3 xor a7,a6,a5 + 43c0: 0018fe13 andi t3,a7,1 + 43c4: 004fde93 srli t4,t6,0x4 + 43c8: 00185293 srli t0,a6,0x1 + 43cc: 000e0c63 beqz t3,43e4 + 43d0: ffffa337 lui t1,0xffffa + 43d4: 00130f13 addi t5,t1,1 # ffffa001 <_sp+0xefff7001> + 43d8: 01e2c633 xor a2,t0,t5 + 43dc: 01061713 slli a4,a2,0x10 + 43e0: 01075293 srli t0,a4,0x10 + 43e4: 01d2c7b3 xor a5,t0,t4 + 43e8: 0017f593 andi a1,a5,1 + 43ec: 005fd393 srli t2,t6,0x5 + 43f0: 0012de13 srli t3,t0,0x1 + 43f4: 00058c63 beqz a1,440c + 43f8: ffffa6b7 lui a3,0xffffa + 43fc: 00168813 addi a6,a3,1 # ffffa001 <_sp+0xefff7001> + 4400: 010e4533 xor a0,t3,a6 + 4404: 01051893 slli a7,a0,0x10 + 4408: 0108de13 srli t3,a7,0x10 + 440c: 007e4eb3 xor t4,t3,t2 + 4410: 001ef313 andi t1,t4,1 + 4414: 006fdf13 srli t5,t6,0x6 + 4418: 001e5593 srli a1,t3,0x1 + 441c: 00030c63 beqz t1,4434 + 4420: ffffa637 lui a2,0xffffa + 4424: 00160713 addi a4,a2,1 # ffffa001 <_sp+0xefff7001> + 4428: 00e5c2b3 xor t0,a1,a4 + 442c: 01029793 slli a5,t0,0x10 + 4430: 0107d593 srli a1,a5,0x10 + 4434: 01e5c3b3 xor t2,a1,t5 + 4438: 0013f693 andi a3,t2,1 + 443c: 007fdf93 srli t6,t6,0x7 + 4440: 0015de93 srli t4,a1,0x1 + 4444: 00068c63 beqz a3,445c + 4448: ffffa837 lui a6,0xffffa + 444c: 00180893 addi a7,a6,1 # ffffa001 <_sp+0xefff7001> + 4450: 011ec533 xor a0,t4,a7 + 4454: 01051e13 slli t3,a0,0x10 + 4458: 010e5e93 srli t4,t3,0x10 + 445c: 001ef313 andi t1,t4,1 + 4460: 001ed513 srli a0,t4,0x1 + 4464: 01f30c63 beq t1,t6,447c + 4468: ffffaf37 lui t5,0xffffa + 446c: 001f0613 addi a2,t5,1 # ffffa001 <_sp+0xefff7001> + 4470: 00c54733 xor a4,a0,a2 + 4474: 01071293 slli t0,a4,0x10 + 4478: 0102d513 srli a0,t0,0x10 + 447c: 00008067 ret + +00004480 : + 4480: 00000513 li a0,0 + 4484: 00008067 ret + +00004488 : + 4488: 30000737 lui a4,0x30000 + 448c: 00472783 lw a5,4(a4) # 30000004 <_sp+0x1fffd004> + 4490: 0017f293 andi t0,a5,1 + 4494: fe029ce3 bnez t0,448c + 4498: 00a72623 sw a0,12(a4) + 449c: 00008067 ret + +000044a0 : + 44a0: ff010113 addi sp,sp,-16 + 44a4: 00112623 sw ra,12(sp) + 44a8: 0dc000ef jal ra,4584 + 44ac: 00c12083 lw ra,12(sp) + 44b0: 81818793 addi a5,gp,-2024 # 10000770 + 44b4: 00a7a023 sw a0,0(a5) + 44b8: 00b7a223 sw a1,4(a5) + 44bc: 01010113 addi sp,sp,16 + 44c0: 00008067 ret + +000044c4 : + 44c4: ff010113 addi sp,sp,-16 + 44c8: 00112623 sw ra,12(sp) + 44cc: 0b8000ef jal ra,4584 + 44d0: 00c12083 lw ra,12(sp) + 44d4: 82018793 addi a5,gp,-2016 # 10000778 + 44d8: 00a7a023 sw a0,0(a5) + 44dc: 00b7a223 sw a1,4(a5) + 44e0: 01010113 addi sp,sp,16 + 44e4: 00008067 ret + +000044e8 : + 44e8: 82018793 addi a5,gp,-2016 # 10000778 + 44ec: 81818713 addi a4,gp,-2024 # 10000770 + 44f0: 0007a583 lw a1,0(a5) + 44f4: 00072503 lw a0,0(a4) + 44f8: 0047a283 lw t0,4(a5) + 44fc: 00472303 lw t1,4(a4) + 4500: 40a58533 sub a0,a1,a0 + 4504: 00a5b3b3 sltu t2,a1,a0 + 4508: 40628633 sub a2,t0,t1 + 450c: 407605b3 sub a1,a2,t2 + 4510: 00008067 ret + +00004514 : + 4514: 01859593 slli a1,a1,0x18 + 4518: 00855513 srli a0,a0,0x8 + 451c: ff010113 addi sp,sp,-16 + 4520: 00a5e533 or a0,a1,a0 + 4524: 00112623 sw ra,12(sp) + 4528: 03c020ef jal ra,6564 <__floatunsidf> + 452c: 0fffc797 auipc a5,0xfffc + 4530: 08478793 addi a5,a5,132 # 100005b0 + 4534: 0007a603 lw a2,0(a5) + 4538: 0047a683 lw a3,4(a5) + 453c: 015010ef jal ra,5d50 <__divdf3> + 4540: 7ad010ef jal ra,64ec <__fixunsdfsi> + 4544: 00c12083 lw ra,12(sp) + 4548: 01010113 addi sp,sp,16 + 454c: 00008067 ret + +00004550 : + 4550: 00100713 li a4,1 + 4554: 300007b7 lui a5,0x30000 + 4558: 00e7a023 sw a4,0(a5) # 30000000 <_sp+0x1fffd000> + 455c: 00000297 auipc t0,0x0 + 4560: f2c28293 addi t0,t0,-212 # 4488 + 4564: 8251a623 sw t0,-2004(gp) # 10000784 + 4568: 00008067 ret + +0000456c : + 456c: 00000317 auipc t1,0x0 + 4570: 00000067 jr zero # 0 <_start> + +00004574 <_init>: + 4574: ffffc797 auipc a5,0xffffc + 4578: 0b078793 addi a5,a5,176 # 624 + 457c: 30579073 csrw mtvec,a5 + 4580: 00008067 ret + +00004584 : + 4584: c0002573 rdcycle a0 + 4588: c80025f3 rdcycleh a1 + 458c: 00008067 ret + +00004590 : + 4590: f7010113 addi sp,sp,-144 + 4594: 06912223 sw s1,100(sp) + 4598: 07212023 sw s2,96(sp) + 459c: 05312e23 sw s3,92(sp) + 45a0: 05412c23 sw s4,88(sp) + 45a4: 05612823 sw s6,80(sp) + 45a8: 05712623 sw s7,76(sp) + 45ac: 05812423 sw s8,72(sp) + 45b0: 06112623 sw ra,108(sp) + 45b4: 00050c13 mv s8,a0 + 45b8: 06812423 sw s0,104(sp) + 45bc: 05512a23 sw s5,84(sp) + 45c0: 05912223 sw s9,68(sp) + 45c4: 05a12023 sw s10,64(sp) + 45c8: 03b12e23 sw s11,60(sp) + 45cc: 06b12a23 sw a1,116(sp) + 45d0: 06c12c23 sw a2,120(sp) + 45d4: 06d12e23 sw a3,124(sp) + 45d8: 08e12023 sw a4,128(sp) + 45dc: 08f12223 sw a5,132(sp) + 45e0: 09012423 sw a6,136(sp) + 45e4: 09112623 sw a7,140(sp) + 45e8: 000c4503 lbu a0,0(s8) + 45ec: 07410a13 addi s4,sp,116 + 45f0: 01412e23 sw s4,28(sp) + 45f4: 82818493 addi s1,gp,-2008 # 10000780 + 45f8: 82c18913 addi s2,gp,-2004 # 10000784 + 45fc: 0fffcb97 auipc s7,0xfffc + 4600: fbcb8b93 addi s7,s7,-68 # 100005b8 + 4604: 02000993 li s3,32 + 4608: 001c0b13 addi s6,s8,1 + 460c: 02050863 beqz a0,463c + 4610: 02500793 li a5,37 + 4614: 06f50c63 beq a0,a5,468c + 4618: 0004aa83 lw s5,0(s1) + 461c: 040a8e63 beqz s5,4678 + 4620: 001a8413 addi s0,s5,1 + 4624: 8281a423 sw s0,-2008(gp) # 10000780 + 4628: 00aa8023 sb a0,0(s5) + 462c: 000b0c13 mv s8,s6 + 4630: 000c4503 lbu a0,0(s8) + 4634: 001c0b13 addi s6,s8,1 + 4638: fc051ce3 bnez a0,4610 + 463c: 06c12083 lw ra,108(sp) + 4640: 06812403 lw s0,104(sp) + 4644: 06412483 lw s1,100(sp) + 4648: 06012903 lw s2,96(sp) + 464c: 05c12983 lw s3,92(sp) + 4650: 05812a03 lw s4,88(sp) + 4654: 05412a83 lw s5,84(sp) + 4658: 05012b03 lw s6,80(sp) + 465c: 04c12b83 lw s7,76(sp) + 4660: 04812c03 lw s8,72(sp) + 4664: 04412c83 lw s9,68(sp) + 4668: 04012d03 lw s10,64(sp) + 466c: 03c12d83 lw s11,60(sp) + 4670: 09010113 addi sp,sp,144 + 4674: 00008067 ret + 4678: 00092d03 lw s10,0(s2) + 467c: fa0d08e3 beqz s10,462c + 4680: 000d00e7 jalr s10 + 4684: 000b0c13 mv s8,s6 + 4688: fa9ff06f j 4630 + 468c: 001c4503 lbu a0,1(s8) + 4690: 03000093 li ra,48 + 4694: 5c150ce3 beq a0,ra,546c + 4698: 02d00293 li t0,45 + 469c: 5e5500e3 beq a0,t0,547c + 46a0: 002c0b13 addi s6,s8,2 + 46a4: 00000c93 li s9,0 + 46a8: fd050313 addi t1,a0,-48 + 46ac: 0ff37393 andi t2,t1,255 + 46b0: 00900713 li a4,9 + 46b4: 00000a93 li s5,0 + 46b8: 02776663 bltu a4,t2,46e4 + 46bc: 002a9413 slli s0,s5,0x2 + 46c0: 01540ab3 add s5,s0,s5 + 46c4: 001a9593 slli a1,s5,0x1 + 46c8: 001b0b13 addi s6,s6,1 + 46cc: 00a58633 add a2,a1,a0 + 46d0: fffb4503 lbu a0,-1(s6) + 46d4: fd060a93 addi s5,a2,-48 + 46d8: fd050693 addi a3,a0,-48 + 46dc: 0ff6f813 andi a6,a3,255 + 46e0: fd077ee3 bgeu a4,a6,46bc + 46e4: 0df57893 andi a7,a0,223 + 46e8: 04c00c13 li s8,76 + 46ec: 05888063 beq a7,s8,472c + 46f0: f40506e3 beqz a0,463c + 46f4: 06000d13 li s10,96 + 46f8: 00050e13 mv t3,a0 + 46fc: 00ad7663 bgeu s10,a0,4708 + 4700: fe050d93 addi s11,a0,-32 + 4704: 0ffdfe13 andi t3,s11,255 + 4708: fbee0e93 addi t4,t3,-66 + 470c: 0ffeff13 andi t5,t4,255 + 4710: 01600f93 li t6,22 + 4714: f1efe2e3 bltu t6,t5,4618 + 4718: 002f1793 slli a5,t5,0x2 + 471c: 017780b3 add ra,a5,s7 + 4720: 0000a283 lw t0,0(ra) + 4724: 01728333 add t1,t0,s7 + 4728: 00030067 jr t1 # 456c + 472c: 000b4503 lbu a0,0(s6) + 4730: 004cec93 ori s9,s9,4 + 4734: 001b0b13 addi s6,s6,1 + 4738: fb9ff06f j 46f0 + 473c: 004cf593 andi a1,s9,4 + 4740: 004a0d13 addi s10,s4,4 + 4744: 000a2703 lw a4,0(s4) + 4748: 620586e3 beqz a1,5574 + 474c: 04400813 li a6,68 + 4750: 00070293 mv t0,a4 + 4754: 010e0463 beq t3,a6,475c + 4758: 5ec0106f j 5d44 + 475c: 620744e3 bltz a4,5584 + 4760: 000d0a13 mv s4,s10 + 4764: 00000593 li a1,0 + 4768: 00a00393 li t2,10 + 476c: 07800e93 li t4,120 + 4770: 00700f13 li t5,7 + 4774: 01d51463 bne a0,t4,477c + 4778: 02700f13 li t5,39 + 477c: 0272f533 remu a0,t0,t2 + 4780: 00900f93 li t6,9 + 4784: 0ff57093 andi ra,a0,255 + 4788: 0272d7b3 divu a5,t0,t2 + 478c: 00aff663 bgeu t6,a0,4798 + 4790: 001f0333 add t1,t5,ra + 4794: 0ff37093 andi ra,t1,255 + 4798: 03008c13 addi s8,ra,48 + 479c: 03810023 sb s8,32(sp) + 47a0: 2c72e8e3 bltu t0,t2,5270 + 47a4: 00900d13 li s10,9 + 47a8: 0277f2b3 remu t0,a5,t2 + 47ac: 0277d733 divu a4,a5,t2 + 47b0: 0ff2f813 andi a6,t0,255 + 47b4: 005d7663 bgeu s10,t0,47c0 + 47b8: 01e80633 add a2,a6,t5 + 47bc: 0ff67813 andi a6,a2,255 + 47c0: 03080893 addi a7,a6,48 + 47c4: 031100a3 sb a7,33(sp) + 47c8: 0077f463 bgeu a5,t2,47d0 + 47cc: 4440106f j 5c10 + 47d0: 00900d93 li s11,9 + 47d4: 02777e33 remu t3,a4,t2 + 47d8: 02775eb3 divu t4,a4,t2 + 47dc: 0ffe7513 andi a0,t3,255 + 47e0: 01cdf663 bgeu s11,t3,47ec + 47e4: 01e506b3 add a3,a0,t5 + 47e8: 0ff6f513 andi a0,a3,255 + 47ec: 03050f93 addi t6,a0,48 + 47f0: 03f10123 sb t6,34(sp) + 47f4: 00777463 bgeu a4,t2,47fc + 47f8: 4240106f j 5c1c + 47fc: 00900793 li a5,9 + 4800: 027ef333 remu t1,t4,t2 + 4804: 027ed0b3 divu ra,t4,t2 + 4808: 0ff37c13 andi s8,t1,255 + 480c: 0067f663 bgeu a5,t1,4818 + 4810: 01ec0433 add s0,s8,t5 + 4814: 0ff47c13 andi s8,s0,255 + 4818: 030c0d13 addi s10,s8,48 + 481c: 03a101a3 sb s10,35(sp) + 4820: 007ef463 bgeu t4,t2,4828 + 4824: 4040106f j 5c28 + 4828: 00900293 li t0,9 + 482c: 0270f733 remu a4,ra,t2 + 4830: 0270d833 divu a6,ra,t2 + 4834: 0ff77893 andi a7,a4,255 + 4838: 00e2f663 bgeu t0,a4,4844 + 483c: 01e88633 add a2,a7,t5 + 4840: 0ff67893 andi a7,a2,255 + 4844: 03088d93 addi s11,a7,48 + 4848: 03b10223 sb s11,36(sp) + 484c: 0070f463 bgeu ra,t2,4854 + 4850: 3e40106f j 5c34 + 4854: 00900e13 li t3,9 + 4858: 02787eb3 remu t4,a6,t2 + 485c: 02785533 divu a0,a6,t2 + 4860: 0ffeff93 andi t6,t4,255 + 4864: 01de7663 bgeu t3,t4,4870 + 4868: 01ef86b3 add a3,t6,t5 + 486c: 0ff6ff93 andi t6,a3,255 + 4870: 030f8793 addi a5,t6,48 + 4874: 02f102a3 sb a5,37(sp) + 4878: 00787463 bgeu a6,t2,4880 + 487c: 3c40106f j 5c40 + 4880: 00900313 li t1,9 + 4884: 027570b3 remu ra,a0,t2 + 4888: 02755433 divu s0,a0,t2 + 488c: 0ff0fd13 andi s10,ra,255 + 4890: 00137663 bgeu t1,ra,489c + 4894: 01ed0c33 add s8,s10,t5 + 4898: 0ffc7d13 andi s10,s8,255 + 489c: 030d0293 addi t0,s10,48 + 48a0: 02510323 sb t0,38(sp) + 48a4: 00757463 bgeu a0,t2,48ac + 48a8: 3a40106f j 5c4c + 48ac: 00900713 li a4,9 + 48b0: 02747833 remu a6,s0,t2 + 48b4: 02745db3 divu s11,s0,t2 + 48b8: 0ff87893 andi a7,a6,255 + 48bc: 01077663 bgeu a4,a6,48c8 + 48c0: 011f0633 add a2,t5,a7 + 48c4: 0ff67893 andi a7,a2,255 + 48c8: 03088e13 addi t3,a7,48 + 48cc: 03c103a3 sb t3,39(sp) + 48d0: 00747463 bgeu s0,t2,48d8 + 48d4: 39c0106f j 5c70 + 48d8: 00900e93 li t4,9 + 48dc: 027df533 remu a0,s11,t2 + 48e0: 027ddfb3 divu t6,s11,t2 + 48e4: 0ff57793 andi a5,a0,255 + 48e8: 00aef663 bgeu t4,a0,48f4 + 48ec: 00ff06b3 add a3,t5,a5 + 48f0: 0ff6f793 andi a5,a3,255 + 48f4: 03078313 addi t1,a5,48 + 48f8: 02610423 sb t1,40(sp) + 48fc: 007df463 bgeu s11,t2,4904 + 4900: 37c0106f j 5c7c + 4904: 00900093 li ra,9 + 4908: 027ff433 remu s0,t6,t2 + 490c: 027fdc33 divu s8,t6,t2 + 4910: 0ff47293 andi t0,s0,255 + 4914: 0080f663 bgeu ra,s0,4920 + 4918: 005f0d33 add s10,t5,t0 + 491c: 0ffd7293 andi t0,s10,255 + 4920: 03028713 addi a4,t0,48 + 4924: 02e104a3 sb a4,41(sp) + 4928: 007ff463 bgeu t6,t2,4930 + 492c: 3700106f j 5c9c + 4930: 00900d93 li s11,9 + 4934: 027c7633 remu a2,s8,t2 + 4938: 027c5833 divu a6,s8,t2 + 493c: 0ff67e13 andi t3,a2,255 + 4940: 00cdf663 bgeu s11,a2,494c + 4944: 01cf08b3 add a7,t5,t3 + 4948: 0ff8fe13 andi t3,a7,255 + 494c: 030e0e93 addi t4,t3,48 + 4950: 03d10523 sb t4,42(sp) + 4954: 007c7463 bgeu s8,t2,495c + 4958: 3500106f j 5ca8 + 495c: 00900f93 li t6,9 + 4960: 027877b3 remu a5,a6,t2 + 4964: 02785533 divu a0,a6,t2 + 4968: 0ff7f313 andi t1,a5,255 + 496c: 00fff663 bgeu t6,a5,4978 + 4970: 006f06b3 add a3,t5,t1 + 4974: 0ff6f313 andi t1,a3,255 + 4978: 03030093 addi ra,t1,48 + 497c: 021105a3 sb ra,43(sp) + 4980: 00787463 bgeu a6,t2,4988 + 4984: 3300106f j 5cb4 + 4988: 00900413 li s0,9 + 498c: 02757c33 remu s8,a0,t2 + 4990: 02755d33 divu s10,a0,t2 + 4994: 0ffc7713 andi a4,s8,255 + 4998: 01847663 bgeu s0,s8,49a4 + 499c: 00ef02b3 add t0,t5,a4 + 49a0: 0ff2f713 andi a4,t0,255 + 49a4: 03070d93 addi s11,a4,48 + 49a8: 03b10623 sb s11,44(sp) + 49ac: 00757463 bgeu a0,t2,49b4 + 49b0: 3100106f j 5cc0 + 49b4: 00900813 li a6,9 + 49b8: 027d7633 remu a2,s10,t2 + 49bc: 027d58b3 divu a7,s10,t2 + 49c0: 0ff67e93 andi t4,a2,255 + 49c4: 00c87663 bgeu a6,a2,49d0 + 49c8: 01df0e33 add t3,t5,t4 + 49cc: 0ffe7e93 andi t4,t3,255 + 49d0: 030e8f93 addi t6,t4,48 + 49d4: 03f106a3 sb t6,45(sp) + 49d8: 007d7463 bgeu s10,t2,49e0 + 49dc: 2f00106f j 5ccc + 49e0: 00900793 li a5,9 + 49e4: 0278f333 remu t1,a7,t2 + 49e8: 0278d533 divu a0,a7,t2 + 49ec: 0ff37093 andi ra,t1,255 + 49f0: 0067f663 bgeu a5,t1,49fc + 49f4: 001f06b3 add a3,t5,ra + 49f8: 0ff6f093 andi ra,a3,255 + 49fc: 03008413 addi s0,ra,48 + 4a00: 02810723 sb s0,46(sp) + 4a04: 0078f463 bgeu a7,t2,4a0c + 4a08: 2e80106f j 5cf0 + 4a0c: 00900c13 li s8,9 + 4a10: 02757d33 remu s10,a0,t2 + 4a14: 0ffd7293 andi t0,s10,255 + 4a18: 01ac7663 bgeu s8,s10,4a24 + 4a1c: 01e28f33 add t5,t0,t5 + 4a20: 0fff7293 andi t0,t5,255 + 4a24: 03028713 addi a4,t0,48 + 4a28: 02e107a3 sb a4,47(sp) + 4a2c: 01000413 li s0,16 + 4a30: 00f00393 li t2,15 + 4a34: 00058c63 beqz a1,4a4c + 4a38: 03010593 addi a1,sp,48 + 4a3c: 00858db3 add s11,a1,s0 + 4a40: 02d00813 li a6,45 + 4a44: ff0d8823 sb a6,-16(s11) + 4a48: 00238413 addi s0,t2,2 + 4a4c: 001cf613 andi a2,s9,1 + 4a50: 40c008b3 neg a7,a2 + 4a54: 408a8e33 sub t3,s5,s0 + 4a58: 0108fe93 andi t4,a7,16 + 4a5c: 007e7313 andi t1,t3,7 + 4a60: 020e8c13 addi s8,t4,32 + 4a64: 002cfc93 andi s9,s9,2 + 4a68: 0004a783 lw a5,0(s1) + 4a6c: 00040d93 mv s11,s0 + 4a70: 0e030863 beqz t1,4b60 + 4a74: 00140d13 addi s10,s0,1 + 4a78: 1a0c9063 bnez s9,4c18 + 4a7c: 335470e3 bgeu s0,s5,559c + 4a80: 3e0788e3 beqz a5,5670 + 4a84: 00178513 addi a0,a5,1 + 4a88: 01878023 sb s8,0(a5) + 4a8c: 82a1a423 sw a0,-2008(gp) # 10000780 + 4a90: 00050793 mv a5,a0 + 4a94: 00100693 li a3,1 + 4a98: 000d0d93 mv s11,s10 + 4a9c: 0cd30263 beq t1,a3,4b60 + 4aa0: 00200093 li ra,2 + 4aa4: 0a130263 beq t1,ra,4b48 + 4aa8: 00300393 li t2,3 + 4aac: 08730263 beq t1,t2,4b30 + 4ab0: 00400f13 li t5,4 + 4ab4: 07e30263 beq t1,t5,4b18 + 4ab8: 00500293 li t0,5 + 4abc: 04530263 beq t1,t0,4b00 + 4ac0: 00600713 li a4,6 + 4ac4: 02e30063 beq t1,a4,4ae4 + 4ac8: 001d0d93 addi s11,s10,1 + 4acc: 00079463 bnez a5,4ad4 + 4ad0: 0240106f j 5af4 + 4ad4: 00178813 addi a6,a5,1 + 4ad8: 01878023 sb s8,0(a5) + 4adc: 8301a423 sw a6,-2008(gp) # 10000780 + 4ae0: 00080793 mv a5,a6 + 4ae4: 001d8d93 addi s11,s11,1 + 4ae8: 00079463 bnez a5,4af0 + 4aec: 0f00106f j 5bdc + 4af0: 00178893 addi a7,a5,1 + 4af4: 01878023 sb s8,0(a5) + 4af8: 8311a423 sw a7,-2008(gp) # 10000780 + 4afc: 00088793 mv a5,a7 + 4b00: 001d8d93 addi s11,s11,1 + 4b04: 64078ee3 beqz a5,5960 + 4b08: 00178e93 addi t4,a5,1 + 4b0c: 01878023 sb s8,0(a5) + 4b10: 83d1a423 sw t4,-2008(gp) # 10000780 + 4b14: 000e8793 mv a5,t4 + 4b18: 001d8d93 addi s11,s11,1 + 4b1c: 5c0786e3 beqz a5,58e8 + 4b20: 00178f93 addi t6,a5,1 + 4b24: 01878023 sb s8,0(a5) + 4b28: 83f1a423 sw t6,-2008(gp) # 10000780 + 4b2c: 000f8793 mv a5,t6 + 4b30: 001d8d93 addi s11,s11,1 + 4b34: 52078ee3 beqz a5,5870 + 4b38: 00178513 addi a0,a5,1 + 4b3c: 01878023 sb s8,0(a5) + 4b40: 82a1a423 sw a0,-2008(gp) # 10000780 + 4b44: 00050793 mv a5,a0 + 4b48: 001d8d93 addi s11,s11,1 + 4b4c: 4e0784e3 beqz a5,5834 + 4b50: 00178093 addi ra,a5,1 + 4b54: 01878023 sb s8,0(a5) + 4b58: 8211a423 sw ra,-2008(gp) # 10000780 + 4b5c: 00008793 mv a5,ra + 4b60: 001d8d13 addi s10,s11,1 + 4b64: 0a0c9a63 bnez s9,4c18 + 4b68: 235dfae3 bgeu s11,s5,559c + 4b6c: 340784e3 beqz a5,56b4 + 4b70: 00178813 addi a6,a5,1 + 4b74: 01878023 sb s8,0(a5) + 4b78: 8301a423 sw a6,-2008(gp) # 10000780 + 4b7c: 00080793 mv a5,a6 + 4b80: 340786e3 beqz a5,56cc + 4b84: 00178293 addi t0,a5,1 + 4b88: 01878023 sb s8,0(a5) + 4b8c: 8251a423 sw t0,-2008(gp) # 10000780 + 4b90: 00028793 mv a5,t0 + 4b94: 340788e3 beqz a5,56e4 + 4b98: 00178893 addi a7,a5,1 + 4b9c: 01878023 sb s8,0(a5) + 4ba0: 8311a423 sw a7,-2008(gp) # 10000780 + 4ba4: 00088793 mv a5,a7 + 4ba8: 34078ae3 beqz a5,56fc + 4bac: 00178e93 addi t4,a5,1 + 4bb0: 01878023 sb s8,0(a5) + 4bb4: 83d1a423 sw t4,-2008(gp) # 10000780 + 4bb8: 000e8793 mv a5,t4 + 4bbc: 34078ce3 beqz a5,5714 + 4bc0: 00178313 addi t1,a5,1 + 4bc4: 01878023 sb s8,0(a5) + 4bc8: 8261a423 sw t1,-2008(gp) # 10000780 + 4bcc: 00030793 mv a5,t1 + 4bd0: 34078ee3 beqz a5,572c + 4bd4: 00178693 addi a3,a5,1 + 4bd8: 01878023 sb s8,0(a5) + 4bdc: 82d1a423 sw a3,-2008(gp) # 10000780 + 4be0: 00068793 mv a5,a3 + 4be4: 360780e3 beqz a5,5744 + 4be8: 00178093 addi ra,a5,1 + 4bec: 01878023 sb s8,0(a5) + 4bf0: 8211a423 sw ra,-2008(gp) # 10000780 + 4bf4: 00008793 mv a5,ra + 4bf8: 360782e3 beqz a5,575c + 4bfc: 00178513 addi a0,a5,1 + 4c00: 01878023 sb s8,0(a5) + 4c04: 82a1a423 sw a0,-2008(gp) # 10000780 + 4c08: 00050793 mv a5,a0 + 4c0c: 007d0d93 addi s11,s10,7 + 4c10: 001d8d13 addi s10,s11,1 + 4c14: f40c8ae3 beqz s9,4b68 + 4c18: fff40c13 addi s8,s0,-1 + 4c1c: 03010c93 addi s9,sp,48 + 4c20: 018c83b3 add t2,s9,s8 + 4c24: ff03c503 lbu a0,-16(t2) + 4c28: 180786e3 beqz a5,55b4 + 4c2c: 00178f13 addi t5,a5,1 + 4c30: 83e1a423 sw t5,-2008(gp) # 10000780 + 4c34: 00a78023 sb a0,0(a5) + 4c38: 240c0663 beqz s8,4e84 + 4c3c: 0004a283 lw t0,0(s1) + 4c40: ffe40d13 addi s10,s0,-2 + 4c44: 03010713 addi a4,sp,48 + 4c48: 01a705b3 add a1,a4,s10 + 4c4c: ff05c503 lbu a0,-16(a1) + 4c50: 24028ae3 beqz t0,56a4 + 4c54: 00128e13 addi t3,t0,1 + 4c58: 83c1a423 sw t3,-2008(gp) # 10000780 + 4c5c: 00a28023 sb a0,0(t0) + 4c60: 220d0263 beqz s10,4e84 + 4c64: 0004ae83 lw t4,0(s1) + 4c68: ffd40413 addi s0,s0,-3 + 4c6c: 03010f93 addi t6,sp,48 + 4c70: 008f8333 add t1,t6,s0 + 4c74: ff034503 lbu a0,-16(t1) + 4c78: 300e8ae3 beqz t4,578c + 4c7c: 001e8c93 addi s9,t4,1 + 4c80: 8391a423 sw s9,-2008(gp) # 10000780 + 4c84: 00ae8023 sb a0,0(t4) + 4c88: 1e040e63 beqz s0,4e84 + 4c8c: 0004a383 lw t2,0(s1) + 4c90: fff40c13 addi s8,s0,-1 + 4c94: 03010793 addi a5,sp,48 + 4c98: 01878f33 add t5,a5,s8 + 4c9c: ff0f4503 lbu a0,-16(t5) + 4ca0: 300388e3 beqz t2,57b0 + 4ca4: 00138593 addi a1,t2,1 + 4ca8: 82b1a423 sw a1,-2008(gp) # 10000780 + 4cac: 00a38023 sb a0,0(t2) + 4cb0: 1c0c0a63 beqz s8,4e84 + 4cb4: 0004a803 lw a6,0(s1) + 4cb8: fffc0413 addi s0,s8,-1 + 4cbc: 03010613 addi a2,sp,48 + 4cc0: 008608b3 add a7,a2,s0 + 4cc4: ff08c503 lbu a0,-16(a7) + 4cc8: 320802e3 beqz a6,57ec + 4ccc: 00180313 addi t1,a6,1 + 4cd0: 8261a423 sw t1,-2008(gp) # 10000780 + 4cd4: 00a80023 sb a0,0(a6) + 4cd8: 1a040663 beqz s0,4e84 + 4cdc: 0004a083 lw ra,0(s1) + 4ce0: fff40c13 addi s8,s0,-1 + 4ce4: 03010693 addi a3,sp,48 + 4ce8: 01868533 add a0,a3,s8 + 4cec: ff054503 lbu a0,-16(a0) + 4cf0: 320080e3 beqz ra,5810 + 4cf4: 00108f13 addi t5,ra,1 + 4cf8: 83e1a423 sw t5,-2008(gp) # 10000780 + 4cfc: 00a08023 sb a0,0(ra) + 4d00: 180c0263 beqz s8,4e84 + 4d04: 0004a403 lw s0,0(s1) + 4d08: fffc0d13 addi s10,s8,-1 + 4d0c: 03010293 addi t0,sp,48 + 4d10: 01a28733 add a4,t0,s10 + 4d14: ff074503 lbu a0,-16(a4) + 4d18: 340404e3 beqz s0,5860 + 4d1c: 00140893 addi a7,s0,1 + 4d20: 8311a423 sw a7,-2008(gp) # 10000780 + 4d24: 00a40023 sb a0,0(s0) + 4d28: 140d0e63 beqz s10,4e84 + 4d2c: 0004ae03 lw t3,0(s1) + 4d30: fffd0c13 addi s8,s10,-1 + 4d34: 03010e93 addi t4,sp,48 + 4d38: 018e8fb3 add t6,t4,s8 + 4d3c: ff0fc503 lbu a0,-16(t6) + 4d40: 360e0ae3 beqz t3,58b4 + 4d44: 001e0d13 addi s10,t3,1 + 4d48: 83a1a423 sw s10,-2008(gp) # 10000780 + 4d4c: 00ae0023 sb a0,0(t3) + 4d50: 120c0a63 beqz s8,4e84 + 4d54: 0004a383 lw t2,0(s1) + 4d58: 03010513 addi a0,sp,48 + 4d5c: fffc0c93 addi s9,s8,-1 + 4d60: 019507b3 add a5,a0,s9 + 4d64: ff07c503 lbu a0,-16(a5) + 4d68: 360388e3 beqz t2,58d8 + 4d6c: 00138593 addi a1,t2,1 + 4d70: 82b1a423 sw a1,-2008(gp) # 10000780 + 4d74: 00a38023 sb a0,0(t2) + 4d78: 100c8663 beqz s9,4e84 + 4d7c: 0004ac03 lw s8,0(s1) + 4d80: fffc8413 addi s0,s9,-1 + 4d84: 03010813 addi a6,sp,48 + 4d88: 00880633 add a2,a6,s0 + 4d8c: ff064503 lbu a0,-16(a2) + 4d90: 380c02e3 beqz s8,5914 + 4d94: 001c0f93 addi t6,s8,1 + 4d98: 83f1a423 sw t6,-2008(gp) # 10000780 + 4d9c: 00ac0023 sb a0,0(s8) + 4da0: 0e040263 beqz s0,4e84 + 4da4: 0004a303 lw t1,0(s1) + 4da8: fff40c93 addi s9,s0,-1 + 4dac: 03010093 addi ra,sp,48 + 4db0: 019086b3 add a3,ra,s9 + 4db4: ff06c503 lbu a0,-16(a3) + 4db8: 38030ce3 beqz t1,5950 + 4dbc: 00130793 addi a5,t1,1 + 4dc0: 82f1a423 sw a5,-2008(gp) # 10000780 + 4dc4: 00a30023 sb a0,0(t1) + 4dc8: 0a0c8e63 beqz s9,4e84 + 4dcc: 0004af03 lw t5,0(s1) + 4dd0: fffc8413 addi s0,s9,-1 + 4dd4: 03010293 addi t0,sp,48 + 4dd8: 00828733 add a4,t0,s0 + 4ddc: ff074503 lbu a0,-16(a4) + 4de0: 3a0f06e3 beqz t5,598c + 4de4: 001f0893 addi a7,t5,1 + 4de8: 8311a423 sw a7,-2008(gp) # 10000780 + 4dec: 00af0023 sb a0,0(t5) + 4df0: 08040a63 beqz s0,4e84 + 4df4: 0004ac83 lw s9,0(s1) + 4df8: fff40c13 addi s8,s0,-1 + 4dfc: 03010e13 addi t3,sp,48 + 4e00: 018e0eb3 add t4,t3,s8 + 4e04: ff0ec503 lbu a0,-16(t4) + 4e08: 3a0c88e3 beqz s9,59b8 + 4e0c: 001c8413 addi s0,s9,1 + 4e10: 8281a423 sw s0,-2008(gp) # 10000780 + 4e14: 00ac8023 sb a0,0(s9) + 4e18: 060c0663 beqz s8,4e84 + 4e1c: 0004a383 lw t2,0(s1) + 4e20: fffc0d13 addi s10,s8,-1 + 4e24: 03010693 addi a3,sp,48 + 4e28: 01a68533 add a0,a3,s10 + 4e2c: ff054503 lbu a0,-16(a0) + 4e30: 3e038ae3 beqz t2,5a24 + 4e34: 00138293 addi t0,t2,1 + 4e38: 8251a423 sw t0,-2008(gp) # 10000780 + 4e3c: 00a38023 sb a0,0(t2) + 4e40: 040d0263 beqz s10,4e84 + 4e44: 0004a583 lw a1,0(s1) + 4e48: fffd0c13 addi s8,s10,-1 + 4e4c: 03010713 addi a4,sp,48 + 4e50: 01870cb3 add s9,a4,s8 + 4e54: ff0cc503 lbu a0,-16(s9) + 4e58: 500588e3 beqz a1,5b68 + 4e5c: 00158613 addi a2,a1,1 + 4e60: 82c1a423 sw a2,-2008(gp) # 10000780 + 4e64: 00a58023 sb a0,0(a1) + 4e68: 000c0e63 beqz s8,4e84 + 4e6c: 0004a883 lw a7,0(s1) + 4e70: fefcc503 lbu a0,-17(s9) + 4e74: 460888e3 beqz a7,5ae4 + 4e78: 00188e93 addi t4,a7,1 + 4e7c: 83d1a423 sw t4,-2008(gp) # 10000780 + 4e80: 00a88023 sb a0,0(a7) + 4e84: 41ba8fb3 sub t6,s5,s11 + 4e88: 007ffd13 andi s10,t6,7 + 4e8c: 0e0d0063 beqz s10,4f6c + 4e90: f95dfe63 bgeu s11,s5,462c + 4e94: 0004a303 lw t1,0(s1) + 4e98: 7e030c63 beqz t1,5690 + 4e9c: 00130093 addi ra,t1,1 + 4ea0: 8211a423 sw ra,-2008(gp) # 10000780 + 4ea4: 01330023 sb s3,0(t1) + 4ea8: 00100393 li t2,1 + 4eac: 001d8d93 addi s11,s11,1 + 4eb0: 0a7d0e63 beq s10,t2,4f6c + 4eb4: 00200693 li a3,2 + 4eb8: 08dd0e63 beq s10,a3,4f54 + 4ebc: 00300513 li a0,3 + 4ec0: 06ad0e63 beq s10,a0,4f3c + 4ec4: 00400793 li a5,4 + 4ec8: 04fd0e63 beq s10,a5,4f24 + 4ecc: 00500c13 li s8,5 + 4ed0: 038d0e63 beq s10,s8,4f0c + 4ed4: 00600f13 li t5,6 + 4ed8: 01ed0e63 beq s10,t5,4ef4 + 4edc: 0004ac83 lw s9,0(s1) + 4ee0: 420c88e3 beqz s9,5b10 + 4ee4: 001c8293 addi t0,s9,1 + 4ee8: 8251a423 sw t0,-2008(gp) # 10000780 + 4eec: 013c8023 sb s3,0(s9) + 4ef0: 001d8d93 addi s11,s11,1 + 4ef4: 0004a803 lw a6,0(s1) + 4ef8: 300800e3 beqz a6,59f8 + 4efc: 00180613 addi a2,a6,1 + 4f00: 82c1a423 sw a2,-2008(gp) # 10000780 + 4f04: 01380023 sb s3,0(a6) + 4f08: 001d8d93 addi s11,s11,1 + 4f0c: 0004a883 lw a7,0(s1) + 4f10: 20088ae3 beqz a7,5924 + 4f14: 00188e93 addi t4,a7,1 + 4f18: 83d1a423 sw t4,-2008(gp) # 10000780 + 4f1c: 01388023 sb s3,0(a7) + 4f20: 001d8d93 addi s11,s11,1 + 4f24: 0004af83 lw t6,0(s1) + 4f28: 160f80e3 beqz t6,5888 + 4f2c: 001f8313 addi t1,t6,1 + 4f30: 8261a423 sw t1,-2008(gp) # 10000780 + 4f34: 013f8023 sb s3,0(t6) + 4f38: 001d8d93 addi s11,s11,1 + 4f3c: 0004a403 lw s0,0(s1) + 4f40: 0e0400e3 beqz s0,5820 + 4f44: 00140093 addi ra,s0,1 + 4f48: 8211a423 sw ra,-2008(gp) # 10000780 + 4f4c: 01340023 sb s3,0(s0) + 4f50: 001d8d93 addi s11,s11,1 + 4f54: 0004a503 lw a0,0(s1) + 4f58: 060504e3 beqz a0,57c0 + 4f5c: 00150793 addi a5,a0,1 + 4f60: 82f1a423 sw a5,-2008(gp) # 10000780 + 4f64: 01350023 sb s3,0(a0) + 4f68: 001d8d93 addi s11,s11,1 + 4f6c: ed5df063 bgeu s11,s5,462c + 4f70: 0004ac03 lw s8,0(s1) + 4f74: 6e0c0463 beqz s8,565c + 4f78: 001c0c93 addi s9,s8,1 + 4f7c: 8391a423 sw s9,-2008(gp) # 10000780 + 4f80: 013c0023 sb s3,0(s8) + 4f84: 0004a583 lw a1,0(s1) + 4f88: 001d8d93 addi s11,s11,1 + 4f8c: 6a058e63 beqz a1,5648 + 4f90: 00158293 addi t0,a1,1 + 4f94: 8251a423 sw t0,-2008(gp) # 10000780 + 4f98: 01358023 sb s3,0(a1) + 4f9c: 0004a603 lw a2,0(s1) + 4fa0: 68060a63 beqz a2,5634 + 4fa4: 00160893 addi a7,a2,1 + 4fa8: 8311a423 sw a7,-2008(gp) # 10000780 + 4fac: 01360023 sb s3,0(a2) + 4fb0: 0004ae03 lw t3,0(s1) + 4fb4: 660e0663 beqz t3,5620 + 4fb8: 001e0f93 addi t6,t3,1 + 4fbc: 83f1a423 sw t6,-2008(gp) # 10000780 + 4fc0: 013e0023 sb s3,0(t3) + 4fc4: 0004ad03 lw s10,0(s1) + 4fc8: 640d0263 beqz s10,560c + 4fcc: 001d0413 addi s0,s10,1 + 4fd0: 8281a423 sw s0,-2008(gp) # 10000780 + 4fd4: 013d0023 sb s3,0(s10) + 4fd8: 0004a383 lw t2,0(s1) + 4fdc: 5e038463 beqz t2,55c4 + 4fe0: 00138093 addi ra,t2,1 + 4fe4: 8211a423 sw ra,-2008(gp) # 10000780 + 4fe8: 01338023 sb s3,0(t2) + 4fec: 0004a503 lw a0,0(s1) + 4ff0: 5e050663 beqz a0,55dc + 4ff4: 00150c13 addi s8,a0,1 + 4ff8: 8381a423 sw s8,-2008(gp) # 10000780 + 4ffc: 01350023 sb s3,0(a0) + 5000: 0004af03 lw t5,0(s1) + 5004: 5e0f0863 beqz t5,55f4 + 5008: 001f0593 addi a1,t5,1 + 500c: 82b1a423 sw a1,-2008(gp) # 10000780 + 5010: 013f0023 sb s3,0(t5) + 5014: 007d8d93 addi s11,s11,7 + 5018: f55ff06f j 4f6c + 501c: 0004a883 lw a7,0(s1) + 5020: 004a0d93 addi s11,s4,4 + 5024: 000a4503 lbu a0,0(s4) + 5028: 46088a63 beqz a7,549c + 502c: 00188693 addi a3,a7,1 + 5030: 82d1a423 sw a3,-2008(gp) # 10000780 + 5034: 00a88023 sb a0,0(a7) + 5038: 000d8a13 mv s4,s11 + 503c: 000b0c13 mv s8,s6 + 5040: df0ff06f j 4630 + 5044: 004cf393 andi t2,s9,4 + 5048: 004a0d13 addi s10,s4,4 + 504c: 000a2283 lw t0,0(s4) + 5050: 44038263 beqz t2,5494 + 5054: 000d0a13 mv s4,s10 + 5058: 00000593 li a1,0 + 505c: 01000393 li t2,16 + 5060: f0cff06f j 476c + 5064: 000a2d03 lw s10,0(s4) + 5068: 00000413 li s0,0 + 506c: 004a0a13 addi s4,s4,4 + 5070: 000d4503 lbu a0,0(s10) + 5074: 00050a63 beqz a0,5088 + 5078: 00140413 addi s0,s0,1 + 507c: 008d0733 add a4,s10,s0 + 5080: 00074603 lbu a2,0(a4) + 5084: fe061ae3 bnez a2,5078 + 5088: 408a86b3 sub a3,s5,s0 + 508c: 0076f893 andi a7,a3,7 + 5090: 002cfc93 andi s9,s9,2 + 5094: 0e088463 beqz a7,517c + 5098: 00140c13 addi s8,s0,1 + 509c: 200c9863 bnez s9,52ac + 50a0: 0f547ee3 bgeu s0,s5,599c + 50a4: 0004a403 lw s0,0(s1) + 50a8: 120400e3 beqz s0,59c8 + 50ac: 00140d93 addi s11,s0,1 + 50b0: 83b1a423 sw s11,-2008(gp) # 10000780 + 50b4: 01340023 sb s3,0(s0) + 50b8: 00100e13 li t3,1 + 50bc: 000c0413 mv s0,s8 + 50c0: 0bc88e63 beq a7,t3,517c + 50c4: 00200e93 li t4,2 + 50c8: 09d88e63 beq a7,t4,5164 + 50cc: 00300f13 li t5,3 + 50d0: 07e88e63 beq a7,t5,514c + 50d4: 00400f93 li t6,4 + 50d8: 05f88e63 beq a7,t6,5134 + 50dc: 00500793 li a5,5 + 50e0: 02f88e63 beq a7,a5,511c + 50e4: 00600093 li ra,6 + 50e8: 00188e63 beq a7,ra,5104 + 50ec: 0004a283 lw t0,0(s1) + 50f0: 001c0413 addi s0,s8,1 + 50f4: 400284e3 beqz t0,5cfc + 50f8: 00128393 addi t2,t0,1 + 50fc: 8271a423 sw t2,-2008(gp) # 10000780 + 5100: 01328023 sb s3,0(t0) + 5104: 0004a583 lw a1,0(s1) + 5108: 00140413 addi s0,s0,1 + 510c: 40058ee3 beqz a1,5d28 + 5110: 00158513 addi a0,a1,1 + 5114: 82a1a423 sw a0,-2008(gp) # 10000780 + 5118: 01358023 sb s3,0(a1) + 511c: 0004a603 lw a2,0(s1) + 5120: 00140413 addi s0,s0,1 + 5124: 360602e3 beqz a2,5c88 + 5128: 00160c13 addi s8,a2,1 + 512c: 8381a423 sw s8,-2008(gp) # 10000780 + 5130: 01360023 sb s3,0(a2) + 5134: 0004a803 lw a6,0(s1) + 5138: 00140413 addi s0,s0,1 + 513c: 200802e3 beqz a6,5b40 + 5140: 00180d93 addi s11,a6,1 + 5144: 83b1a423 sw s11,-2008(gp) # 10000780 + 5148: 01380023 sb s3,0(a6) + 514c: 0004ae03 lw t3,0(s1) + 5150: 00140413 addi s0,s0,1 + 5154: 160e0ae3 beqz t3,5ac8 + 5158: 001e0f13 addi t5,t3,1 + 515c: 83e1a423 sw t5,-2008(gp) # 10000780 + 5160: 013e0023 sb s3,0(t3) + 5164: 0004af83 lw t6,0(s1) + 5168: 00140413 addi s0,s0,1 + 516c: 120f88e3 beqz t6,5a9c + 5170: 001f8093 addi ra,t6,1 + 5174: 8211a423 sw ra,-2008(gp) # 10000780 + 5178: 013f8023 sb s3,0(t6) + 517c: 00140c13 addi s8,s0,1 + 5180: 120c9663 bnez s9,52ac + 5184: 01547ce3 bgeu s0,s5,599c + 5188: 0004a403 lw s0,0(s1) + 518c: 1e0406e3 beqz s0,5b78 + 5190: 00140f93 addi t6,s0,1 + 5194: 83f1a423 sw t6,-2008(gp) # 10000780 + 5198: 01340023 sb s3,0(s0) + 519c: 0004a783 lw a5,0(s1) + 51a0: 1e0788e3 beqz a5,5b90 + 51a4: 00178093 addi ra,a5,1 + 51a8: 8211a423 sw ra,-2008(gp) # 10000780 + 51ac: 01378023 sb s3,0(a5) + 51b0: 0004a283 lw t0,0(s1) + 51b4: 1e028ae3 beqz t0,5ba8 + 51b8: 00128593 addi a1,t0,1 + 51bc: 82b1a423 sw a1,-2008(gp) # 10000780 + 51c0: 01328023 sb s3,0(t0) + 51c4: 0004a503 lw a0,0(s1) + 51c8: 1e050ce3 beqz a0,5bc0 + 51cc: 00150713 addi a4,a0,1 + 51d0: 82e1a423 sw a4,-2008(gp) # 10000780 + 51d4: 01350023 sb s3,0(a0) + 51d8: 0004a803 lw a6,0(s1) + 51dc: 04080ce3 beqz a6,5a34 + 51e0: 00180893 addi a7,a6,1 + 51e4: 8311a423 sw a7,-2008(gp) # 10000780 + 51e8: 01380023 sb s3,0(a6) + 51ec: 0004ad83 lw s11,0(s1) + 51f0: 040d8ee3 beqz s11,5a4c + 51f4: 001d8e93 addi t4,s11,1 + 51f8: 83d1a423 sw t4,-2008(gp) # 10000780 + 51fc: 013d8023 sb s3,0(s11) + 5200: 0004a403 lw s0,0(s1) + 5204: 060400e3 beqz s0,5a64 + 5208: 00140f93 addi t6,s0,1 + 520c: 83f1a423 sw t6,-2008(gp) # 10000780 + 5210: 01340023 sb s3,0(s0) + 5214: 0004a783 lw a5,0(s1) + 5218: 1e0780e3 beqz a5,5bf8 + 521c: 00178093 addi ra,a5,1 + 5220: 8211a423 sw ra,-2008(gp) # 10000780 + 5224: 01378023 sb s3,0(a5) + 5228: 007c0413 addi s0,s8,7 + 522c: f51ff06f j 517c + 5230: 004cfe13 andi t3,s9,4 + 5234: 004a0d13 addi s10,s4,4 + 5238: 000a2283 lw t0,0(s4) + 523c: 240e0863 beqz t3,548c + 5240: 000d0a13 mv s4,s10 + 5244: 00200393 li t2,2 + 5248: 07800413 li s0,120 + 524c: 00700f13 li t5,7 + 5250: 00851463 bne a0,s0,5258 + 5254: 02700f13 li t5,39 + 5258: 0272f0b3 remu ra,t0,t2 + 525c: 00000593 li a1,0 + 5260: 03008c13 addi s8,ra,48 + 5264: 03810023 sb s8,32(sp) + 5268: 0272d7b3 divu a5,t0,t2 + 526c: d272fc63 bgeu t0,t2,47a4 + 5270: 00100413 li s0,1 + 5274: 00000393 li t2,0 + 5278: fbcff06f j 4a34 + 527c: 004cfc13 andi s8,s9,4 + 5280: 004a0d13 addi s10,s4,4 + 5284: 000a2283 lw t0,0(s4) + 5288: 7e0c1863 bnez s8,5a78 + 528c: 00800393 li t2,8 + 5290: 000a2283 lw t0,0(s4) + 5294: 00000593 li a1,0 + 5298: 000d0a13 mv s4,s10 + 529c: cd0ff06f j 476c + 52a0: 00092e03 lw t3,0(s2) + 52a4: 000e0463 beqz t3,52ac + 52a8: 000e00e7 jalr t3 + 52ac: 000d4503 lbu a0,0(s10) + 52b0: 02050263 beqz a0,52d4 + 52b4: 0004ad83 lw s11,0(s1) + 52b8: 001d0d13 addi s10,s10,1 + 52bc: fe0d82e3 beqz s11,52a0 + 52c0: 00ad8023 sb a0,0(s11) + 52c4: 000d4503 lbu a0,0(s10) + 52c8: 001d8e93 addi t4,s11,1 + 52cc: 83d1a423 sw t4,-2008(gp) # 10000780 + 52d0: fe0512e3 bnez a0,52b4 + 52d4: 408a8d33 sub s10,s5,s0 + 52d8: 007d7c93 andi s9,s10,7 + 52dc: 0e0c8063 beqz s9,53bc + 52e0: b5547663 bgeu s0,s5,462c + 52e4: 0004a283 lw t0,0(s1) + 52e8: 6e028e63 beqz t0,59e4 + 52ec: 00128393 addi t2,t0,1 + 52f0: 8271a423 sw t2,-2008(gp) # 10000780 + 52f4: 01328023 sb s3,0(t0) + 52f8: 00100593 li a1,1 + 52fc: 00140413 addi s0,s0,1 + 5300: 0abc8e63 beq s9,a1,53bc + 5304: 00200713 li a4,2 + 5308: 08ec8e63 beq s9,a4,53a4 + 530c: 00300513 li a0,3 + 5310: 06ac8e63 beq s9,a0,538c + 5314: 00400613 li a2,4 + 5318: 04cc8e63 beq s9,a2,5374 + 531c: 00500693 li a3,5 + 5320: 02dc8e63 beq s9,a3,535c + 5324: 00600c13 li s8,6 + 5328: 018c8e63 beq s9,s8,5344 + 532c: 0004a803 lw a6,0(s1) + 5330: 1e0800e3 beqz a6,5d10 + 5334: 00180d93 addi s11,a6,1 + 5338: 83b1a423 sw s11,-2008(gp) # 10000780 + 533c: 01380023 sb s3,0(a6) + 5340: 00140413 addi s0,s0,1 + 5344: 0004ae03 lw t3,0(s1) + 5348: 180e08e3 beqz t3,5cd8 + 534c: 001e0f13 addi t5,t3,1 + 5350: 83e1a423 sw t5,-2008(gp) # 10000780 + 5354: 013e0023 sb s3,0(t3) + 5358: 00140413 addi s0,s0,1 + 535c: 0004af83 lw t6,0(s1) + 5360: 0e0f8ce3 beqz t6,5c58 + 5364: 001f8093 addi ra,t6,1 + 5368: 8211a423 sw ra,-2008(gp) # 10000780 + 536c: 013f8023 sb s3,0(t6) + 5370: 00140413 addi s0,s0,1 + 5374: 0004ad03 lw s10,0(s1) + 5378: 7a0d0863 beqz s10,5b28 + 537c: 001d0293 addi t0,s10,1 + 5380: 8251a423 sw t0,-2008(gp) # 10000780 + 5384: 013d0023 sb s3,0(s10) + 5388: 00140413 addi s0,s0,1 + 538c: 0004a303 lw t1,0(s1) + 5390: 72030063 beqz t1,5ab0 + 5394: 00130593 addi a1,t1,1 + 5398: 82b1a423 sw a1,-2008(gp) # 10000780 + 539c: 01330023 sb s3,0(t1) + 53a0: 00140413 addi s0,s0,1 + 53a4: 0004a503 lw a0,0(s1) + 53a8: 6c050e63 beqz a0,5a84 + 53ac: 00150613 addi a2,a0,1 + 53b0: 82c1a423 sw a2,-2008(gp) # 10000780 + 53b4: 01350023 sb s3,0(a0) + 53b8: 00140413 addi s0,s0,1 + 53bc: a7547863 bgeu s0,s5,462c + 53c0: 0004ac03 lw s8,0(s1) + 53c4: 0e0c0663 beqz s8,54b0 + 53c8: 001c0813 addi a6,s8,1 + 53cc: 8301a423 sw a6,-2008(gp) # 10000780 + 53d0: 013c0023 sb s3,0(s8) + 53d4: 0004a883 lw a7,0(s1) + 53d8: 00140413 addi s0,s0,1 + 53dc: 0e088863 beqz a7,54cc + 53e0: 00188e13 addi t3,a7,1 + 53e4: 83c1a423 sw t3,-2008(gp) # 10000780 + 53e8: 01388023 sb s3,0(a7) + 53ec: 0004ae83 lw t4,0(s1) + 53f0: 0e0e8a63 beqz t4,54e4 + 53f4: 001e8f93 addi t6,t4,1 + 53f8: 83f1a423 sw t6,-2008(gp) # 10000780 + 53fc: 013e8023 sb s3,0(t4) + 5400: 0004a783 lw a5,0(s1) + 5404: 0e078c63 beqz a5,54fc + 5408: 00178093 addi ra,a5,1 + 540c: 8211a423 sw ra,-2008(gp) # 10000780 + 5410: 01378023 sb s3,0(a5) + 5414: 0004ac83 lw s9,0(s1) + 5418: 0e0c8e63 beqz s9,5514 + 541c: 001c8293 addi t0,s9,1 + 5420: 8251a423 sw t0,-2008(gp) # 10000780 + 5424: 013c8023 sb s3,0(s9) + 5428: 0004a383 lw t2,0(s1) + 542c: 10038063 beqz t2,552c + 5430: 00138513 addi a0,t2,1 + 5434: 82a1a423 sw a0,-2008(gp) # 10000780 + 5438: 01338023 sb s3,0(t2) + 543c: 0004a603 lw a2,0(s1) + 5440: 10060263 beqz a2,5544 + 5444: 00160c13 addi s8,a2,1 + 5448: 8381a423 sw s8,-2008(gp) # 10000780 + 544c: 01360023 sb s3,0(a2) + 5450: 0004a803 lw a6,0(s1) + 5454: 10080463 beqz a6,555c + 5458: 00180893 addi a7,a6,1 + 545c: 8311a423 sw a7,-2008(gp) # 10000780 + 5460: 01380023 sb s3,0(a6) + 5464: 00740413 addi s0,s0,7 + 5468: f55ff06f j 53bc + 546c: 003c0b13 addi s6,s8,3 + 5470: 002c4503 lbu a0,2(s8) + 5474: 00100c93 li s9,1 + 5478: a30ff06f j 46a8 + 547c: 002c4503 lbu a0,2(s8) + 5480: 003c0b13 addi s6,s8,3 + 5484: 00200c93 li s9,2 + 5488: a20ff06f j 46a8 + 548c: 00200393 li t2,2 + 5490: e01ff06f j 5290 + 5494: 01000393 li t2,16 + 5498: df9ff06f j 5290 + 549c: 00092d03 lw s10,0(s2) + 54a0: 000d8a13 mv s4,s11 + 54a4: 9c0d1e63 bnez s10,4680 + 54a8: 000b0c13 mv s8,s6 + 54ac: 984ff06f j 4630 + 54b0: 00092683 lw a3,0(s2) + 54b4: f20680e3 beqz a3,53d4 + 54b8: 02000513 li a0,32 + 54bc: 000680e7 jalr a3 + 54c0: 0004a883 lw a7,0(s1) + 54c4: 00140413 addi s0,s0,1 + 54c8: f0089ce3 bnez a7,53e0 + 54cc: 00092d83 lw s11,0(s2) + 54d0: f00d8ee3 beqz s11,53ec + 54d4: 02000513 li a0,32 + 54d8: 000d80e7 jalr s11 + 54dc: 0004ae83 lw t4,0(s1) + 54e0: f00e9ae3 bnez t4,53f4 + 54e4: 00092f03 lw t5,0(s2) + 54e8: f00f0ce3 beqz t5,5400 + 54ec: 02000513 li a0,32 + 54f0: 000f00e7 jalr t5 + 54f4: 0004a783 lw a5,0(s1) + 54f8: f00798e3 bnez a5,5408 + 54fc: 00092d03 lw s10,0(s2) + 5500: f00d0ae3 beqz s10,5414 + 5504: 02000513 li a0,32 + 5508: 000d00e7 jalr s10 + 550c: 0004ac83 lw s9,0(s1) + 5510: f00c96e3 bnez s9,541c + 5514: 00092303 lw t1,0(s2) + 5518: f00308e3 beqz t1,5428 + 551c: 02000513 li a0,32 + 5520: 000300e7 jalr t1 + 5524: 0004a383 lw t2,0(s1) + 5528: f00394e3 bnez t2,5430 + 552c: 00092583 lw a1,0(s2) + 5530: f00586e3 beqz a1,543c + 5534: 02000513 li a0,32 + 5538: 000580e7 jalr a1 + 553c: 0004a603 lw a2,0(s1) + 5540: f00612e3 bnez a2,5444 + 5544: 00092703 lw a4,0(s2) + 5548: f00704e3 beqz a4,5450 + 554c: 02000513 li a0,32 + 5550: 000700e7 jalr a4 + 5554: 0004a803 lw a6,0(s1) + 5558: f00810e3 bnez a6,5458 + 555c: 00092683 lw a3,0(s2) + 5560: f00682e3 beqz a3,5464 + 5564: 02000513 li a0,32 + 5568: 000680e7 jalr a3 + 556c: 00740413 addi s0,s0,7 + 5570: e4dff06f j 53bc + 5574: 04400613 li a2,68 + 5578: 7cce1263 bne t3,a2,5d3c + 557c: 00070293 mv t0,a4 + 5580: 9e075063 bgez a4,4760 + 5584: 40e002b3 neg t0,a4 + 5588: 008cec93 ori s9,s9,8 + 558c: 000d0a13 mv s4,s10 + 5590: 00800593 li a1,8 + 5594: 00a00393 li t2,10 + 5598: 9d4ff06f j 476c + 559c: fff40c13 addi s8,s0,-1 + 55a0: 03010c93 addi s9,sp,48 + 55a4: 018c83b3 add t2,s9,s8 + 55a8: 000d0d93 mv s11,s10 + 55ac: ff03c503 lbu a0,-16(t2) + 55b0: e6079e63 bnez a5,4c2c + 55b4: 00092783 lw a5,0(s2) + 55b8: e8078063 beqz a5,4c38 + 55bc: 000780e7 jalr a5 + 55c0: e78ff06f j 4c38 + 55c4: 00092683 lw a3,0(s2) + 55c8: a20682e3 beqz a3,4fec + 55cc: 02000513 li a0,32 + 55d0: 000680e7 jalr a3 + 55d4: 0004a503 lw a0,0(s1) + 55d8: a0051ee3 bnez a0,4ff4 + 55dc: 00092783 lw a5,0(s2) + 55e0: a20780e3 beqz a5,5000 + 55e4: 02000513 li a0,32 + 55e8: 000780e7 jalr a5 + 55ec: 0004af03 lw t5,0(s1) + 55f0: a00f1ce3 bnez t5,5008 + 55f4: 00092c83 lw s9,0(s2) + 55f8: a00c8ee3 beqz s9,5014 + 55fc: 02000513 li a0,32 + 5600: 000c80e7 jalr s9 + 5604: 007d8d93 addi s11,s11,7 + 5608: 965ff06f j 4f6c + 560c: 00092303 lw t1,0(s2) + 5610: 9c0304e3 beqz t1,4fd8 + 5614: 02000513 li a0,32 + 5618: 000300e7 jalr t1 + 561c: 9bdff06f j 4fd8 + 5620: 00092e83 lw t4,0(s2) + 5624: 9a0e80e3 beqz t4,4fc4 + 5628: 02000513 li a0,32 + 562c: 000e80e7 jalr t4 + 5630: 995ff06f j 4fc4 + 5634: 00092703 lw a4,0(s2) + 5638: 96070ce3 beqz a4,4fb0 + 563c: 02000513 li a0,32 + 5640: 000700e7 jalr a4 + 5644: 96dff06f j 4fb0 + 5648: 00092803 lw a6,0(s2) + 564c: 940808e3 beqz a6,4f9c + 5650: 02000513 li a0,32 + 5654: 000800e7 jalr a6 + 5658: 945ff06f j 4f9c + 565c: 00092f03 lw t5,0(s2) + 5660: 920f02e3 beqz t5,4f84 + 5664: 02000513 li a0,32 + 5668: 000f00e7 jalr t5 + 566c: 919ff06f j 4f84 + 5670: 00092f83 lw t6,0(s2) + 5674: c20f8063 beqz t6,4a94 + 5678: 000c0513 mv a0,s8 + 567c: 00612623 sw t1,12(sp) + 5680: 000f80e7 jalr t6 + 5684: 0004a783 lw a5,0(s1) + 5688: 00c12303 lw t1,12(sp) + 568c: c08ff06f j 4a94 + 5690: 00092403 lw s0,0(s2) + 5694: 80040ae3 beqz s0,4ea8 + 5698: 02000513 li a0,32 + 569c: 000400e7 jalr s0 + 56a0: 809ff06f j 4ea8 + 56a4: 00092803 lw a6,0(s2) + 56a8: 0c080863 beqz a6,5778 + 56ac: 000800e7 jalr a6 + 56b0: db0ff06f j 4c60 + 56b4: 00092d83 lw s11,0(s2) + 56b8: cc0d8463 beqz s11,4b80 + 56bc: 000c0513 mv a0,s8 + 56c0: 000d80e7 jalr s11 + 56c4: 0004a783 lw a5,0(s1) + 56c8: ca079e63 bnez a5,4b84 + 56cc: 00092603 lw a2,0(s2) + 56d0: cc060263 beqz a2,4b94 + 56d4: 000c0513 mv a0,s8 + 56d8: 000600e7 jalr a2 + 56dc: 0004a783 lw a5,0(s1) + 56e0: ca079c63 bnez a5,4b98 + 56e4: 00092703 lw a4,0(s2) + 56e8: cc070063 beqz a4,4ba8 + 56ec: 000c0513 mv a0,s8 + 56f0: 000700e7 jalr a4 + 56f4: 0004a783 lw a5,0(s1) + 56f8: ca079a63 bnez a5,4bac + 56fc: 00092e03 lw t3,0(s2) + 5700: ca0e0e63 beqz t3,4bbc + 5704: 000c0513 mv a0,s8 + 5708: 000e00e7 jalr t3 + 570c: 0004a783 lw a5,0(s1) + 5710: ca079863 bnez a5,4bc0 + 5714: 00092f83 lw t6,0(s2) + 5718: ca0f8c63 beqz t6,4bd0 + 571c: 000c0513 mv a0,s8 + 5720: 000f80e7 jalr t6 + 5724: 0004a783 lw a5,0(s1) + 5728: ca079663 bnez a5,4bd4 + 572c: 00092383 lw t2,0(s2) + 5730: ca038a63 beqz t2,4be4 + 5734: 000c0513 mv a0,s8 + 5738: 000380e7 jalr t2 + 573c: 0004a783 lw a5,0(s1) + 5740: ca079463 bnez a5,4be8 + 5744: 00092f03 lw t5,0(s2) + 5748: ca0f0863 beqz t5,4bf8 + 574c: 000c0513 mv a0,s8 + 5750: 000f00e7 jalr t5 + 5754: 0004a783 lw a5,0(s1) + 5758: ca079263 bnez a5,4bfc + 575c: 00092583 lw a1,0(s2) + 5760: ca058663 beqz a1,4c0c + 5764: 000c0513 mv a0,s8 + 5768: 000580e7 jalr a1 + 576c: 0004a783 lw a5,0(s1) + 5770: 007d0d93 addi s11,s10,7 + 5774: c9cff06f j 4c10 + 5778: f00d0663 beqz s10,4e84 + 577c: ffd40413 addi s0,s0,-3 + 5780: 03010613 addi a2,sp,48 + 5784: 008608b3 add a7,a2,s0 + 5788: ff08c503 lbu a0,-16(a7) + 578c: 00092683 lw a3,0(s2) + 5790: 00068663 beqz a3,579c + 5794: 000680e7 jalr a3 + 5798: cf0ff06f j 4c88 + 579c: ee040463 beqz s0,4e84 + 57a0: 03010513 addi a0,sp,48 + 57a4: fff40c13 addi s8,s0,-1 + 57a8: 018500b3 add ra,a0,s8 + 57ac: ff00c503 lbu a0,-16(ra) + 57b0: 00092d03 lw s10,0(s2) + 57b4: 020d0263 beqz s10,57d8 + 57b8: 000d00e7 jalr s10 + 57bc: cf4ff06f j 4cb0 + 57c0: 00092683 lw a3,0(s2) + 57c4: fa068263 beqz a3,4f68 + 57c8: 02000513 li a0,32 + 57cc: 000680e7 jalr a3 + 57d0: 001d8d93 addi s11,s11,1 + 57d4: f98ff06f j 4f6c + 57d8: ea0c0663 beqz s8,4e84 + 57dc: fffc0413 addi s0,s8,-1 + 57e0: 03010293 addi t0,sp,48 + 57e4: 00828733 add a4,t0,s0 + 57e8: ff074503 lbu a0,-16(a4) + 57ec: 00092e03 lw t3,0(s2) + 57f0: 000e0663 beqz t3,57fc + 57f4: 000e00e7 jalr t3 + 57f8: ce0ff06f j 4cd8 + 57fc: e8040463 beqz s0,4e84 + 5800: fff40c13 addi s8,s0,-1 + 5804: 03010e93 addi t4,sp,48 + 5808: 018e8fb3 add t6,t4,s8 + 580c: ff0fc503 lbu a0,-16(t6) + 5810: 00092c83 lw s9,0(s2) + 5814: 020c8c63 beqz s9,584c + 5818: 000c80e7 jalr s9 + 581c: ce4ff06f j 4d00 + 5820: 00092383 lw t2,0(s2) + 5824: f2038663 beqz t2,4f50 + 5828: 02000513 li a0,32 + 582c: 000380e7 jalr t2 + 5830: f20ff06f j 4f50 + 5834: 00092683 lw a3,0(s2) + 5838: b2068463 beqz a3,4b60 + 583c: 000c0513 mv a0,s8 + 5840: 000680e7 jalr a3 + 5844: 0004a783 lw a5,0(s1) + 5848: b18ff06f j 4b60 + 584c: e20c0c63 beqz s8,4e84 + 5850: fffc0d13 addi s10,s8,-1 + 5854: 03010393 addi t2,sp,48 + 5858: 01a387b3 add a5,t2,s10 + 585c: ff07c503 lbu a0,-16(a5) + 5860: 00092583 lw a1,0(s2) + 5864: 02058e63 beqz a1,58a0 + 5868: 000580e7 jalr a1 + 586c: cbcff06f j 4d28 + 5870: 00092303 lw t1,0(s2) + 5874: ac030a63 beqz t1,4b48 + 5878: 000c0513 mv a0,s8 + 587c: 000300e7 jalr t1 + 5880: 0004a783 lw a5,0(s1) + 5884: ac4ff06f j 4b48 + 5888: 00092d03 lw s10,0(s2) + 588c: ea0d0663 beqz s10,4f38 + 5890: 02000513 li a0,32 + 5894: 000d00e7 jalr s10 + 5898: 001d8d93 addi s11,s11,1 + 589c: ea0ff06f j 4f3c + 58a0: de0d0263 beqz s10,4e84 + 58a4: fffd0c13 addi s8,s10,-1 + 58a8: 03010813 addi a6,sp,48 + 58ac: 01880633 add a2,a6,s8 + 58b0: ff064503 lbu a0,-16(a2) + 58b4: 00092303 lw t1,0(s2) + 58b8: 00030663 beqz t1,58c4 + 58bc: 000300e7 jalr t1 + 58c0: c90ff06f j 4d50 + 58c4: dc0c0063 beqz s8,4e84 + 58c8: fffc0c93 addi s9,s8,-1 + 58cc: 03010093 addi ra,sp,48 + 58d0: 019086b3 add a3,ra,s9 + 58d4: ff06c503 lbu a0,-16(a3) + 58d8: 00092f03 lw t5,0(s2) + 58dc: 020f0263 beqz t5,5900 + 58e0: 000f00e7 jalr t5 + 58e4: c94ff06f j 4d78 + 58e8: 00092d03 lw s10,0(s2) + 58ec: a40d0263 beqz s10,4b30 + 58f0: 000c0513 mv a0,s8 + 58f4: 000d00e7 jalr s10 + 58f8: 0004a783 lw a5,0(s1) + 58fc: a34ff06f j 4b30 + 5900: d80c8263 beqz s9,4e84 + 5904: fffc8413 addi s0,s9,-1 + 5908: 03010293 addi t0,sp,48 + 590c: 00828733 add a4,t0,s0 + 5910: ff074503 lbu a0,-16(a4) + 5914: 00092883 lw a7,0(s2) + 5918: 02088263 beqz a7,593c + 591c: 000880e7 jalr a7 + 5920: c80ff06f j 4da0 + 5924: 00092e03 lw t3,0(s2) + 5928: de0e0c63 beqz t3,4f20 + 592c: 02000513 li a0,32 + 5930: 000e00e7 jalr t3 + 5934: 001d8d93 addi s11,s11,1 + 5938: decff06f j 4f24 + 593c: d4040463 beqz s0,4e84 + 5940: fff40c93 addi s9,s0,-1 + 5944: 03010e13 addi t3,sp,48 + 5948: 019e0eb3 add t4,t3,s9 + 594c: ff0ec503 lbu a0,-16(t4) + 5950: 00092d03 lw s10,0(s2) + 5954: 020d0263 beqz s10,5978 + 5958: 000d00e7 jalr s10 + 595c: c6cff06f j 4dc8 + 5960: 00092e03 lw t3,0(s2) + 5964: 9a0e0a63 beqz t3,4b18 + 5968: 000c0513 mv a0,s8 + 596c: 000e00e7 jalr t3 + 5970: 0004a783 lw a5,0(s1) + 5974: 9a4ff06f j 4b18 + 5978: d00c8663 beqz s9,4e84 + 597c: fffc8413 addi s0,s9,-1 + 5980: 03010393 addi t2,sp,48 + 5984: 00838533 add a0,t2,s0 + 5988: ff054503 lbu a0,-16(a0) + 598c: 00092583 lw a1,0(s2) + 5990: 00058a63 beqz a1,59a4 + 5994: 000580e7 jalr a1 + 5998: c58ff06f j 4df0 + 599c: 000c0413 mv s0,s8 + 59a0: 90dff06f j 52ac + 59a4: ce040063 beqz s0,4e84 + 59a8: fff40c13 addi s8,s0,-1 + 59ac: 03010813 addi a6,sp,48 + 59b0: 01880633 add a2,a6,s8 + 59b4: ff064503 lbu a0,-16(a2) + 59b8: 00092f83 lw t6,0(s2) + 59bc: 040f8a63 beqz t6,5a10 + 59c0: 000f80e7 jalr t6 + 59c4: c54ff06f j 4e18 + 59c8: 00092803 lw a6,0(s2) + 59cc: ee080663 beqz a6,50b8 + 59d0: 02000513 li a0,32 + 59d4: 01112623 sw a7,12(sp) + 59d8: 000800e7 jalr a6 + 59dc: 00c12883 lw a7,12(sp) + 59e0: ed8ff06f j 50b8 + 59e4: 00092303 lw t1,0(s2) + 59e8: 900308e3 beqz t1,52f8 + 59ec: 02000513 li a0,32 + 59f0: 000300e7 jalr t1 + 59f4: 905ff06f j 52f8 + 59f8: 00092703 lw a4,0(s2) + 59fc: d0070663 beqz a4,4f08 + 5a00: 02000513 li a0,32 + 5a04: 000700e7 jalr a4 + 5a08: 001d8d93 addi s11,s11,1 + 5a0c: d00ff06f j 4f0c + 5a10: c60c0a63 beqz s8,4e84 + 5a14: fffc0d13 addi s10,s8,-1 + 5a18: 03010313 addi t1,sp,48 + 5a1c: 01a300b3 add ra,t1,s10 + 5a20: ff00c503 lbu a0,-16(ra) + 5a24: 00092783 lw a5,0(s2) + 5a28: 12078663 beqz a5,5b54 + 5a2c: 000780e7 jalr a5 + 5a30: c10ff06f j 4e40 + 5a34: 00092683 lw a3,0(s2) + 5a38: fa068a63 beqz a3,51ec + 5a3c: 02000513 li a0,32 + 5a40: 000680e7 jalr a3 + 5a44: 0004ad83 lw s11,0(s1) + 5a48: fa0d9663 bnez s11,51f4 + 5a4c: 00092e03 lw t3,0(s2) + 5a50: fa0e0863 beqz t3,5200 + 5a54: 02000513 li a0,32 + 5a58: 000e00e7 jalr t3 + 5a5c: 0004a403 lw s0,0(s1) + 5a60: fa041463 bnez s0,5208 + 5a64: 00092f03 lw t5,0(s2) + 5a68: fa0f0663 beqz t5,5214 + 5a6c: 02000513 li a0,32 + 5a70: 000f00e7 jalr t5 + 5a74: fa0ff06f j 5214 + 5a78: 000d0a13 mv s4,s10 + 5a7c: 00800393 li t2,8 + 5a80: fc8ff06f j 5248 + 5a84: 00092703 lw a4,0(s2) + 5a88: 920708e3 beqz a4,53b8 + 5a8c: 02000513 li a0,32 + 5a90: 000700e7 jalr a4 + 5a94: 00140413 addi s0,s0,1 + 5a98: 925ff06f j 53bc + 5a9c: 00092783 lw a5,0(s2) + 5aa0: ec078e63 beqz a5,517c + 5aa4: 02000513 li a0,32 + 5aa8: 000780e7 jalr a5 + 5aac: ed0ff06f j 517c + 5ab0: 00092383 lw t2,0(s2) + 5ab4: 8e0386e3 beqz t2,53a0 + 5ab8: 02000513 li a0,32 + 5abc: 000380e7 jalr t2 + 5ac0: 00140413 addi s0,s0,1 + 5ac4: 8e1ff06f j 53a4 + 5ac8: 00092e83 lw t4,0(s2) + 5acc: e80e8c63 beqz t4,5164 + 5ad0: 02000513 li a0,32 + 5ad4: 000e80e7 jalr t4 + 5ad8: e8cff06f j 5164 + 5adc: ba0c0463 beqz s8,4e84 + 5ae0: fefcc503 lbu a0,-17(s9) + 5ae4: 00092e03 lw t3,0(s2) + 5ae8: b80e0e63 beqz t3,4e84 + 5aec: 000e00e7 jalr t3 + 5af0: b94ff06f j 4e84 + 5af4: 00092583 lw a1,0(s2) + 5af8: 00059463 bnez a1,5b00 + 5afc: fe9fe06f j 4ae4 + 5b00: 000c0513 mv a0,s8 + 5b04: 000580e7 jalr a1 + 5b08: 0004a783 lw a5,0(s1) + 5b0c: fd9fe06f j 4ae4 + 5b10: 00092583 lw a1,0(s2) + 5b14: bc058e63 beqz a1,4ef0 + 5b18: 02000513 li a0,32 + 5b1c: 000580e7 jalr a1 + 5b20: 001d8d93 addi s11,s11,1 + 5b24: bd0ff06f j 4ef4 + 5b28: 00092c83 lw s9,0(s2) + 5b2c: 840c8ee3 beqz s9,5388 + 5b30: 02000513 li a0,32 + 5b34: 000c80e7 jalr s9 + 5b38: 00140413 addi s0,s0,1 + 5b3c: 851ff06f j 538c + 5b40: 00092883 lw a7,0(s2) + 5b44: e0088463 beqz a7,514c + 5b48: 02000513 li a0,32 + 5b4c: 000880e7 jalr a7 + 5b50: dfcff06f j 514c + 5b54: b20d0863 beqz s10,4e84 + 5b58: fffd0c13 addi s8,s10,-1 + 5b5c: 03010f13 addi t5,sp,48 + 5b60: 018f0cb3 add s9,t5,s8 + 5b64: ff0cc503 lbu a0,-16(s9) + 5b68: 00092803 lw a6,0(s2) + 5b6c: f60808e3 beqz a6,5adc + 5b70: 000800e7 jalr a6 + 5b74: af4ff06f j 4e68 + 5b78: 00092f03 lw t5,0(s2) + 5b7c: e20f0063 beqz t5,519c + 5b80: 02000513 li a0,32 + 5b84: 000f00e7 jalr t5 + 5b88: 0004a783 lw a5,0(s1) + 5b8c: e0079c63 bnez a5,51a4 + 5b90: 00092303 lw t1,0(s2) + 5b94: e0030e63 beqz t1,51b0 + 5b98: 02000513 li a0,32 + 5b9c: 000300e7 jalr t1 + 5ba0: 0004a283 lw t0,0(s1) + 5ba4: e0029a63 bnez t0,51b8 + 5ba8: 00092383 lw t2,0(s2) + 5bac: e0038c63 beqz t2,51c4 + 5bb0: 02000513 li a0,32 + 5bb4: 000380e7 jalr t2 + 5bb8: 0004a503 lw a0,0(s1) + 5bbc: e0051863 bnez a0,51cc + 5bc0: 00092603 lw a2,0(s2) + 5bc4: e0060a63 beqz a2,51d8 + 5bc8: 02000513 li a0,32 + 5bcc: 000600e7 jalr a2 + 5bd0: 0004a803 lw a6,0(s1) + 5bd4: e0081663 bnez a6,51e0 + 5bd8: e5dff06f j 5a34 + 5bdc: 00092603 lw a2,0(s2) + 5be0: 00061463 bnez a2,5be8 + 5be4: f1dfe06f j 4b00 + 5be8: 000c0513 mv a0,s8 + 5bec: 000600e7 jalr a2 + 5bf0: 0004a783 lw a5,0(s1) + 5bf4: f0dfe06f j 4b00 + 5bf8: 00092303 lw t1,0(s2) + 5bfc: e2030663 beqz t1,5228 + 5c00: 02000513 li a0,32 + 5c04: 000300e7 jalr t1 + 5c08: 007c0413 addi s0,s8,7 + 5c0c: d70ff06f j 517c + 5c10: 00200413 li s0,2 + 5c14: 00100393 li t2,1 + 5c18: e1dfe06f j 4a34 + 5c1c: 00300413 li s0,3 + 5c20: 00200393 li t2,2 + 5c24: e11fe06f j 4a34 + 5c28: 00400413 li s0,4 + 5c2c: 00300393 li t2,3 + 5c30: e05fe06f j 4a34 + 5c34: 00500413 li s0,5 + 5c38: 00400393 li t2,4 + 5c3c: df9fe06f j 4a34 + 5c40: 00600413 li s0,6 + 5c44: 00500393 li t2,5 + 5c48: dedfe06f j 4a34 + 5c4c: 00700413 li s0,7 + 5c50: 00600393 li t2,6 + 5c54: de1fe06f j 4a34 + 5c58: 00092783 lw a5,0(s2) + 5c5c: f0078a63 beqz a5,5370 + 5c60: 02000513 li a0,32 + 5c64: 000780e7 jalr a5 + 5c68: 00140413 addi s0,s0,1 + 5c6c: f08ff06f j 5374 + 5c70: 00800413 li s0,8 + 5c74: 00700393 li t2,7 + 5c78: dbdfe06f j 4a34 + 5c7c: 00900413 li s0,9 + 5c80: 00800393 li t2,8 + 5c84: db1fe06f j 4a34 + 5c88: 00092683 lw a3,0(s2) + 5c8c: ca068463 beqz a3,5134 + 5c90: 02000513 li a0,32 + 5c94: 000680e7 jalr a3 + 5c98: c9cff06f j 5134 + 5c9c: 00a00413 li s0,10 + 5ca0: 00900393 li t2,9 + 5ca4: d91fe06f j 4a34 + 5ca8: 00b00413 li s0,11 + 5cac: 00a00393 li t2,10 + 5cb0: d85fe06f j 4a34 + 5cb4: 00c00413 li s0,12 + 5cb8: 00b00393 li t2,11 + 5cbc: d79fe06f j 4a34 + 5cc0: 00d00413 li s0,13 + 5cc4: 00c00393 li t2,12 + 5cc8: d6dfe06f j 4a34 + 5ccc: 00e00413 li s0,14 + 5cd0: 00d00393 li t2,13 + 5cd4: d61fe06f j 4a34 + 5cd8: 00092e83 lw t4,0(s2) + 5cdc: e60e8e63 beqz t4,5358 + 5ce0: 02000513 li a0,32 + 5ce4: 000e80e7 jalr t4 + 5ce8: 00140413 addi s0,s0,1 + 5cec: e70ff06f j 535c + 5cf0: 00f00413 li s0,15 + 5cf4: 00e00393 li t2,14 + 5cf8: d3dfe06f j 4a34 + 5cfc: 00092303 lw t1,0(s2) + 5d00: c0030263 beqz t1,5104 + 5d04: 02000513 li a0,32 + 5d08: 000300e7 jalr t1 + 5d0c: bf8ff06f j 5104 + 5d10: 00092883 lw a7,0(s2) + 5d14: e2088663 beqz a7,5340 + 5d18: 02000513 li a0,32 + 5d1c: 000880e7 jalr a7 + 5d20: 00140413 addi s0,s0,1 + 5d24: e20ff06f j 5344 + 5d28: 00092703 lw a4,0(s2) + 5d2c: be070863 beqz a4,511c + 5d30: 02000513 li a0,32 + 5d34: 000700e7 jalr a4 + 5d38: be4ff06f j 511c + 5d3c: 00a00393 li t2,10 + 5d40: d50ff06f j 5290 + 5d44: 000d0a13 mv s4,s10 + 5d48: 00a00393 li t2,10 + 5d4c: cfcff06f j 5248 + +00005d50 <__divdf3>: + 5d50: fc010113 addi sp,sp,-64 + 5d54: 0145d793 srli a5,a1,0x14 + 5d58: 02812c23 sw s0,56(sp) + 5d5c: 03212823 sw s2,48(sp) + 5d60: 03512223 sw s5,36(sp) + 5d64: 00050913 mv s2,a0 + 5d68: 00c59413 slli s0,a1,0xc + 5d6c: 02112e23 sw ra,60(sp) + 5d70: 02912a23 sw s1,52(sp) + 5d74: 03312623 sw s3,44(sp) + 5d78: 03412423 sw s4,40(sp) + 5d7c: 03612023 sw s6,32(sp) + 5d80: 01712e23 sw s7,28(sp) + 5d84: 7ff7f513 andi a0,a5,2047 + 5d88: 00c45413 srli s0,s0,0xc + 5d8c: 01f5da93 srli s5,a1,0x1f + 5d90: 16050a63 beqz a0,5f04 <__divdf3+0x1b4> + 5d94: 7ff00793 li a5,2047 + 5d98: 1cf50463 beq a0,a5,5f60 <__divdf3+0x210> + 5d9c: 01d95a13 srli s4,s2,0x1d + 5da0: 00341413 slli s0,s0,0x3 + 5da4: 008a6433 or s0,s4,s0 + 5da8: 00800a37 lui s4,0x800 + 5dac: 01446a33 or s4,s0,s4 + 5db0: 00391b13 slli s6,s2,0x3 + 5db4: c0150493 addi s1,a0,-1023 + 5db8: 00000413 li s0,0 + 5dbc: 00000b93 li s7,0 + 5dc0: 0146d813 srli a6,a3,0x14 + 5dc4: 00c69913 slli s2,a3,0xc + 5dc8: 7ff87813 andi a6,a6,2047 + 5dcc: 00060893 mv a7,a2 + 5dd0: 00c95913 srli s2,s2,0xc + 5dd4: 01f6d993 srli s3,a3,0x1f + 5dd8: 0e080063 beqz a6,5eb8 <__divdf3+0x168> + 5ddc: 7ff00793 li a5,2047 + 5de0: 04f80863 beq a6,a5,5e30 <__divdf3+0xe0> + 5de4: 01d65713 srli a4,a2,0x1d + 5de8: 00391913 slli s2,s2,0x3 + 5dec: 01276933 or s2,a4,s2 + 5df0: c0180813 addi a6,a6,-1023 + 5df4: 008007b7 lui a5,0x800 + 5df8: 00f96733 or a4,s2,a5 + 5dfc: 00361893 slli a7,a2,0x3 + 5e00: 410484b3 sub s1,s1,a6 + 5e04: 00000593 li a1,0 + 5e08: 00f00793 li a5,15 + 5e0c: 013ac833 xor a6,s5,s3 + 5e10: 2487ee63 bltu a5,s0,606c <__divdf3+0x31c> + 5e14: 0fffb797 auipc a5,0xfffb + 5e18: 80078793 addi a5,a5,-2048 # 10000614 + 5e1c: 00241413 slli s0,s0,0x2 + 5e20: 00f40433 add s0,s0,a5 + 5e24: 00042603 lw a2,0(s0) + 5e28: 00f60633 add a2,a2,a5 + 5e2c: 00060067 jr a2 + 5e30: 00c96733 or a4,s2,a2 + 5e34: 80148493 addi s1,s1,-2047 + 5e38: 18071063 bnez a4,5fb8 <__divdf3+0x268> + 5e3c: 00246413 ori s0,s0,2 + 5e40: 00000893 li a7,0 + 5e44: 00200593 li a1,2 + 5e48: fc1ff06f j 5e08 <__divdf3+0xb8> + 5e4c: 7ff00613 li a2,2047 + 5e50: 00000793 li a5,0 + 5e54: 00000713 li a4,0 + 5e58: 00c79793 slli a5,a5,0xc + 5e5c: 03c12083 lw ra,60(sp) + 5e60: 03812403 lw s0,56(sp) + 5e64: 01461613 slli a2,a2,0x14 + 5e68: 00c7d793 srli a5,a5,0xc + 5e6c: 01f81813 slli a6,a6,0x1f + 5e70: 00c7e7b3 or a5,a5,a2 + 5e74: 0107e7b3 or a5,a5,a6 + 5e78: 03412483 lw s1,52(sp) + 5e7c: 03012903 lw s2,48(sp) + 5e80: 02c12983 lw s3,44(sp) + 5e84: 02812a03 lw s4,40(sp) + 5e88: 02412a83 lw s5,36(sp) + 5e8c: 02012b03 lw s6,32(sp) + 5e90: 01c12b83 lw s7,28(sp) + 5e94: 00070513 mv a0,a4 + 5e98: 00078593 mv a1,a5 + 5e9c: 04010113 addi sp,sp,64 + 5ea0: 00008067 ret + 5ea4: 00000813 li a6,0 + 5ea8: 7ff00613 li a2,2047 + 5eac: 000807b7 lui a5,0x80 + 5eb0: 00000713 li a4,0 + 5eb4: fa5ff06f j 5e58 <__divdf3+0x108> + 5eb8: 00c96733 or a4,s2,a2 + 5ebc: 0e070663 beqz a4,5fa8 <__divdf3+0x258> + 5ec0: 3e090e63 beqz s2,62bc <__divdf3+0x56c> + 5ec4: 00090513 mv a0,s2 + 5ec8: 00c12423 sw a2,8(sp) + 5ecc: 748000ef jal ra,6614 <__clzsi2> + 5ed0: 00812603 lw a2,8(sp) + 5ed4: ff550713 addi a4,a0,-11 + 5ed8: 01d00793 li a5,29 + 5edc: ff850693 addi a3,a0,-8 + 5ee0: 40e787b3 sub a5,a5,a4 + 5ee4: 00d91933 sll s2,s2,a3 + 5ee8: 00f657b3 srl a5,a2,a5 + 5eec: 0127e733 or a4,a5,s2 + 5ef0: 00d618b3 sll a7,a2,a3 + 5ef4: 00950533 add a0,a0,s1 + 5ef8: 3f350493 addi s1,a0,1011 + 5efc: 00000593 li a1,0 + 5f00: f09ff06f j 5e08 <__divdf3+0xb8> + 5f04: 01246a33 or s4,s0,s2 + 5f08: 080a0663 beqz s4,5f94 <__divdf3+0x244> + 5f0c: 00d12623 sw a3,12(sp) + 5f10: 00c12423 sw a2,8(sp) + 5f14: 36040c63 beqz s0,628c <__divdf3+0x53c> + 5f18: 00040513 mv a0,s0 + 5f1c: 6f8000ef jal ra,6614 <__clzsi2> + 5f20: 00812603 lw a2,8(sp) + 5f24: 00c12683 lw a3,12(sp) + 5f28: 00050493 mv s1,a0 + 5f2c: ff550713 addi a4,a0,-11 + 5f30: 01d00a13 li s4,29 + 5f34: ff848b13 addi s6,s1,-8 + 5f38: 40ea0a33 sub s4,s4,a4 + 5f3c: 01641433 sll s0,s0,s6 + 5f40: 01495a33 srl s4,s2,s4 + 5f44: 008a6a33 or s4,s4,s0 + 5f48: 01691b33 sll s6,s2,s6 + 5f4c: c0d00513 li a0,-1011 + 5f50: 409504b3 sub s1,a0,s1 + 5f54: 00000413 li s0,0 + 5f58: 00000b93 li s7,0 + 5f5c: e65ff06f j 5dc0 <__divdf3+0x70> + 5f60: 01246a33 or s4,s0,s2 + 5f64: 000a1c63 bnez s4,5f7c <__divdf3+0x22c> + 5f68: 00800413 li s0,8 + 5f6c: 00000b13 li s6,0 + 5f70: 7ff00493 li s1,2047 + 5f74: 00200b93 li s7,2 + 5f78: e49ff06f j 5dc0 <__divdf3+0x70> + 5f7c: 00040a13 mv s4,s0 + 5f80: 00090b13 mv s6,s2 + 5f84: 00c00413 li s0,12 + 5f88: 7ff00493 li s1,2047 + 5f8c: 00300b93 li s7,3 + 5f90: e31ff06f j 5dc0 <__divdf3+0x70> + 5f94: 00400413 li s0,4 + 5f98: 00000b13 li s6,0 + 5f9c: 00000493 li s1,0 + 5fa0: 00100b93 li s7,1 + 5fa4: e1dff06f j 5dc0 <__divdf3+0x70> + 5fa8: 00146413 ori s0,s0,1 + 5fac: 00000893 li a7,0 + 5fb0: 00100593 li a1,1 + 5fb4: e55ff06f j 5e08 <__divdf3+0xb8> + 5fb8: 00346413 ori s0,s0,3 + 5fbc: 00090713 mv a4,s2 + 5fc0: 00300593 li a1,3 + 5fc4: e45ff06f j 5e08 <__divdf3+0xb8> + 5fc8: 3c050463 beqz a0,6390 <__divdf3+0x640> + 5fcc: 00100793 li a5,1 + 5fd0: 40a787b3 sub a5,a5,a0 + 5fd4: 03800693 li a3,56 + 5fd8: 42f6d463 bge a3,a5,6400 <__divdf3+0x6b0> + 5fdc: 00000613 li a2,0 + 5fe0: 00000793 li a5,0 + 5fe4: 00000713 li a4,0 + 5fe8: e71ff06f j 5e58 <__divdf3+0x108> + 5fec: 00098693 mv a3,s3 + 5ff0: 00200793 li a5,2 + 5ff4: 4cf58a63 beq a1,a5,64c8 <__divdf3+0x778> + 5ff8: 00300793 li a5,3 + 5ffc: eaf584e3 beq a1,a5,5ea4 <__divdf3+0x154> + 6000: 00100793 li a5,1 + 6004: 00068813 mv a6,a3 + 6008: fcf58ae3 beq a1,a5,5fdc <__divdf3+0x28c> + 600c: 3ff48513 addi a0,s1,1023 + 6010: faa05ce3 blez a0,5fc8 <__divdf3+0x278> + 6014: 0078f793 andi a5,a7,7 + 6018: 32079e63 bnez a5,6354 <__divdf3+0x604> + 601c: 0038d693 srli a3,a7,0x3 + 6020: 00771793 slli a5,a4,0x7 + 6024: 0007da63 bgez a5,6038 <__divdf3+0x2e8> + 6028: ff0007b7 lui a5,0xff000 + 602c: fff78793 addi a5,a5,-1 # feffffff <_sp+0xeeffcfff> + 6030: 00f77733 and a4,a4,a5 + 6034: 40048513 addi a0,s1,1024 + 6038: 7fe00793 li a5,2046 + 603c: e0a7c8e3 blt a5,a0,5e4c <__divdf3+0xfc> + 6040: 01d71613 slli a2,a4,0x1d + 6044: 00971793 slli a5,a4,0x9 + 6048: 00c7d793 srli a5,a5,0xc + 604c: 00d66733 or a4,a2,a3 + 6050: 7ff57613 andi a2,a0,2047 + 6054: e05ff06f j 5e58 <__divdf3+0x108> + 6058: 000a8693 mv a3,s5 + 605c: 000a0713 mv a4,s4 + 6060: 000b0893 mv a7,s6 + 6064: 000b8593 mv a1,s7 + 6068: f89ff06f j 5ff0 <__divdf3+0x2a0> + 606c: 2b476a63 bltu a4,s4,6320 <__divdf3+0x5d0> + 6070: 2aea0663 beq s4,a4,631c <__divdf3+0x5cc> + 6074: 000b0693 mv a3,s6 + 6078: fff48493 addi s1,s1,-1 + 607c: 000a0413 mv s0,s4 + 6080: 00000b13 li s6,0 + 6084: 00871793 slli a5,a4,0x8 + 6088: 0188d313 srli t1,a7,0x18 + 608c: 00f36333 or t1,t1,a5 + 6090: 01035e93 srli t4,t1,0x10 + 6094: 03d457b3 divu a5,s0,t4 + 6098: 01031f13 slli t5,t1,0x10 + 609c: 010f5f13 srli t5,t5,0x10 + 60a0: 0106d593 srli a1,a3,0x10 + 60a4: 00889e13 slli t3,a7,0x8 + 60a8: 03d47433 remu s0,s0,t4 + 60ac: 02ff0733 mul a4,t5,a5 + 60b0: 01041413 slli s0,s0,0x10 + 60b4: 0085e5b3 or a1,a1,s0 + 60b8: 00e5fe63 bgeu a1,a4,60d4 <__divdf3+0x384> + 60bc: 006585b3 add a1,a1,t1 + 60c0: fff78613 addi a2,a5,-1 + 60c4: 3265ea63 bltu a1,t1,63f8 <__divdf3+0x6a8> + 60c8: 32e5f863 bgeu a1,a4,63f8 <__divdf3+0x6a8> + 60cc: ffe78793 addi a5,a5,-2 + 60d0: 006585b3 add a1,a1,t1 + 60d4: 40e585b3 sub a1,a1,a4 + 60d8: 03d5d733 divu a4,a1,t4 + 60dc: 01069693 slli a3,a3,0x10 + 60e0: 0106d693 srli a3,a3,0x10 + 60e4: 03d5f5b3 remu a1,a1,t4 + 60e8: 02ef0633 mul a2,t5,a4 + 60ec: 01059593 slli a1,a1,0x10 + 60f0: 00b6e5b3 or a1,a3,a1 + 60f4: 00c5fe63 bgeu a1,a2,6110 <__divdf3+0x3c0> + 60f8: 006585b3 add a1,a1,t1 + 60fc: fff70693 addi a3,a4,-1 + 6100: 2e65e863 bltu a1,t1,63f0 <__divdf3+0x6a0> + 6104: 2ec5f663 bgeu a1,a2,63f0 <__divdf3+0x6a0> + 6108: ffe70713 addi a4,a4,-2 + 610c: 006585b3 add a1,a1,t1 + 6110: 01079793 slli a5,a5,0x10 + 6114: 00010437 lui s0,0x10 + 6118: 00e7e733 or a4,a5,a4 + 611c: fff40793 addi a5,s0,-1 # ffff <_data_lma+0x9957> + 6120: 00f77533 and a0,a4,a5 + 6124: 01075893 srli a7,a4,0x10 + 6128: 010e5f93 srli t6,t3,0x10 + 612c: 00fe77b3 and a5,t3,a5 + 6130: 02f502b3 mul t0,a0,a5 + 6134: 40c586b3 sub a3,a1,a2 + 6138: 02f883b3 mul t2,a7,a5 + 613c: 0102d593 srli a1,t0,0x10 + 6140: 02af8633 mul a2,t6,a0 + 6144: 00760633 add a2,a2,t2 + 6148: 00c58633 add a2,a1,a2 + 614c: 03f88533 mul a0,a7,t6 + 6150: 00767463 bgeu a2,t2,6158 <__divdf3+0x408> + 6154: 00850533 add a0,a0,s0 + 6158: 000108b7 lui a7,0x10 + 615c: fff88893 addi a7,a7,-1 # ffff <_data_lma+0x9957> + 6160: 01065593 srli a1,a2,0x10 + 6164: 01167633 and a2,a2,a7 + 6168: 01061613 slli a2,a2,0x10 + 616c: 0112f8b3 and a7,t0,a7 + 6170: 00a585b3 add a1,a1,a0 + 6174: 01160633 add a2,a2,a7 + 6178: 16b6ee63 bltu a3,a1,62f4 <__divdf3+0x5a4> + 617c: 16b68a63 beq a3,a1,62f0 <__divdf3+0x5a0> + 6180: 40cb0633 sub a2,s6,a2 + 6184: 40b686b3 sub a3,a3,a1 + 6188: 00cb3b33 sltu s6,s6,a2 + 618c: 41668b33 sub s6,a3,s6 + 6190: 3ff48513 addi a0,s1,1023 + 6194: 1f630263 beq t1,s6,6378 <__divdf3+0x628> + 6198: 03db58b3 divu a7,s6,t4 + 619c: 01065593 srli a1,a2,0x10 + 61a0: 03db7b33 remu s6,s6,t4 + 61a4: 031f06b3 mul a3,t5,a7 + 61a8: 010b1b13 slli s6,s6,0x10 + 61ac: 0165eb33 or s6,a1,s6 + 61b0: 00db7e63 bgeu s6,a3,61cc <__divdf3+0x47c> + 61b4: 006b0b33 add s6,s6,t1 + 61b8: fff88593 addi a1,a7,-1 + 61bc: 2c6b6463 bltu s6,t1,6484 <__divdf3+0x734> + 61c0: 2cdb7263 bgeu s6,a3,6484 <__divdf3+0x734> + 61c4: ffe88893 addi a7,a7,-2 + 61c8: 006b0b33 add s6,s6,t1 + 61cc: 40db0b33 sub s6,s6,a3 + 61d0: 03db56b3 divu a3,s6,t4 + 61d4: 01061613 slli a2,a2,0x10 + 61d8: 01065613 srli a2,a2,0x10 + 61dc: 03db7b33 remu s6,s6,t4 + 61e0: 02df0f33 mul t5,t5,a3 + 61e4: 010b1b13 slli s6,s6,0x10 + 61e8: 01666633 or a2,a2,s6 + 61ec: 01e67e63 bgeu a2,t5,6208 <__divdf3+0x4b8> + 61f0: 00660633 add a2,a2,t1 + 61f4: fff68593 addi a1,a3,-1 + 61f8: 28666a63 bltu a2,t1,648c <__divdf3+0x73c> + 61fc: 29e67863 bgeu a2,t5,648c <__divdf3+0x73c> + 6200: ffe68693 addi a3,a3,-2 + 6204: 00660633 add a2,a2,t1 + 6208: 01089893 slli a7,a7,0x10 + 620c: 00d8e8b3 or a7,a7,a3 + 6210: 01089593 slli a1,a7,0x10 + 6214: 0108d293 srli t0,a7,0x10 + 6218: 0105d593 srli a1,a1,0x10 + 621c: 02f58eb3 mul t4,a1,a5 + 6220: 41e60633 sub a2,a2,t5 + 6224: 02bf85b3 mul a1,t6,a1 + 6228: 010ed693 srli a3,t4,0x10 + 622c: 02f287b3 mul a5,t0,a5 + 6230: 00f585b3 add a1,a1,a5 + 6234: 00b686b3 add a3,a3,a1 + 6238: 025f8fb3 mul t6,t6,t0 + 623c: 00f6f663 bgeu a3,a5,6248 <__divdf3+0x4f8> + 6240: 000107b7 lui a5,0x10 + 6244: 00ff8fb3 add t6,t6,a5 + 6248: 000105b7 lui a1,0x10 + 624c: fff58593 addi a1,a1,-1 # ffff <_data_lma+0x9957> + 6250: 0106d793 srli a5,a3,0x10 + 6254: 00b6f6b3 and a3,a3,a1 + 6258: 01069693 slli a3,a3,0x10 + 625c: 00befeb3 and t4,t4,a1 + 6260: 01f78fb3 add t6,a5,t6 + 6264: 01d686b3 add a3,a3,t4 + 6268: 0df67863 bgeu a2,t6,6338 <__divdf3+0x5e8> + 626c: 00c30633 add a2,t1,a2 + 6270: fff88793 addi a5,a7,-1 + 6274: 24666463 bltu a2,t1,64bc <__divdf3+0x76c> + 6278: 21f66e63 bltu a2,t6,6494 <__divdf3+0x744> + 627c: 27f60063 beq a2,t6,64dc <__divdf3+0x78c> + 6280: 00078893 mv a7,a5 + 6284: 0018e893 ori a7,a7,1 + 6288: d89ff06f j 6010 <__divdf3+0x2c0> + 628c: 00090513 mv a0,s2 + 6290: 384000ef jal ra,6614 <__clzsi2> + 6294: 01550713 addi a4,a0,21 + 6298: 01c00593 li a1,28 + 629c: 02050493 addi s1,a0,32 + 62a0: 00812603 lw a2,8(sp) + 62a4: 00c12683 lw a3,12(sp) + 62a8: c8e5d4e3 bge a1,a4,5f30 <__divdf3+0x1e0> + 62ac: ff850413 addi s0,a0,-8 + 62b0: 00891a33 sll s4,s2,s0 + 62b4: 00000b13 li s6,0 + 62b8: c95ff06f j 5f4c <__divdf3+0x1fc> + 62bc: 00060513 mv a0,a2 + 62c0: 00c12423 sw a2,8(sp) + 62c4: 350000ef jal ra,6614 <__clzsi2> + 62c8: 01550713 addi a4,a0,21 + 62cc: 01c00693 li a3,28 + 62d0: 00050793 mv a5,a0 + 62d4: 00812603 lw a2,8(sp) + 62d8: 02050513 addi a0,a0,32 + 62dc: bee6dee3 bge a3,a4,5ed8 <__divdf3+0x188> + 62e0: ff878793 addi a5,a5,-8 # fff8 <_data_lma+0x9950> + 62e4: 00f61733 sll a4,a2,a5 + 62e8: 00000893 li a7,0 + 62ec: c09ff06f j 5ef4 <__divdf3+0x1a4> + 62f0: e8cb78e3 bgeu s6,a2,6180 <__divdf3+0x430> + 62f4: 01cb0b33 add s6,s6,t3 + 62f8: 01cb3533 sltu a0,s6,t3 + 62fc: 00650533 add a0,a0,t1 + 6300: 00a686b3 add a3,a3,a0 + 6304: fff70513 addi a0,a4,-1 + 6308: 02d37e63 bgeu t1,a3,6344 <__divdf3+0x5f4> + 630c: 16b6e063 bltu a3,a1,646c <__divdf3+0x71c> + 6310: 14d58c63 beq a1,a3,6468 <__divdf3+0x718> + 6314: 00050713 mv a4,a0 + 6318: e69ff06f j 6180 <__divdf3+0x430> + 631c: d51b6ce3 bltu s6,a7,6074 <__divdf3+0x324> + 6320: 001b5593 srli a1,s6,0x1 + 6324: 01fa1693 slli a3,s4,0x1f + 6328: 001a5413 srli s0,s4,0x1 + 632c: 00b6e6b3 or a3,a3,a1 + 6330: 01fb1b13 slli s6,s6,0x1f + 6334: d51ff06f j 6084 <__divdf3+0x334> + 6338: f5f616e3 bne a2,t6,6284 <__divdf3+0x534> + 633c: cc068ae3 beqz a3,6010 <__divdf3+0x2c0> + 6340: f2dff06f j 626c <__divdf3+0x51c> + 6344: fcd318e3 bne t1,a3,6314 <__divdf3+0x5c4> + 6348: fdcb72e3 bgeu s6,t3,630c <__divdf3+0x5bc> + 634c: 00050713 mv a4,a0 + 6350: e31ff06f j 6180 <__divdf3+0x430> + 6354: 00f8f793 andi a5,a7,15 + 6358: 00400693 li a3,4 + 635c: ccd780e3 beq a5,a3,601c <__divdf3+0x2cc> + 6360: ffc8b793 sltiu a5,a7,-4 + 6364: 00488693 addi a3,a7,4 + 6368: 0017c793 xori a5,a5,1 + 636c: 0036d693 srli a3,a3,0x3 + 6370: 00f70733 add a4,a4,a5 + 6374: cadff06f j 6020 <__divdf3+0x2d0> + 6378: 00000693 li a3,0 + 637c: 00100793 li a5,1 + 6380: fea048e3 bgtz a0,6370 <__divdf3+0x620> + 6384: fff00893 li a7,-1 + 6388: c40512e3 bnez a0,5fcc <__divdf3+0x27c> + 638c: c0100493 li s1,-1023 + 6390: 00100793 li a5,1 + 6394: 41e48513 addi a0,s1,1054 + 6398: 00a716b3 sll a3,a4,a0 + 639c: 00f8d633 srl a2,a7,a5 + 63a0: 00a89533 sll a0,a7,a0 + 63a4: 00c6e6b3 or a3,a3,a2 + 63a8: 00a03533 snez a0,a0 + 63ac: 00a6e6b3 or a3,a3,a0 + 63b0: 0076f613 andi a2,a3,7 + 63b4: 00f75733 srl a4,a4,a5 + 63b8: 02060063 beqz a2,63d8 <__divdf3+0x688> + 63bc: 00f6f793 andi a5,a3,15 + 63c0: 00400613 li a2,4 + 63c4: 00c78a63 beq a5,a2,63d8 <__divdf3+0x688> + 63c8: 00468793 addi a5,a3,4 + 63cc: 00d7b6b3 sltu a3,a5,a3 + 63d0: 00d70733 add a4,a4,a3 + 63d4: 00078693 mv a3,a5 + 63d8: 00871793 slli a5,a4,0x8 + 63dc: 0607d863 bgez a5,644c <__divdf3+0x6fc> + 63e0: 00100613 li a2,1 + 63e4: 00000793 li a5,0 + 63e8: 00000713 li a4,0 + 63ec: a6dff06f j 5e58 <__divdf3+0x108> + 63f0: 00068713 mv a4,a3 + 63f4: d1dff06f j 6110 <__divdf3+0x3c0> + 63f8: 00060793 mv a5,a2 + 63fc: cd9ff06f j 60d4 <__divdf3+0x384> + 6400: 01f00693 li a3,31 + 6404: f8f6d8e3 bge a3,a5,6394 <__divdf3+0x644> + 6408: fe100613 li a2,-31 + 640c: 40a60633 sub a2,a2,a0 + 6410: 02000693 li a3,32 + 6414: 00c75633 srl a2,a4,a2 + 6418: 00d78863 beq a5,a3,6428 <__divdf3+0x6d8> + 641c: 43e48793 addi a5,s1,1086 + 6420: 00f717b3 sll a5,a4,a5 + 6424: 00f8e8b3 or a7,a7,a5 + 6428: 011036b3 snez a3,a7 + 642c: 00c6e6b3 or a3,a3,a2 + 6430: 0076f613 andi a2,a3,7 + 6434: 00000793 li a5,0 + 6438: 02060063 beqz a2,6458 <__divdf3+0x708> + 643c: 00f6f793 andi a5,a3,15 + 6440: 00400613 li a2,4 + 6444: 00000713 li a4,0 + 6448: f8c790e3 bne a5,a2,63c8 <__divdf3+0x678> + 644c: 00971793 slli a5,a4,0x9 + 6450: 01d71613 slli a2,a4,0x1d + 6454: 00c7d793 srli a5,a5,0xc + 6458: 0036d713 srli a4,a3,0x3 + 645c: 00c76733 or a4,a4,a2 + 6460: 00000613 li a2,0 + 6464: 9f5ff06f j 5e58 <__divdf3+0x108> + 6468: eacb76e3 bgeu s6,a2,6314 <__divdf3+0x5c4> + 646c: 01cb0b33 add s6,s6,t3 + 6470: 01cb3533 sltu a0,s6,t3 + 6474: 00650533 add a0,a0,t1 + 6478: ffe70713 addi a4,a4,-2 + 647c: 00a686b3 add a3,a3,a0 + 6480: d01ff06f j 6180 <__divdf3+0x430> + 6484: 00058893 mv a7,a1 + 6488: d45ff06f j 61cc <__divdf3+0x47c> + 648c: 00058693 mv a3,a1 + 6490: d79ff06f j 6208 <__divdf3+0x4b8> + 6494: 001e1793 slli a5,t3,0x1 + 6498: 01c7be33 sltu t3,a5,t3 + 649c: 006e0333 add t1,t3,t1 + 64a0: 00660633 add a2,a2,t1 + 64a4: ffe88893 addi a7,a7,-2 + 64a8: 00078e13 mv t3,a5 + 64ac: ddf61ce3 bne a2,t6,6284 <__divdf3+0x534> + 64b0: b6de00e3 beq t3,a3,6010 <__divdf3+0x2c0> + 64b4: 0018e893 ori a7,a7,1 + 64b8: b59ff06f j 6010 <__divdf3+0x2c0> + 64bc: 00078893 mv a7,a5 + 64c0: fff608e3 beq a2,t6,64b0 <__divdf3+0x760> + 64c4: dc1ff06f j 6284 <__divdf3+0x534> + 64c8: 00068813 mv a6,a3 + 64cc: 7ff00613 li a2,2047 + 64d0: 00000793 li a5,0 + 64d4: 00000713 li a4,0 + 64d8: 981ff06f j 5e58 <__divdf3+0x108> + 64dc: fade6ce3 bltu t3,a3,6494 <__divdf3+0x744> + 64e0: 00078893 mv a7,a5 + 64e4: fcde18e3 bne t3,a3,64b4 <__divdf3+0x764> + 64e8: b29ff06f j 6010 <__divdf3+0x2c0> + +000064ec <__fixunsdfsi>: + 64ec: 0145d793 srli a5,a1,0x14 + 64f0: 001006b7 lui a3,0x100 + 64f4: fff68713 addi a4,a3,-1 # fffff <_data_lma+0xf9957> + 64f8: 7ff7f793 andi a5,a5,2047 + 64fc: 3fe00613 li a2,1022 + 6500: 00050813 mv a6,a0 + 6504: 00b77733 and a4,a4,a1 + 6508: 00000513 li a0,0 + 650c: 01f5d593 srli a1,a1,0x1f + 6510: 00f65663 bge a2,a5,651c <__fixunsdfsi+0x30> + 6514: 00058663 beqz a1,6520 <__fixunsdfsi+0x34> + 6518: 00008067 ret + 651c: 00008067 ret + 6520: 41e00613 li a2,1054 + 6524: fff00513 li a0,-1 + 6528: fef648e3 blt a2,a5,6518 <__fixunsdfsi+0x2c> + 652c: 43300513 li a0,1075 + 6530: 40f50533 sub a0,a0,a5 + 6534: 01f00613 li a2,31 + 6538: 00d76733 or a4,a4,a3 + 653c: 00a64c63 blt a2,a0,6554 <__fixunsdfsi+0x68> + 6540: bed78793 addi a5,a5,-1043 + 6544: 00f71733 sll a4,a4,a5 + 6548: 00a85533 srl a0,a6,a0 + 654c: 00a76533 or a0,a4,a0 + 6550: 00008067 ret + 6554: 41300513 li a0,1043 + 6558: 40f507b3 sub a5,a0,a5 + 655c: 00f75533 srl a0,a4,a5 + 6560: 00008067 ret + +00006564 <__floatunsidf>: + 6564: 06050463 beqz a0,65cc <__floatunsidf+0x68> + 6568: ff010113 addi sp,sp,-16 + 656c: 00812423 sw s0,8(sp) + 6570: 00112623 sw ra,12(sp) + 6574: 00050413 mv s0,a0 + 6578: 09c000ef jal ra,6614 <__clzsi2> + 657c: 41e00693 li a3,1054 + 6580: 40a686b3 sub a3,a3,a0 + 6584: 00a00793 li a5,10 + 6588: 7ff6f693 andi a3,a3,2047 + 658c: 06a7d463 bge a5,a0,65f4 <__floatunsidf+0x90> + 6590: ff550513 addi a0,a0,-11 + 6594: 00a417b3 sll a5,s0,a0 + 6598: 00c79793 slli a5,a5,0xc + 659c: 00c7d793 srli a5,a5,0xc + 65a0: 00000713 li a4,0 + 65a4: 00c12083 lw ra,12(sp) + 65a8: 00812403 lw s0,8(sp) + 65ac: 00c79793 slli a5,a5,0xc + 65b0: 01469693 slli a3,a3,0x14 + 65b4: 00c7d793 srli a5,a5,0xc + 65b8: 00d7e7b3 or a5,a5,a3 + 65bc: 00070513 mv a0,a4 + 65c0: 00078593 mv a1,a5 + 65c4: 01010113 addi sp,sp,16 + 65c8: 00008067 ret + 65cc: 00000793 li a5,0 + 65d0: 00000693 li a3,0 + 65d4: 00c79793 slli a5,a5,0xc + 65d8: 01469693 slli a3,a3,0x14 + 65dc: 00c7d793 srli a5,a5,0xc + 65e0: 00000713 li a4,0 + 65e4: 00d7e7b3 or a5,a5,a3 + 65e8: 00070513 mv a0,a4 + 65ec: 00078593 mv a1,a5 + 65f0: 00008067 ret + 65f4: 00b00713 li a4,11 + 65f8: 40a70733 sub a4,a4,a0 + 65fc: 00e457b3 srl a5,s0,a4 + 6600: 00c79793 slli a5,a5,0xc + 6604: 01550713 addi a4,a0,21 + 6608: 00e41733 sll a4,s0,a4 + 660c: 00c7d793 srli a5,a5,0xc + 6610: f95ff06f j 65a4 <__floatunsidf+0x40> + +00006614 <__clzsi2>: + 6614: 000107b7 lui a5,0x10 + 6618: 04f57463 bgeu a0,a5,6660 <__clzsi2+0x4c> + 661c: 0ff00793 li a5,255 + 6620: 02000713 li a4,32 + 6624: 00a7ee63 bltu a5,a0,6640 <__clzsi2+0x2c> + 6628: 0fffa797 auipc a5,0xfffa + 662c: 02c78793 addi a5,a5,44 # 10000654 <__clz_tab> + 6630: 00a787b3 add a5,a5,a0 + 6634: 0007c503 lbu a0,0(a5) + 6638: 40a70533 sub a0,a4,a0 + 663c: 00008067 ret + 6640: 00855513 srli a0,a0,0x8 + 6644: 0fffa797 auipc a5,0xfffa + 6648: 01078793 addi a5,a5,16 # 10000654 <__clz_tab> + 664c: 00a787b3 add a5,a5,a0 + 6650: 0007c503 lbu a0,0(a5) + 6654: 01800713 li a4,24 + 6658: 40a70533 sub a0,a4,a0 + 665c: 00008067 ret + 6660: 010007b7 lui a5,0x1000 + 6664: 02f56263 bltu a0,a5,6688 <__clzsi2+0x74> + 6668: 01855513 srli a0,a0,0x18 + 666c: 0fffa797 auipc a5,0xfffa + 6670: fe878793 addi a5,a5,-24 # 10000654 <__clz_tab> + 6674: 00a787b3 add a5,a5,a0 + 6678: 0007c503 lbu a0,0(a5) + 667c: 00800713 li a4,8 + 6680: 40a70533 sub a0,a4,a0 + 6684: 00008067 ret + 6688: 01055513 srli a0,a0,0x10 + 668c: 0fffa797 auipc a5,0xfffa + 6690: fc878793 addi a5,a5,-56 # 10000654 <__clz_tab> + 6694: 00a787b3 add a5,a5,a0 + 6698: 0007c503 lbu a0,0(a5) + 669c: 01000713 li a4,16 + 66a0: 40a70533 sub a0,a4,a0 + 66a4: 00008067 ret + +Disassembly of section .data: + +10000000 : +10000000: d4b0 sw a2,104(s1) +10000002: 3340 fld fs0,160(a4) +10000004: 6a79 lui s4,0x1e +10000006: e714 fsw fa3,8(a4) +10000008: e3c1 bnez a5,10000088 +1000000a: 0000 unimp +1000000c: 6b36 flw fs6,76(sp) +1000000e: 7020 flw fs0,96(s0) +10000010: 7265 lui tp,0xffff9 +10000012: 6f66 flw ft10,88(sp) +10000014: 6d72 flw fs10,28(sp) +10000016: 6e61 lui t3,0x18 +10000018: 72206563 bltu zero,sp,10000742 <__clz_tab+0xee> +1000001c: 6e75 lui t3,0x1d +1000001e: 7020 flw fs0,96(s0) +10000020: 7261 lui tp,0xffff8 +10000022: 6d61 lui s10,0x18 +10000024: 7465 lui s0,0xffff9 +10000026: 7265 lui tp,0xffff9 +10000028: 6f662073 csrs 0x6f6,a2 +1000002c: 2072 fld ft0,280(sp) +1000002e: 65726f63 bltu tp,s7,1000068c <__clz_tab+0x38> +10000032: 616d addi sp,sp,240 +10000034: 6b72 flw fs6,28(sp) +10000036: 0a2e slli s4,s4,0xb +10000038: 0000 unimp +1000003a: 0000 unimp +1000003c: 6b36 flw fs6,76(sp) +1000003e: 7620 flw fs0,104(a2) +10000040: 6c61 lui s8,0x18 +10000042: 6469 lui s0,0x1a +10000044: 7461 lui s0,0xffff8 +10000046: 6f69 lui t5,0x1a +10000048: 206e fld ft0,216(sp) +1000004a: 7572 flw fa0,60(sp) +1000004c: 206e fld ft0,216(sp) +1000004e: 6170 flw fa2,68(a0) +10000050: 6172 flw ft2,28(sp) +10000052: 656d lui a0,0x1b +10000054: 6574 flw fa3,76(a0) +10000056: 7372 flw ft6,60(sp) +10000058: 6620 flw fs0,72(a2) +1000005a: 6320726f jal tp,1000768c <_sp+0x468c> +1000005e: 6d65726f jal tp,10057734 <_sp+0x54734> +10000062: 7261 lui tp,0xffff8 +10000064: 000a2e6b 0xa2e6b +10000068: 7250 flw fa2,36(a2) +1000006a: 6c69666f jal a2,10096730 <_sp+0x93730> +1000006e: 2065 jal 10000116 +10000070: 656e6567 0x656e6567 +10000074: 6172 flw ft2,28(sp) +10000076: 6974 flw fa3,84(a0) +10000078: 72206e6f jal t3,1000679a <_sp+0x379a> +1000007c: 6e75 lui t3,0x1d +1000007e: 7020 flw fs0,96(s0) +10000080: 7261 lui tp,0xffff8 +10000082: 6d61 lui s10,0x18 +10000084: 7465 lui s0,0xffff9 +10000086: 7265 lui tp,0xffff9 +10000088: 6f662073 csrs 0x6f6,a2 +1000008c: 2072 fld ft0,280(sp) +1000008e: 65726f63 bltu tp,s7,100006ec <__clz_tab+0x98> +10000092: 616d addi sp,sp,240 +10000094: 6b72 flw fs6,28(sp) +10000096: 0a2e slli s4,s4,0xb +10000098: 0000 unimp +1000009a: 0000 unimp +1000009c: 4b32 lw s6,12(sp) +1000009e: 7020 flw fs0,96(s0) +100000a0: 7265 lui tp,0xffff9 +100000a2: 6f66 flw ft10,88(sp) +100000a4: 6d72 flw fs10,28(sp) +100000a6: 6e61 lui t3,0x18 +100000a8: 72206563 bltu zero,sp,100007d2 +100000ac: 6e75 lui t3,0x1d +100000ae: 7020 flw fs0,96(s0) +100000b0: 7261 lui tp,0xffff8 +100000b2: 6d61 lui s10,0x18 +100000b4: 7465 lui s0,0xffff9 +100000b6: 7265 lui tp,0xffff9 +100000b8: 6f662073 csrs 0x6f6,a2 +100000bc: 2072 fld ft0,280(sp) +100000be: 65726f63 bltu tp,s7,1000071c <__clz_tab+0xc8> +100000c2: 616d addi sp,sp,240 +100000c4: 6b72 flw fs6,28(sp) +100000c6: 0a2e slli s4,s4,0xb +100000c8: 0000 unimp +100000ca: 0000 unimp +100000cc: 4b32 lw s6,12(sp) +100000ce: 7620 flw fs0,104(a2) +100000d0: 6c61 lui s8,0x18 +100000d2: 6469 lui s0,0x1a +100000d4: 7461 lui s0,0xffff8 +100000d6: 6f69 lui t5,0x1a +100000d8: 206e fld ft0,216(sp) +100000da: 7572 flw fa0,60(sp) +100000dc: 206e fld ft0,216(sp) +100000de: 6170 flw fa2,68(a0) +100000e0: 6172 flw ft2,28(sp) +100000e2: 656d lui a0,0x1b +100000e4: 6574 flw fa3,76(a0) +100000e6: 7372 flw ft6,60(sp) +100000e8: 6620 flw fs0,72(a2) +100000ea: 6320726f jal tp,1000771c <_sp+0x471c> +100000ee: 6d65726f jal tp,100577c4 <_sp+0x547c4> +100000f2: 7261 lui tp,0xffff8 +100000f4: 000a2e6b 0xa2e6b +100000f8: 5d75255b 0x5d75255b +100000fc: 5245 li tp,-15 +100000fe: 4f52 lw t5,20(sp) +10000100: 2152 fld ft2,272(sp) +10000102: 6c20 flw fs0,88(s0) +10000104: 7369 lui t1,0xffffa +10000106: 2074 fld fa3,192(s0) +10000108: 20637263 bgeu t1,t1,1000030c +1000010c: 7830 flw fa2,112(s0) +1000010e: 3025 jal ffff936 <_data_lma+0xfff928e> +10000110: 7834 flw fa3,112(s0) +10000112: 2d20 fld fs0,88(a0) +10000114: 7320 flw fs0,96(a4) +10000116: 6f68 flw fa0,92(a4) +10000118: 6c75 lui s8,0x1d +1000011a: 2064 fld fs1,192(s0) +1000011c: 6562 flw fa0,24(sp) +1000011e: 3020 fld fs0,96(s0) +10000120: 2578 fld fa4,200(a0) +10000122: 3430 fld fa2,104(s0) +10000124: 0a78 addi a4,sp,284 +10000126: 0000 unimp +10000128: 5d75255b 0x5d75255b +1000012c: 5245 li tp,-15 +1000012e: 4f52 lw t5,20(sp) +10000130: 2152 fld ft2,272(sp) +10000132: 6d20 flw fs0,88(a0) +10000134: 7461 lui s0,0xffff8 +10000136: 6972 flw fs2,28(sp) +10000138: 2078 fld fa4,192(s0) +1000013a: 20637263 bgeu t1,t1,1000033e +1000013e: 7830 flw fa2,112(s0) +10000140: 3025 jal ffff968 <_data_lma+0xfff92c0> +10000142: 7834 flw fa3,112(s0) +10000144: 2d20 fld fs0,88(a0) +10000146: 7320 flw fs0,96(a4) +10000148: 6f68 flw fa0,92(a4) +1000014a: 6c75 lui s8,0x1d +1000014c: 2064 fld fs1,192(s0) +1000014e: 6562 flw fa0,24(sp) +10000150: 3020 fld fs0,96(s0) +10000152: 2578 fld fa4,200(a0) +10000154: 3430 fld fa2,104(s0) +10000156: 0a78 addi a4,sp,284 +10000158: 0000 unimp +1000015a: 0000 unimp +1000015c: 5d75255b 0x5d75255b +10000160: 5245 li tp,-15 +10000162: 4f52 lw t5,20(sp) +10000164: 2152 fld ft2,272(sp) +10000166: 7320 flw fs0,96(a4) +10000168: 6174 flw fa3,68(a0) +1000016a: 6574 flw fa3,76(a0) +1000016c: 6320 flw fs0,64(a4) +1000016e: 6372 flw ft6,28(sp) +10000170: 3020 fld fs0,96(s0) +10000172: 2578 fld fa4,200(a0) +10000174: 3430 fld fa2,104(s0) +10000176: 2078 fld fa4,192(s0) +10000178: 202d jal 100001a2 +1000017a: 756f6873 csrrsi a6,0x756,30 +1000017e: 646c flw fa1,76(s0) +10000180: 6220 flw fs0,64(a2) +10000182: 2065 jal 1000022a +10000184: 7830 flw fa2,112(s0) +10000186: 3025 jal ffff9ae <_data_lma+0xfff9306> +10000188: 7834 flw fa3,112(s0) +1000018a: 000a c.slli zero,0x2 +1000018c: 65726f43 0x65726f43 +10000190: 614d addi sp,sp,176 +10000192: 6b72 flw fs6,28(sp) +10000194: 5320 lw s0,96(a4) +10000196: 7a69 lui s4,0xffffa +10000198: 2065 jal 10000240 +1000019a: 2020 fld fs0,64(s0) +1000019c: 3a20 fld fs0,112(a2) +1000019e: 2520 fld fs0,72(a0) +100001a0: 756c flw fa1,108(a0) +100001a2: 000a c.slli zero,0x2 +100001a4: 6f54 flw fa3,28(a4) +100001a6: 6174 flw fa3,68(a0) +100001a8: 206c fld fa1,192(s0) +100001aa: 6974 flw fa3,84(a0) +100001ac: 20736b63 bltu t1,t2,100003c2 +100001b0: 2020 fld fs0,64(s0) +100001b2: 2020 fld fs0,64(s0) +100001b4: 3a20 fld fs0,112(a2) +100001b6: 2520 fld fs0,72(a0) +100001b8: 756c flw fa1,108(a0) +100001ba: 000a c.slli zero,0x2 +100001bc: 6f54 flw fa3,28(a4) +100001be: 6174 flw fa3,68(a0) +100001c0: 206c fld fa1,192(s0) +100001c2: 6974 flw fa3,84(a0) +100001c4: 656d lui a0,0x1b +100001c6: 2820 fld fs0,80(s0) +100001c8: 73636573 csrrsi a0,0x736,6 +100001cc: 3a29 jal ffffae6 <_data_lma+0xfff943e> +100001ce: 2520 fld fs0,72(a0) +100001d0: 0a64 addi s1,sp,284 +100001d2: 0000 unimp +100001d4: 7449 lui s0,0xffff2 +100001d6: 7265 lui tp,0xffff9 +100001d8: 7461 lui s0,0xffff8 +100001da: 6f69 lui t5,0x1a +100001dc: 736e flw ft6,248(sp) +100001de: 6365532f 0x6365532f +100001e2: 2020 fld fs0,64(s0) +100001e4: 3a20 fld fs0,112(a2) +100001e6: 2520 fld fs0,72(a0) +100001e8: 0a64 addi s1,sp,284 +100001ea: 0000 unimp +100001ec: 5245 li tp,-15 +100001ee: 4f52 lw t5,20(sp) +100001f0: 2152 fld ft2,272(sp) +100001f2: 4d20 lw s0,88(a0) +100001f4: 7375 lui t1,0xffffd +100001f6: 2074 fld fa3,192(s0) +100001f8: 7865 lui a6,0xffff9 +100001fa: 6365 lui t1,0x19 +100001fc: 7475 lui s0,0xffffd +100001fe: 2065 jal 100002a6 +10000200: 6f66 flw ft10,88(sp) +10000202: 2072 fld ft0,280(sp) +10000204: 7461 lui s0,0xffff8 +10000206: 6c20 flw fs0,88(s0) +10000208: 6165 addi sp,sp,112 +1000020a: 31207473 csrrci s0,0x312,0 +1000020e: 2030 fld fa2,64(s0) +10000210: 73636573 csrrsi a0,0x736,6 +10000214: 6620 flw fs0,72(a2) +10000216: 6120726f jal tp,10007828 <_sp+0x4828> +1000021a: 7620 flw fs0,104(a2) +1000021c: 6c61 lui s8,0x18 +1000021e: 6469 lui s0,0x1a +10000220: 7220 flw fs0,96(a2) +10000222: 7365 lui t1,0xffff9 +10000224: 6c75 lui s8,0x1d +10000226: 2174 fld fa3,192(a0) +10000228: 000a c.slli zero,0x2 +1000022a: 0000 unimp +1000022c: 72726f43 fmadd.d ft10,ft4,ft7,fa4,unknown +10000230: 6365 lui t1,0x19 +10000232: 2074 fld fa3,192(s0) +10000234: 7265706f j 1005795a <_sp+0x5495a> +10000238: 7461 lui s0,0xffff8 +1000023a: 6f69 lui t5,0x1a +1000023c: 206e fld ft0,216(sp) +1000023e: 6176 flw ft2,92(sp) +10000240: 696c flw fa1,84(a0) +10000242: 6164 flw fs1,68(a0) +10000244: 6574 flw fa3,76(a0) +10000246: 2e64 fld fs1,216(a2) +10000248: 5320 lw s0,96(a4) +1000024a: 6565 lui a0,0x19 +1000024c: 7220 flw fs0,96(a2) +1000024e: 6165 addi sp,sp,112 +10000250: 6d64 flw fs1,92(a0) +10000252: 2e65 jal 1000060a +10000254: 7874 flw fa3,116(s0) +10000256: 2074 fld fa3,192(s0) +10000258: 6f66 flw ft10,88(sp) +1000025a: 2072 fld ft0,280(sp) +1000025c: 7572 flw fa0,60(sp) +1000025e: 206e fld ft0,216(sp) +10000260: 6e61 lui t3,0x18 +10000262: 2064 fld fs1,192(s0) +10000264: 6572 flw fa0,28(sp) +10000266: 6f70 flw fa2,92(a4) +10000268: 7472 flw fs0,60(sp) +1000026a: 6e69 lui t3,0x1a +1000026c: 75722067 0x75722067 +10000270: 656c flw fa1,76(a0) +10000272: 000a2e73 csrrs t3,ustatus,s4 +10000276: 0000 unimp +10000278: 7245 lui tp,0xffff1 +1000027a: 6f72 flw ft10,28(sp) +1000027c: 7372 flw ft6,60(sp) +1000027e: 6420 flw fs0,72(s0) +10000280: 7465 lui s0,0xffff9 +10000282: 6365 lui t1,0x19 +10000284: 6574 flw fa3,76(a0) +10000286: 0a64 addi s1,sp,284 +10000288: 0000 unimp +1000028a: 0000 unimp +1000028c: 6e6e6143 fmadd.q ft2,ft8,ft6,fa3,unknown +10000290: 7620746f jal s0,100079f2 <_sp+0x49f2> +10000294: 6c61 lui s8,0x18 +10000296: 6469 lui s0,0x1a +10000298: 7461 lui s0,0xffff8 +1000029a: 2065 jal 10000342 +1000029c: 7265706f j 100579c2 <_sp+0x549c2> +100002a0: 7461 lui s0,0xffff8 +100002a2: 6f69 lui t5,0x1a +100002a4: 206e fld ft0,216(sp) +100002a6: 6f66 flw ft10,88(sp) +100002a8: 2072 fld ft0,280(sp) +100002aa: 6874 flw fa3,84(s0) +100002ac: 7365 lui t1,0xffff9 +100002ae: 2065 jal 10000356 +100002b0: 64656573 csrrsi a0,0x646,10 +100002b4: 7620 flw fs0,104(a2) +100002b6: 6c61 lui s8,0x18 +100002b8: 6575 lui a0,0x1d +100002ba: 70202c73 csrr s8,0x702 +100002be: 656c flw fa1,76(a0) +100002c0: 7361 lui t1,0xffff8 +100002c2: 2065 jal 1000036a +100002c4: 706d6f63 bltu s10,t1,100009e2 +100002c8: 7261 lui tp,0xffff8 +100002ca: 2065 jal 10000372 +100002cc: 68746977 0x68746977 +100002d0: 7220 flw fs0,96(a2) +100002d2: 7365 lui t1,0xffff9 +100002d4: 6c75 lui s8,0x1d +100002d6: 7374 flw fa3,100(a4) +100002d8: 6f20 flw fs0,88(a4) +100002da: 206e fld ft0,216(sp) +100002dc: 2061 jal 10000364 +100002de: 776f6e6b 0x776f6e6b +100002e2: 206e fld ft0,216(sp) +100002e4: 6c70 flw fa2,92(s0) +100002e6: 7461 lui s0,0xffff8 +100002e8: 6f66 flw ft10,88(sp) +100002ea: 6d72 flw fs10,28(sp) +100002ec: 0a2e slli s4,s4,0xb +100002ee: 0000 unimp +100002f0: 5d64255b 0x5d64255b +100002f4: 66637263 bgeu t1,t1,10000958 +100002f8: 6e69 lui t3,0x1a +100002fa: 6c61 lui s8,0x18 +100002fc: 2020 fld fs0,64(s0) +100002fe: 2020 fld fs0,64(s0) +10000300: 2020 fld fs0,64(s0) +10000302: 203a fld ft0,392(sp) +10000304: 7830 flw fa2,112(s0) +10000306: 3025 jal ffffb2e <_data_lma+0xfff9486> +10000308: 7834 flw fa3,112(s0) +1000030a: 000a c.slli zero,0x2 +1000030c: 5d64255b 0x5d64255b +10000310: 73637263 bgeu t1,s6,10000a34 +10000314: 6174 flw fa3,68(a0) +10000316: 6574 flw fa3,76(a0) +10000318: 2020 fld fs0,64(s0) +1000031a: 2020 fld fs0,64(s0) +1000031c: 2020 fld fs0,64(s0) +1000031e: 203a fld ft0,392(sp) +10000320: 7830 flw fa2,112(s0) +10000322: 3025 jal ffffb4a <_data_lma+0xfff94a2> +10000324: 7834 flw fa3,112(s0) +10000326: 000a c.slli zero,0x2 +10000328: 5d64255b 0x5d64255b +1000032c: 6d637263 bgeu t1,s6,100009f0 +10000330: 7461 lui s0,0xffff8 +10000332: 6972 flw fs2,28(sp) +10000334: 2078 fld fa4,192(s0) +10000336: 2020 fld fs0,64(s0) +10000338: 2020 fld fs0,64(s0) +1000033a: 203a fld ft0,392(sp) +1000033c: 7830 flw fa2,112(s0) +1000033e: 3025 jal ffffb66 <_data_lma+0xfff94be> +10000340: 7834 flw fa3,112(s0) +10000342: 000a c.slli zero,0x2 +10000344: 5d64255b 0x5d64255b +10000348: 6c637263 bgeu t1,t1,10000a0c +1000034c: 7369 lui t1,0xffffa +1000034e: 2074 fld fa3,192(s0) +10000350: 2020 fld fs0,64(s0) +10000352: 2020 fld fs0,64(s0) +10000354: 2020 fld fs0,64(s0) +10000356: 203a fld ft0,392(sp) +10000358: 7830 flw fa2,112(s0) +1000035a: 3025 jal ffffb82 <_data_lma+0xfff94da> +1000035c: 7834 flw fa3,112(s0) +1000035e: 000a c.slli zero,0x2 +10000360: 7449 lui s0,0xffff2 +10000362: 7265 lui tp,0xffff9 +10000364: 7461 lui s0,0xffff8 +10000366: 6f69 lui t5,0x1a +10000368: 736e flw ft6,248(sp) +1000036a: 2020 fld fs0,64(s0) +1000036c: 2020 fld fs0,64(s0) +1000036e: 2020 fld fs0,64(s0) +10000370: 3a20 fld fs0,112(a2) +10000372: 2520 fld fs0,72(a0) +10000374: 756c flw fa1,108(a0) +10000376: 000a c.slli zero,0x2 +10000378: 38434347 fmsub.s ft6,ft6,ft4,ft7,rmm +1000037c: 322e fld ft4,232(sp) +1000037e: 302e fld ft0,232(sp) +10000380: 0000 unimp +10000382: 0000 unimp +10000384: 706d6f43 fmadd.s ft10,fs10,ft6,fa4,unknown +10000388: 6c69 lui s8,0x1a +1000038a: 7265 lui tp,0xffff9 +1000038c: 7620 flw fs0,104(a2) +1000038e: 7265 lui tp,0xffff9 +10000390: 6e6f6973 csrrsi s2,0x6e6,30 +10000394: 3a20 fld fs0,112(a2) +10000396: 2520 fld fs0,72(a0) +10000398: 00000a73 0xa73 +1000039c: 4f2d li t5,11 +1000039e: 2032 fld ft0,264(sp) +100003a0: 662d lui a2,0xb +100003a2: 6f6e flw ft10,216(sp) +100003a4: 632d lui t1,0xb +100003a6: 6f6d6d6f jal s10,100d6a9c <_sp+0xd3a9c> +100003aa: 206e fld ft0,216(sp) +100003ac: 662d lui a2,0xb +100003ae: 6e75 lui t3,0x1d +100003b0: 6f72 flw ft10,28(sp) +100003b2: 6c6c flw fa1,92(s0) +100003b4: 6c2d lui s8,0xb +100003b6: 73706f6f jal t5,100072ec <_sp+0x42ec> +100003ba: 2d20 fld fs0,88(a0) +100003bc: 6966 flw fs2,88(sp) +100003be: 6c6e flw fs8,216(sp) +100003c0: 6e69 lui t3,0x1a +100003c2: 2d65 jal 10000a7a +100003c4: 7566 flw fa0,120(sp) +100003c6: 636e flw ft6,216(sp) +100003c8: 6974 flw fa3,84(a0) +100003ca: 20736e6f jal t3,10036dd0 <_sp+0x33dd0> +100003ce: 2d2d jal 10000a08 +100003d0: 6170 flw fa2,68(a0) +100003d2: 6172 flw ft2,28(sp) +100003d4: 206d jal 1000047e +100003d6: 616d addi sp,sp,240 +100003d8: 2d78 fld fa4,216(a0) +100003da: 6e69 lui t3,0x1a +100003dc: 696c flw fa1,84(a0) +100003de: 656e flw fa0,216(sp) +100003e0: 692d lui s2,0xb +100003e2: 736e flw ft6,248(sp) +100003e4: 736e flw ft6,248(sp) +100003e6: 612d addi sp,sp,224 +100003e8: 7475 lui s0,0xffffd +100003ea: 30323d6f jal s10,10023eec <_sp+0x20eec> +100003ee: 2d20 fld fs0,88(a0) +100003f0: 6166 flw ft2,88(sp) +100003f2: 696c flw fa1,84(a0) +100003f4: 662d6e67 0x662d6e67 +100003f8: 6e75 lui t3,0x1d +100003fa: 6f697463 bgeu s2,s6,10000ae2 +100003fe: 736e flw ft6,248(sp) +10000400: 343d jal ffffe2e <_data_lma+0xfff9786> +10000402: 2d20 fld fs0,88(a0) +10000404: 6166 flw ft2,88(sp) +10000406: 696c flw fa1,84(a0) +10000408: 6a2d6e67 0x6a2d6e67 +1000040c: 6d75 lui s10,0x1d +1000040e: 7370 flw fa2,100(a4) +10000410: 343d jal ffffe3e <_data_lma+0xfff9796> +10000412: 2d20 fld fs0,88(a0) +10000414: 6166 flw ft2,88(sp) +10000416: 696c flw fa1,84(a0) +10000418: 6c2d6e67 0x6c2d6e67 +1000041c: 73706f6f jal t5,10007352 <_sp+0x4352> +10000420: 343d jal ffffe4e <_data_lma+0xfff97a6> +10000422: 0000 unimp +10000424: 706d6f43 fmadd.s ft10,fs10,ft6,fa4,unknown +10000428: 6c69 lui s8,0x1a +1000042a: 7265 lui tp,0xffff9 +1000042c: 6620 flw fs0,72(a2) +1000042e: 616c flw fa1,68(a0) +10000430: 20207367 0x20207367 +10000434: 3a20 fld fs0,112(a2) +10000436: 2520 fld fs0,72(a0) +10000438: 00000a73 0xa73 +1000043c: 54415453 0x54415453 +10000440: 4349 li t1,18 +10000442: 0000 unimp +10000444: 654d lui a0,0x13 +10000446: 6f6d lui t5,0x1b +10000448: 7972 flw fs2,60(sp) +1000044a: 6c20 flw fs0,88(s0) +1000044c: 7461636f jal t1,10016b92 <_sp+0x13b92> +10000450: 6f69 lui t5,0x1a +10000452: 206e fld ft0,216(sp) +10000454: 3a20 fld fs0,112(a2) +10000456: 2520 fld fs0,72(a0) +10000458: 00000a73 0xa73 +1000045c: 64656573 csrrsi a0,0x646,10 +10000460: 20637263 bgeu t1,t1,10000664 <__clz_tab+0x10> +10000464: 2020 fld fs0,64(s0) +10000466: 2020 fld fs0,64(s0) +10000468: 2020 fld fs0,64(s0) +1000046a: 2020 fld fs0,64(s0) +1000046c: 3a20 fld fs0,112(a2) +1000046e: 3020 fld fs0,96(s0) +10000470: 2578 fld fa4,200(a0) +10000472: 3430 fld fa2,104(s0) +10000474: 0a78 addi a4,sp,284 + ... + +10000478 : +10000478: be52 fsd fs4,312(sp) +1000047a: 1199 addi gp,gp,-26 +1000047c: 5608 lw a0,40(a2) +1000047e: 07471fd7 0x7471fd7 + ... + +10000484 : +10000484: 39bf5e47 fmsub.s ft8,ft10,fs11,ft7,unknown +10000488: e5a4 fsw fs1,72(a1) +1000048a: 8e3a mv t3,a4 +1000048c: 8d84 0x8d84 +1000048e: 0000 unimp +10000490: 2ec4 fld fs1,152(a3) +10000492: f000 fsw fs0,32(s0) +10000494: 2ec4 fld fs1,152(a3) +10000496: f000 fsw fs0,32(s0) +10000498: 2fa0 fld fs0,88(a5) +1000049a: f000 fsw fs0,32(s0) +1000049c: 2fa0 fld fs0,88(a5) +1000049e: f000 fsw fs0,32(s0) +100004a0: 2fb0 fld fa2,88(a5) +100004a2: f000 fsw fs0,32(s0) + +100004a4 : +100004a4: 04e4 addi s1,sp,588 +100004a6: 1000 addi s0,sp,32 +100004a8: 04f0 addi a2,sp,588 +100004aa: 1000 addi s0,sp,32 +100004ac: 04fc addi a5,sp,588 +100004ae: 1000 addi s0,sp,32 +100004b0: 0508 addi a0,sp,640 +100004b2: 1000 addi s0,sp,32 + +100004b4 : +100004b4: 0544 addi s1,sp,644 +100004b6: 1000 addi s0,sp,32 +100004b8: 0550 addi a2,sp,644 +100004ba: 1000 addi s0,sp,32 +100004bc: 055c addi a5,sp,644 +100004be: 1000 addi s0,sp,32 +100004c0: 0568 addi a0,sp,652 +100004c2: 1000 addi s0,sp,32 + +100004c4 : +100004c4: 0574 addi a3,sp,652 +100004c6: 1000 addi s0,sp,32 +100004c8: 057c addi a5,sp,652 +100004ca: 1000 addi s0,sp,32 +100004cc: 0584 addi s1,sp,704 +100004ce: 1000 addi s0,sp,32 +100004d0: 058c addi a1,sp,704 +100004d2: 1000 addi s0,sp,32 + +100004d4 : +100004d4: 0514 addi a3,sp,640 +100004d6: 1000 addi s0,sp,32 +100004d8: 0520 addi s0,sp,648 +100004da: 1000 addi s0,sp,32 +100004dc: 052c addi a1,sp,648 +100004de: 1000 addi s0,sp,32 +100004e0: 0538 addi a4,sp,648 +100004e2: 1000 addi s0,sp,32 +100004e4: 3054 fld fa3,160(s0) +100004e6: 332e fld ft6,232(sp) +100004e8: 2d65 jal 10000ba0 +100004ea: 4631 li a2,12 +100004ec: 0000 unimp +100004ee: 0000 unimp +100004f0: 542d li s0,-21 +100004f2: 542e lw s0,232(sp) +100004f4: 71542b2b 0x71542b2b +100004f8: 0000 unimp +100004fa: 0000 unimp +100004fc: 5431 li s0,-20 +100004fe: 65342e33 0x65342e33 +10000502: 7a34 flw fa3,112(a2) +10000504: 0000 unimp +10000506: 0000 unimp +10000508: 302e3433 0x302e3433 +1000050c: 2d65 jal 10000bc4 +1000050e: 5e54 lw a3,60(a2) +10000510: 0000 unimp +10000512: 0000 unimp +10000514: 2e35 jal 10000850 +10000516: 3035 jal ffffd42 <_data_lma+0xfff969a> +10000518: 6530 flw fa2,72(a0) +1000051a: 0000332b 0x332b +1000051e: 0000 unimp +10000520: 2e2d jal 1000085a +10000522: 3231 jal ffffe2e <_data_lma+0xfff9786> +10000524: 322d6533 0x322d6533 +10000528: 0000 unimp +1000052a: 0000 unimp +1000052c: 382d jal ffffd66 <_data_lma+0xfff96be> +1000052e: 382b6537 lui a0,0x382b6 +10000532: 00003233 snez tp,zero +10000536: 0000 unimp +10000538: 362e302b 0x362e302b +1000053c: 2d65 jal 10000bf4 +1000053e: 3231 jal ffffe4a <_data_lma+0xfff97a2> +10000540: 0000 unimp +10000542: 0000 unimp +10000544: 352e3533 0x352e3533 +10000548: 3434 fld fa3,104(s0) +1000054a: 3030 fld fa2,96(s0) +1000054c: 0000 unimp +1000054e: 0000 unimp +10000550: 312e fld ft2,232(sp) +10000552: 3332 fld ft6,296(sp) +10000554: 3534 fld fa3,104(a0) +10000556: 3030 fld fa2,96(s0) +10000558: 0000 unimp +1000055a: 0000 unimp +1000055c: 312d jal 10000186 +1000055e: 3031 jal ffffd6a <_data_lma+0xfff96c2> +10000560: 372e fld fa4,232(sp) +10000562: 3030 fld fa2,96(s0) +10000564: 0000 unimp +10000566: 0000 unimp +10000568: 362e302b 0x362e302b +1000056c: 3434 fld fa3,104(s0) +1000056e: 3030 fld fa2,96(s0) +10000570: 0000 unimp +10000572: 0000 unimp +10000574: 3035 jal ffffda0 <_data_lma+0xfff96f8> +10000576: 3231 jal ffffe82 <_data_lma+0xfff97da> +10000578: 0000 unimp +1000057a: 0000 unimp +1000057c: 3231 jal ffffe88 <_data_lma+0xfff97e0> +1000057e: 00003433 snez s0,zero +10000582: 0000 unimp +10000584: 382d jal ffffdbe <_data_lma+0xfff9716> +10000586: 00003437 lui s0,0x3 +1000058a: 0000 unimp +1000058c: 3232312b 0x3232312b +10000590: 0000 unimp +10000592: 0000 unimp +10000594: 34cc fld fa1,168(s1) +10000596: f000 fsw fs0,32(s0) +10000598: 3490 fld fa2,40(s1) +1000059a: f000 fsw fs0,32(s0) +1000059c: 34a0 fld fs0,104(s1) +1000059e: f000 fsw fs0,32(s0) +100005a0: 34ac fld fa1,104(s1) +100005a2: f000 fsw fs0,32(s0) +100005a4: 34bc fld fa5,104(s1) +100005a6: f000 fsw fs0,32(s0) +100005a8: 3484 fld fs1,40(s1) +100005aa: f000 fsw fs0,32(s0) + ... +100005b4: d780 sw s0,40(a5) +100005b6: 4c784107 flq ft2,1223(a6) # ffff94c7 <_sp+0xefff64c7> +100005ba: f000 fsw fs0,32(s0) +100005bc: 4a64 lw s1,84(a2) +100005be: f000 fsw fs0,32(s0) +100005c0: 4184 lw s1,0(a1) +100005c2: f000 fsw fs0,32(s0) +100005c4: 4060 lw s0,68(s0) +100005c6: f000 fsw fs0,32(s0) +100005c8: 4060 lw s0,68(s0) +100005ca: f000 fsw fs0,32(s0) +100005cc: 4060 lw s0,68(s0) +100005ce: f000 fsw fs0,32(s0) +100005d0: 4060 lw s0,68(s0) +100005d2: f000 fsw fs0,32(s0) +100005d4: 4060 lw s0,68(s0) +100005d6: f000 fsw fs0,32(s0) +100005d8: 4060 lw s0,68(s0) +100005da: f000 fsw fs0,32(s0) +100005dc: 4060 lw s0,68(s0) +100005de: f000 fsw fs0,32(s0) +100005e0: 4060 lw s0,68(s0) +100005e2: f000 fsw fs0,32(s0) +100005e4: 4060 lw s0,68(s0) +100005e6: f000 fsw fs0,32(s0) +100005e8: 4060 lw s0,68(s0) +100005ea: f000 fsw fs0,32(s0) +100005ec: 4cc4 lw s1,28(s1) +100005ee: f000 fsw fs0,32(s0) +100005f0: 4060 lw s0,68(s0) +100005f2: f000 fsw fs0,32(s0) +100005f4: 4060 lw s0,68(s0) +100005f6: f000 fsw fs0,32(s0) +100005f8: 4060 lw s0,68(s0) +100005fa: f000 fsw fs0,32(s0) +100005fc: 4aac lw a1,80(a3) +100005fe: f000 fsw fs0,32(s0) +10000600: 4060 lw s0,68(s0) +10000602: f000 fsw fs0,32(s0) +10000604: 4184 lw s1,0(a1) +10000606: f000 fsw fs0,32(s0) +10000608: 4060 lw s0,68(s0) +1000060a: f000 fsw fs0,32(s0) +1000060c: 4060 lw s0,68(s0) +1000060e: f000 fsw fs0,32(s0) +10000610: 4a8c lw a1,16(a3) +10000612: f000 fsw fs0,32(s0) +10000614: 5a58 lw a4,52(a2) +10000616: f000 fsw fs0,32(s0) +10000618: 5838 lw a4,112(s0) +1000061a: f000 fsw fs0,32(s0) +1000061c: 59c8 lw a0,52(a1) +1000061e: f000 fsw fs0,32(s0) +10000620: 59d8 lw a4,52(a1) +10000622: f000 fsw fs0,32(s0) +10000624: 59c8 lw a0,52(a1) +10000626: f000 fsw fs0,32(s0) +10000628: 5890 lw a2,48(s1) +1000062a: f000 fsw fs0,32(s0) +1000062c: 59c8 lw a0,52(a1) +1000062e: f000 fsw fs0,32(s0) +10000630: 59d8 lw a4,52(a1) +10000632: f000 fsw fs0,32(s0) +10000634: 5838 lw a4,112(s0) +10000636: f000 fsw fs0,32(s0) +10000638: 5838 lw a4,112(s0) +1000063a: f000 fsw fs0,32(s0) +1000063c: 5890 lw a2,48(s1) +1000063e: f000 fsw fs0,32(s0) +10000640: 59d8 lw a4,52(a1) +10000642: f000 fsw fs0,32(s0) +10000644: 5a44 lw s1,52(a2) +10000646: f000 fsw fs0,32(s0) +10000648: 5a44 lw s1,52(a2) +1000064a: f000 fsw fs0,32(s0) +1000064c: 5a44 lw s1,52(a2) +1000064e: f000 fsw fs0,32(s0) +10000650: 5890 lw a2,48(s1) +10000652: f000 fsw fs0,32(s0) + +10000654 <__clz_tab>: +10000654: 0100 addi s0,sp,128 +10000656: 0202 c.slli64 tp +10000658: 03030303 lb t1,48(t1) # b030 <_data_lma+0x4988> +1000065c: 0404 addi s1,sp,512 +1000065e: 0404 addi s1,sp,512 +10000660: 0404 addi s1,sp,512 +10000662: 0404 addi s1,sp,512 +10000664: 0505 addi a0,a0,1 +10000666: 0505 addi a0,a0,1 +10000668: 0505 addi a0,a0,1 +1000066a: 0505 addi a0,a0,1 +1000066c: 0505 addi a0,a0,1 +1000066e: 0505 addi a0,a0,1 +10000670: 0505 addi a0,a0,1 +10000672: 0505 addi a0,a0,1 +10000674: 0606 slli a2,a2,0x1 +10000676: 0606 slli a2,a2,0x1 +10000678: 0606 slli a2,a2,0x1 +1000067a: 0606 slli a2,a2,0x1 +1000067c: 0606 slli a2,a2,0x1 +1000067e: 0606 slli a2,a2,0x1 +10000680: 0606 slli a2,a2,0x1 +10000682: 0606 slli a2,a2,0x1 +10000684: 0606 slli a2,a2,0x1 +10000686: 0606 slli a2,a2,0x1 +10000688: 0606 slli a2,a2,0x1 +1000068a: 0606 slli a2,a2,0x1 +1000068c: 0606 slli a2,a2,0x1 +1000068e: 0606 slli a2,a2,0x1 +10000690: 0606 slli a2,a2,0x1 +10000692: 0606 slli a2,a2,0x1 +10000694: 07070707 0x7070707 +10000698: 07070707 0x7070707 +1000069c: 07070707 0x7070707 +100006a0: 07070707 0x7070707 +100006a4: 07070707 0x7070707 +100006a8: 07070707 0x7070707 +100006ac: 07070707 0x7070707 +100006b0: 07070707 0x7070707 +100006b4: 07070707 0x7070707 +100006b8: 07070707 0x7070707 +100006bc: 07070707 0x7070707 +100006c0: 07070707 0x7070707 +100006c4: 07070707 0x7070707 +100006c8: 07070707 0x7070707 +100006cc: 07070707 0x7070707 +100006d0: 07070707 0x7070707 +100006d4: 0808 addi a0,sp,16 +100006d6: 0808 addi a0,sp,16 +100006d8: 0808 addi a0,sp,16 +100006da: 0808 addi a0,sp,16 +100006dc: 0808 addi a0,sp,16 +100006de: 0808 addi a0,sp,16 +100006e0: 0808 addi a0,sp,16 +100006e2: 0808 addi a0,sp,16 +100006e4: 0808 addi a0,sp,16 +100006e6: 0808 addi a0,sp,16 +100006e8: 0808 addi a0,sp,16 +100006ea: 0808 addi a0,sp,16 +100006ec: 0808 addi a0,sp,16 +100006ee: 0808 addi a0,sp,16 +100006f0: 0808 addi a0,sp,16 +100006f2: 0808 addi a0,sp,16 +100006f4: 0808 addi a0,sp,16 +100006f6: 0808 addi a0,sp,16 +100006f8: 0808 addi a0,sp,16 +100006fa: 0808 addi a0,sp,16 +100006fc: 0808 addi a0,sp,16 +100006fe: 0808 addi a0,sp,16 +10000700: 0808 addi a0,sp,16 +10000702: 0808 addi a0,sp,16 +10000704: 0808 addi a0,sp,16 +10000706: 0808 addi a0,sp,16 +10000708: 0808 addi a0,sp,16 +1000070a: 0808 addi a0,sp,16 +1000070c: 0808 addi a0,sp,16 +1000070e: 0808 addi a0,sp,16 +10000710: 0808 addi a0,sp,16 +10000712: 0808 addi a0,sp,16 +10000714: 0808 addi a0,sp,16 +10000716: 0808 addi a0,sp,16 +10000718: 0808 addi a0,sp,16 +1000071a: 0808 addi a0,sp,16 +1000071c: 0808 addi a0,sp,16 +1000071e: 0808 addi a0,sp,16 +10000720: 0808 addi a0,sp,16 +10000722: 0808 addi a0,sp,16 +10000724: 0808 addi a0,sp,16 +10000726: 0808 addi a0,sp,16 +10000728: 0808 addi a0,sp,16 +1000072a: 0808 addi a0,sp,16 +1000072c: 0808 addi a0,sp,16 +1000072e: 0808 addi a0,sp,16 +10000730: 0808 addi a0,sp,16 +10000732: 0808 addi a0,sp,16 +10000734: 0808 addi a0,sp,16 +10000736: 0808 addi a0,sp,16 +10000738: 0808 addi a0,sp,16 +1000073a: 0808 addi a0,sp,16 +1000073c: 0808 addi a0,sp,16 +1000073e: 0808 addi a0,sp,16 +10000740: 0808 addi a0,sp,16 +10000742: 0808 addi a0,sp,16 +10000744: 0808 addi a0,sp,16 +10000746: 0808 addi a0,sp,16 +10000748: 0808 addi a0,sp,16 +1000074a: 0808 addi a0,sp,16 +1000074c: 0808 addi a0,sp,16 +1000074e: 0808 addi a0,sp,16 +10000750: 0808 addi a0,sp,16 +10000752: 0808 addi a0,sp,16 +10000754: 0000 unimp + ... + +10000758 : +10000758: 0066 c.slli zero,0x19 + ... + +1000075c : +1000075c: 2710 fld fa2,8(a4) + ... + +Disassembly of section .bss: + +10000760 : +10000760: 0000 unimp + ... + +10000764 : +10000764: 0000 unimp + ... + +10000768 : + ... + +10000770 : + ... + +10000778 : + ... + +10000780 : +10000780: 0000 unimp + ... + +10000784 : +10000784: 0000 unimp + ... + +10000788 : + ... + +Disassembly of section .stack: + +10002000 <_sp-0x1000>: + ... + +Disassembly of section .comment: + +00000000 <.comment>: + 0: 3a434347 fmsub.d ft6,ft6,ft4,ft7,rmm + 4: 2820 fld fs0,80(s0) + 6: 20554e47 fmsub.s ft8,fa0,ft5,ft4,rmm + a: 434d li t1,19 + c: 2055 jal b0 + e: 6345 lui t1,0x11 + 10: 696c flw fa1,84(a0) + 12: 7370 flw fa2,100(a4) + 14: 2065 jal bc + 16: 4952 lw s2,20(sp) + 18: 562d4353 0x562d4353 + 1c: 4520 lw s0,72(a0) + 1e: 626d lui tp,0x1b + 20: 6465 lui s0,0x19 + 22: 6564 flw fs1,76(a0) + 24: 2064 fld fs1,192(s0) + 26: 2c434347 0x2c434347 + 2a: 3620 fld fs0,104(a2) + 2c: 2d34 fld fa3,88(a0) + 2e: 6962 flw fs2,24(sp) + 30: 2974 fld fa3,208(a0) + 32: 3820 fld fs0,112(s0) + 34: 322e fld ft4,232(sp) + 36: 302e fld ft0,232(sp) + ... + +Disassembly of section .debug_frame: + +00000000 <.debug_frame>: + 0: 000c 0xc + 2: 0000 unimp + 4: ffff 0xffff + 6: ffff 0xffff + 8: 0001 nop + a: 7c01 lui s8,0xfffe0 + c: 0d01 addi s10,s10,0 + e: 0002 c.slli64 zero + 10: 003c addi a5,sp,8 + 12: 0000 unimp + 14: 0000 unimp + 16: 0000 unimp + 18: 5d50 lw a2,60(a0) + 1a: 0000 unimp + 1c: 079c addi a5,sp,960 + 1e: 0000 unimp + 20: 0e44 addi s1,sp,788 + 22: 5040 lw s0,36(s0) + 24: 0288 addi a0,sp,320 + 26: 0492 slli s1,s1,0x4 + 28: 0795 addi a5,a5,5 + 2a: 8160 0x8160 + 2c: 8901 andi a0,a0,0 + 2e: 94059303 lh t1,-1728(a1) + 32: 9606 add a2,a2,ra + 34: 9708 0x9708 + 36: 0209 addi tp,tp,2 + 38: 0adc addi a5,sp,340 + 3a: 44c1 li s1,16 + 3c: 58c8 lw a0,52(s1) + 3e: 44c9 li s1,18 + 40: 44d2 lw s1,20(sp) + 42: 44d444d3 0x44d444d3 + 46: 44d5 li s1,21 + 48: 44d6 lw s1,84(sp) + 4a: 000e4cd7 0xe4cd7 + 4e: 0b44 addi s1,sp,404 + 50: 000c 0xc + 52: 0000 unimp + 54: ffff 0xffff + 56: ffff 0xffff + 58: 0001 nop + 5a: 7c01 lui s8,0xfffe0 + 5c: 0d01 addi s10,s10,0 + 5e: 0002 c.slli64 zero + 60: 000c 0xc + 62: 0000 unimp + 64: 0050 addi a2,sp,4 + 66: 0000 unimp + 68: 64ec flw fa1,76(s1) + 6a: 0000 unimp + 6c: 0078 addi a4,sp,12 + 6e: 0000 unimp + 70: 000c 0xc + 72: 0000 unimp + 74: ffff 0xffff + 76: ffff 0xffff + 78: 0001 nop + 7a: 7c01 lui s8,0xfffe0 + 7c: 0d01 addi s10,s10,0 + 7e: 0002 c.slli64 zero + 80: 0024 addi s1,sp,8 + 82: 0000 unimp + 84: 0070 addi a2,sp,12 + 86: 0000 unimp + 88: 6564 flw fs1,76(a0) + 8a: 0000 unimp + 8c: 00b0 addi a2,sp,72 + 8e: 0000 unimp + 90: 0e48 addi a0,sp,788 + 92: 4810 lw a2,16(s0) + 94: 0288 addi a0,sp,320 + 96: 0181 addi gp,gp,0 + 98: c174 sw a3,68(a0) + 9a: c844 sw s1,20(s0) + 9c: 0e5c addi a5,sp,788 + 9e: 6c00 flw fs0,24(s0) + a0: 100e c.slli zero,0x23 + a2: 0181 addi gp,gp,0 + a4: 0288 addi a0,sp,320 + a6: 0000 unimp + a8: 000c 0xc + aa: 0000 unimp + ac: ffff 0xffff + ae: ffff 0xffff + b0: 0001 nop + b2: 7c01 lui s8,0xfffe0 + b4: 0d01 addi s10,s10,0 + b6: 0002 c.slli64 zero + b8: 000c 0xc + ba: 0000 unimp + bc: 00a8 addi a0,sp,72 + be: 0000 unimp + c0: 6614 flw fa3,8(a2) + c2: 0000 unimp + c4: 0094 addi a3,sp,64 + ... diff --git a/tests/example/coremark/coremark.h b/tests/example/coremark/coremark.h new file mode 100644 index 0000000..8a6e162 --- /dev/null +++ b/tests/example/coremark/coremark.h @@ -0,0 +1,174 @@ +/* +Author : Shay Gal-On, EEMBC + +This file is part of EEMBC(R) and CoreMark(TM), which are Copyright (C) 2009 +All rights reserved. + +EEMBC CoreMark Software is a product of EEMBC and is provided under the terms of the +CoreMark License that is distributed with the official EEMBC COREMARK Software release. +If you received this EEMBC CoreMark Software without the accompanying CoreMark License, +you must discontinue use and download the official release from www.coremark.org. + +Also, if you are publicly displaying scores generated from the EEMBC CoreMark software, +make sure that you are in compliance with Run and Reporting rules specified in the accompanying readme.txt file. + +EEMBC +4354 Town Center Blvd. Suite 114-200 +El Dorado Hills, CA, 95762 +*/ +/* Topic: Description + This file contains declarations of the various benchmark functions. +*/ + +/* Configuration: TOTAL_DATA_SIZE + Define total size for data algorithms will operate on +*/ +#ifndef TOTAL_DATA_SIZE +#define TOTAL_DATA_SIZE 2*1000 +#endif + +#define SEED_ARG 0 +#define SEED_FUNC 1 +#define SEED_VOLATILE 2 + +#define MEM_STATIC 0 +#define MEM_MALLOC 1 +#define MEM_STACK 2 + +#include "core_portme.h" + +#if HAS_STDIO +#include +#endif +#if HAS_PRINTF +#define ee_printf xprintf +#endif + +/* Actual benchmark execution in iterate */ +void *iterate(void *pres); + +/* Typedef: secs_ret + For machines that have floating point support, get number of seconds as a double. + Otherwise an unsigned int. +*/ +#if HAS_FLOAT +typedef double secs_ret; +#else +typedef ee_u32 secs_ret; +#endif + +#if MAIN_HAS_NORETURN +#define MAIN_RETURN_VAL +#define MAIN_RETURN_TYPE void +#else +#define MAIN_RETURN_VAL 0 +#define MAIN_RETURN_TYPE int +#endif + +void start_time(void); +void stop_time(void); +CORE_TICKS get_time(void); +secs_ret time_in_secs(CORE_TICKS ticks); + +/* Misc useful functions */ +ee_u16 crcu8(ee_u8 data, ee_u16 crc); +ee_u16 crc16(ee_s16 newval, ee_u16 crc); +ee_u16 crcu16(ee_u16 newval, ee_u16 crc); +ee_u16 crcu32(ee_u32 newval, ee_u16 crc); +ee_u8 check_data_types(); +void *portable_malloc(ee_size_t size); +void portable_free(void *p); +ee_s32 parseval(char *valstring); + +/* Algorithm IDS */ +#define ID_LIST (1<<0) +#define ID_MATRIX (1<<1) +#define ID_STATE (1<<2) +#define ALL_ALGORITHMS_MASK (ID_LIST|ID_MATRIX|ID_STATE) +#define NUM_ALGORITHMS 3 + +/* list data structures */ +typedef struct list_data_s { + ee_s16 data16; + ee_s16 idx; +} list_data; + +typedef struct list_head_s { + struct list_head_s *next; + struct list_data_s *info; +} list_head; + + +/*matrix benchmark related stuff */ +#define MATDAT_INT 1 +#if MATDAT_INT +typedef ee_s16 MATDAT; +typedef ee_s32 MATRES; +#else +typedef ee_f16 MATDAT; +typedef ee_f32 MATRES; +#endif + +typedef struct MAT_PARAMS_S { + int N; + MATDAT *A; + MATDAT *B; + MATRES *C; +} mat_params; + +/* state machine related stuff */ +/* List of all the possible states for the FSM */ +typedef enum CORE_STATE { + CORE_START=0, + CORE_INVALID, + CORE_S1, + CORE_S2, + CORE_INT, + CORE_FLOAT, + CORE_EXPONENT, + CORE_SCIENTIFIC, + NUM_CORE_STATES +} core_state_e ; + + +/* Helper structure to hold results */ +typedef struct RESULTS_S { + /* inputs */ + ee_s16 seed1; /* Initializing seed */ + ee_s16 seed2; /* Initializing seed */ + ee_s16 seed3; /* Initializing seed */ + void *memblock[4]; /* Pointer to safe memory location */ + ee_u32 size; /* Size of the data */ + ee_u32 iterations; /* Number of iterations to execute */ + ee_u32 execs; /* Bitmask of operations to execute */ + struct list_head_s *list; + mat_params mat; + /* outputs */ + ee_u16 crc; + ee_u16 crclist; + ee_u16 crcmatrix; + ee_u16 crcstate; + ee_s16 err; + /* ultithread specific */ + core_portable port; +} core_results; + +/* Multicore execution handling */ +#if (MULTITHREAD>1) +ee_u8 core_start_parallel(core_results *res); +ee_u8 core_stop_parallel(core_results *res); +#endif + +/* list benchmark functions */ +list_head *core_list_init(ee_u32 blksize, list_head *memblock, ee_s16 seed); +ee_u16 core_bench_list(core_results *res, ee_s16 finder_idx); + +/* state benchmark functions */ +void core_init_state(ee_u32 size, ee_s16 seed, ee_u8 *p); +ee_u16 core_bench_state(ee_u32 blksize, ee_u8 *memblock, + ee_s16 seed1, ee_s16 seed2, ee_s16 step, ee_u16 crc); + +/* matrix benchmark functions */ +ee_u32 core_init_matrix(ee_u32 blksize, void *memblk, ee_s32 seed, mat_params *p); +ee_u16 core_bench_matrix(mat_params *p, ee_s16 seed, ee_u16 crc); +