Advertisement
Guest User

Untitled

a guest
Dec 28th, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. void find_max_acs_seq_looped(int* arr, int size, int* i_strt_seq, int* seq_len){
  2.  1200278:   f811883a    mov r8,ra
  3.  120027c:   120db6c0    call    120db6c <_mcount>
  4.  1200280:   403f883a    mov ra,r8
  5.  1200284:   defff804    addi    sp,sp,-32
  6.  1200288:   df000715    stw fp,28(sp)          //
  7.  120028c:   df000704    addi    fp,sp,28
  8.  1200290:   e13ffc15    stw r4,-16(fp)         // arr
  9.  1200294:   e17ffd15    stw r5,-12(fp)         // size
  10.  1200298:   e1bffe15    stw r6,-8(fp)          // i_str_seg
  11.  120029c:   e1ffff15    stw r7,-4(fp)          // seq_len
  12.     *i_strt_seq = 0;
  13.  12002a0:   e0bffe17    ldw r2,-8(fp)          
  14.  12002a4:   10000015    stw zero,0(r2)         // загрузили 0 в i_str_seq
  15.     *seq_len = 0;
  16.  12002a8:   e0bfff17    ldw r2,-4(fp)
  17.  12002ac:   10000015    stw zero,0(r2)         // загрузили 0 в seq_len
  18.     int i_strt_seq_cur = 0;
  19.  12002b0:   e03ff915    stw zero,-28(fp)       // загрузили 0 в i_strt_seq_cur
  20.     int seq_len_cur = 0;
  21.  12002b4:   e03ffa15    stw zero,-24(fp)       // загрузили 0 в seq_len_cur
  22.  
  23.     for (int i = 1; i < size; i++){
  24.  12002b8:   00800044    movi    r2,1
  25.  12002bc:   e0bffb15    stw r2,-20(fp)  
  26.  12002c0:   00002806    br  1200364 <find_max_acs_seq_looped+0xec>
  27.         if (arr[i] < arr[i-1]){
  28.  12002c4:   e0bffb17    ldw r2,-20(fp)         // в r2 загрузили arr
  29.  12002c8:   1085883a    add r2,r2,r2
  30.  12002cc:   1085883a    add r2,r2,r2           // r2 = 4*r2
  31.  12002d0:   1007883a    mov r3,r2              // r3 = r2;
  32.  12002d4:   e0bffc17    ldw r2,-16(fp)
  33.  12002d8:   10c5883a    add r2,r2,r3  
  34.  12002dc:   10c00017    ldw r3,0(r2)           // выгрузили arr[i - 1]
  35.  12002e0:   e13ffb17    ldw r4,-20(fp)
  36.  12002e4:   00900034    movhi   r2,16384
  37.  12002e8:   10bfffc4    addi    r2,r2,-1
  38.  12002ec:   2085883a    add r2,r4,r2
  39.  12002f0:   1085883a    add r2,r2,r2
  40.  12002f4:   1085883a    add r2,r2,r2
  41.  12002f8:   1009883a    mov r4,r2
  42.  12002fc:   e0bffc17    ldw r2,-16(fp)
  43.  1200300:   1105883a    add r2,r2,r4
  44.  1200304:   10800017    ldw r2,0(r2)           // выгрузили arr[i]
  45.  1200308:   1880080e    bge r3,r2,120032c <find_max_acs_seq_looped+0xb4>
  46.             if (!seq_len_cur++)
  47.  120030c:   e0bffa17    ldw r2,-24(fp)         // выгрузили seq_len_cur из памяти
  48.  1200310:   10c00044    addi    r3,r2,1        // инкремент
  49.  1200314:   e0fffa15    stw r3,-24(fp)         // загрузили обратно seq_len_cur в память
  50.  1200318:   10000f1e    bne r2,zero,1200358 <find_max_acs_seq_looped+0xe0>
  51.                 i_strt_seq_cur= i-1;
  52.  120031c:   e0bffb17    ldw r2,-20(fp)
  53.  1200320:   10bfffc4    addi    r2,r2,-1 // аналогично
  54.  1200324:   e0bff915    stw r2,-28(fp)
  55.  1200328:   00000b06    br  1200358 <find_max_acs_seq_looped+0xe0>
  56.         } else {
  57.             if (seq_len_cur > *seq_len){
  58.  120032c:   e0bfff17    ldw r2,-4(fp)           //
  59.  1200330:   10c00017    ldw r3,0(r2)            // выгрузили seq_len
  60.  1200334:   e0bffa17    ldw r2,-24(fp)          // выгрузили seq_len_cur
  61.  1200338:   1880060e    bge r3,r2,1200354 <find_max_acs_seq_looped+0xdc> // переход при seq_len_cur <= *seq_len
  62.                 *i_strt_seq = i_strt_seq_cur;
  63.  120033c:   e0bffe17    ldw r2,-8(fp)    
  64.  1200340:   e0fff917    ldw r3,-28(fp)
  65.  1200344:   10c00015    stw r3,0(r2)
  66.                 *seq_len = seq_len_cur;
  67.  1200348:   e0bfff17    ldw r2,-4(fp)
  68.  120034c:   e0fffa17    ldw r3,-24(fp)
  69.  1200350:   10c00015    stw r3,0(r2)
  70.             }
  71.             seq_len_cur = 0;
  72.  1200354:   e03ffa15    stw zero,-24(fp)
  73.  
  74.     *i_strt_seq = 0;
  75.     *seq_len = 0;
  76.     int i_strt_seq_cur = 0;
  77.     int seq_len_cur = 0;
  78.  
  79.     for (int i = 1; i < size; i++){
  80.  1200358:   e0bffb17    ldw r2,-20(fp)
  81.  120035c:   10800044    addi    r2,r2,1
  82.  1200360:   e0bffb15    stw r2,-20(fp)
  83.  1200364:   e0fffb17    ldw r3,-20(fp)
  84.  1200368:   e0bffd17    ldw r2,-12(fp)
  85.  120036c:   18bfd516    blt r3,r2,12002c4 <handle_button_interrupts+0xff2002c4>
  86.             }
  87.             seq_len_cur = 0;
  88.         }
  89.     }
  90.  
  91.     if (seq_len_cur > *seq_len){
  92.  1200370:   e0bfff17    ldw r2,-4(fp)
  93.  1200374:   10c00017    ldw r3,0(r2)
  94.  1200378:   e0bffa17    ldw r2,-24(fp)
  95.  120037c:   1880060e    bge r3,r2,1200398 <find_max_acs_seq_looped+0x120>
  96.         *i_strt_seq = i_strt_seq_cur;
  97.  1200380:   e0bffe17    ldw r2,-8(fp)
  98.  1200384:   e0fff917    ldw r3,-28(fp)
  99.  1200388:   10c00015    stw r3,0(r2)
  100.         *seq_len = seq_len_cur;
  101.  120038c:   e0bfff17    ldw r2,-4(fp)
  102.  1200390:   e0fffa17    ldw r3,-24(fp)
  103.  1200394:   10c00015    stw r3,0(r2)
  104.     }
  105.     (*seq_len)++;
  106.  1200398:   e0bfff17    ldw r2,-4(fp)
  107.  120039c:   10800017    ldw r2,0(r2)
  108.  12003a0:   10c00044    addi    r3,r2,1
  109.  12003a4:   e0bfff17    ldw r2,-4(fp)
  110.  12003a8:   10c00015    stw r3,0(r2)
  111. }
  112.  12003ac:   0001883a    nop
  113.  12003b0:   e037883a    mov sp,fp
  114.  12003b4:   df000017    ldw fp,0(sp)
  115.  12003b8:   dec00104    addi    sp,sp,4
  116.  12003bc:   f800283a    ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement