instruction.inc

Переключить прокрутку окна
Загрузить этот исходный код

;
 ;  Исходный код среды исполнения ПВТ-ОО.
 ;
 ;  Этот исходный код является частью проекта ПВТ-ОО.
 ;
 ;  Copyright © 2021 Малик Разработчик
 ;
 ;  Это свободная программа: вы можете перераспространять её и/или
 ;  изменять её на условиях Меньшей Стандартной общественной лицензии GNU в том виде,
 ;  в каком она была опубликована Фондом свободного программного обеспечения;
 ;  либо версии 3 лицензии, либо (по вашему выбору) любой более поздней версии.
 ;
 ;  Эта программа распространяется в надежде, что она может быть полезна,
 ;  но БЕЗО ВСЯКИХ ГАРАНТИЙ; даже без неявной гарантии ТОВАРНОГО ВИДА
 ;  или ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЁННЫХ ЦЕЛЕЙ. Подробнее см. в Меньшей Стандартной
 ;  общественной лицензии GNU.
 ;
 ;  Вы должны были получить копию Меньшей Стандартной общественной лицензии GNU
 ;  вместе с этой программой. Если это не так, см.
 ;  <http://www.gnu.org/licenses/>.
;

; <fold instruction constants>
    ; <fold i8/l8 inc/dec>
                dalign  $40
        i8.id:
        l8.id:  dq      $0000000000000001, $0000000000000000, $0000000000000000, $0000000000000000, $0000000000000000, $0000000000000000, $0000000000000000, $0000000000000000
    ; </fold>

    ; <fold f8 inc/dec>
                dalign  $20
        f8.id:  dd      $3f800000, $00000000, $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
    ; </fold>

    ; <fold d8 inc/dec>
                dalign  $40
        d8.id:  dq      $3ff0000000000000, $0000000000000000, $0000000000000000, $0000000000000000, $0000000000000000, $0000000000000000, $0000000000000000, $0000000000000000
    ; </fold>

    ; <fold i2smul>
                dalign  $10
        i2.c0:  dd      1, -1,  0,  0
    ; </fold>

    ; <fold i4smul>
                dalign  $10
        i4.q0:  dd      1, -1, -1, -1
        i4.q1:  dd      1,  1,  1, -1
        i4.q2:  dd      1, -1,  1,  1
        i4.q3:  dd      1,  1, -1,  1
    ; </fold>

    ; <fold i8smul>
                dalign  $20
        i8.o0:  dd      1, -1, -1, -1, -1, -1, -1, -1
        i8.o1:  dd      1,  1,  1, -1,  1, -1, -1,  1
        i8.o2:  dd      1, -1,  1,  1,  1,  1, -1, -1
        i8.o3:  dd      1,  1, -1,  1,  1, -1,  1, -1
        i8.o4:  dd      1, -1, -1, -1,  1,  1,  1,  1
        i8.o5:  dd      1,  1, -1,  1, -1,  1, -1,  1
        i8.o6:  dd      1,  1,  1, -1, -1,  1,  1, -1
        i8.o7:  dd      1, -1,  1,  1, -1, -1,  1,  1
    ; </fold>

    ; <fold l2smul>
                dalign  $10
        l2.c0:  dq      1, -1
    ; </fold>

    ; <fold l4smul>
                dalign  $20
        l4.q0:  dq      1, -1, -1, -1
        l4.q1:  dq      1,  1,  1, -1
        l4.q2:  dq      1, -1,  1,  1
        l4.q3:  dq      1,  1, -1,  1
    ; </fold>

    ; <fold l8smul>
                dalign  $40
        l8.o0:  dq      1, -1, -1, -1, -1, -1, -1, -1
        l8.o1:  dq      1,  1,  1, -1,  1, -1, -1,  1
        l8.o2:  dq      1, -1,  1,  1,  1,  1, -1, -1
        l8.o3:  dq      1,  1, -1,  1,  1, -1,  1, -1
        l8.o4:  dq      1, -1, -1, -1,  1,  1,  1,  1
        l8.o5:  dq      1,  1, -1,  1, -1,  1, -1,  1
        l8.o6:  dq      1,  1,  1, -1, -1,  1,  1, -1
        l8.o7:  dq      1, -1,  1,  1, -1, -1,  1,  1
    ; </fold>

    ; <fold f2smul>
                dalign  $10
        f2.c0:  dd      $3f800000, $bf800000, 0, 0
    ; </fold>

    ; <fold f4smul>
                dalign  $10
        f4.q0:  dd      $3f800000, $bf800000, $bf800000, $bf800000
        f4.q1:  dd      $3f800000, $3f800000, $3f800000, $bf800000
        f4.q2:  dd      $3f800000, $bf800000, $3f800000, $3f800000
        f4.q3:  dd      $3f800000, $3f800000, $bf800000, $3f800000
    ; </fold>

    ; <fold f8smul>
                dalign  $20
        f8.o0:  dd      $3f800000, $bf800000, $bf800000, $bf800000, $bf800000, $bf800000, $bf800000, $bf800000
        f8.o1:  dd      $3f800000, $3f800000, $3f800000, $bf800000, $3f800000, $bf800000, $bf800000, $3f800000
        f8.o2:  dd      $3f800000, $bf800000, $3f800000, $3f800000, $3f800000, $3f800000, $bf800000, $bf800000
        f8.o3:  dd      $3f800000, $3f800000, $bf800000, $3f800000, $3f800000, $bf800000, $3f800000, $bf800000
        f8.o4:  dd      $3f800000, $bf800000, $bf800000, $bf800000, $3f800000, $3f800000, $3f800000, $3f800000
        f8.o5:  dd      $3f800000, $3f800000, $bf800000, $3f800000, $bf800000, $3f800000, $bf800000, $3f800000
        f8.o6:  dd      $3f800000, $3f800000, $3f800000, $bf800000, $bf800000, $3f800000, $3f800000, $bf800000
        f8.o7:  dd      $3f800000, $bf800000, $3f800000, $3f800000, $bf800000, $bf800000, $3f800000, $3f800000
    ; </fold>

    ; <fold d2smul>
                dalign  $10
        d2.c0:  dq      $3ff0000000000000, $bff0000000000000
    ; </fold>

    ; <fold d4smul>
                dalign  $20
        d4.q0:  dq      $3ff0000000000000, $bff0000000000000, $bff0000000000000, $bff0000000000000
        d4.q1:  dq      $3ff0000000000000, $3ff0000000000000, $3ff0000000000000, $bff0000000000000
        d4.q2:  dq      $3ff0000000000000, $bff0000000000000, $3ff0000000000000, $3ff0000000000000
        d4.q3:  dq      $3ff0000000000000, $3ff0000000000000, $bff0000000000000, $3ff0000000000000
    ; </fold>

    ; <fold d8smul>
                dalign  $40
        d8.o0:  dq      $3ff0000000000000, $bff0000000000000, $bff0000000000000, $bff0000000000000, $bff0000000000000, $bff0000000000000, $bff0000000000000, $bff0000000000000
        d8.o1:  dq      $3ff0000000000000, $3ff0000000000000, $3ff0000000000000, $bff0000000000000, $3ff0000000000000, $bff0000000000000, $bff0000000000000, $3ff0000000000000
        d8.o2:  dq      $3ff0000000000000, $bff0000000000000, $3ff0000000000000, $3ff0000000000000, $3ff0000000000000, $3ff0000000000000, $bff0000000000000, $bff0000000000000
        d8.o3:  dq      $3ff0000000000000, $3ff0000000000000, $bff0000000000000, $3ff0000000000000, $3ff0000000000000, $bff0000000000000, $3ff0000000000000, $bff0000000000000
        d8.o4:  dq      $3ff0000000000000, $bff0000000000000, $bff0000000000000, $bff0000000000000, $3ff0000000000000, $3ff0000000000000, $3ff0000000000000, $3ff0000000000000
        d8.o5:  dq      $3ff0000000000000, $3ff0000000000000, $bff0000000000000, $3ff0000000000000, $bff0000000000000, $3ff0000000000000, $bff0000000000000, $3ff0000000000000
        d8.o6:  dq      $3ff0000000000000, $3ff0000000000000, $3ff0000000000000, $bff0000000000000, $bff0000000000000, $3ff0000000000000, $3ff0000000000000, $bff0000000000000
        d8.o7:  dq      $3ff0000000000000, $bff0000000000000, $3ff0000000000000, $3ff0000000000000, $bff0000000000000, $bff0000000000000, $3ff0000000000000, $3ff0000000000000
    ; </fold>

    ; <fold i>
                dalign  $10
        i.00:   dd      $7fffffff
    ; </fold>

    ; <fold i4>
                dalign  $10
        i4.00:  dd      $00000030, $00000020, $00000010, $00000000
    ; </fold>

    ; <fold i8>
                dalign  $20
        i8.00:  dd      $00000070, $00000060, $00000050, $00000040, $00000030, $00000020, $00000010, $00000000
        i8.01:  dd      $ffffffff, $ffffffff, $ffffffff, $ffffffff, $ffffffff, $ffffffff, $ffffffff, $ffffffff
        i8.02:  dd      $0000ffff, $0000ffff, $0000ffff, $0000ffff, $0000ffff, $0000ffff, $0000ffff, $0000ffff
        i8.03:  dd      $000000ff, $000000ff, $000000ff, $000000ff, $000000ff, $000000ff, $000000ff, $000000ff
        i8.04:  dd      $ffffffff, $ffffffff, $00000000, $00000000, $ffffffff, $ffffffff, $00000000, $00000000
        i8.05:  dd      $00004000, $00004000, $00004000, $00004000, $00004000, $00004000, $00004000, $00004000
    ; </fold>

    ; <fold l>
                dalign  $10
        l.00:   dq      $8000000000000000
        l.01:   dq      $ffffffffffffffff
        l.02:   dq      $7fffffffffffffff
    ; </fold>

    ; <fold l8>
                dalign  $40
        l8.00:  dq      $ffffffffffffffff, $ffffffffffffffff, $ffffffffffffffff, $ffffffffffffffff, $ffffffffffffffff, $ffffffffffffffff, $ffffffffffffffff, $ffffffffffffffff
        l8.01:  dq      $00000000ffffffff, $00000000ffffffff, $00000000ffffffff, $00000000ffffffff, $00000000ffffffff, $00000000ffffffff, $00000000ffffffff, $00000000ffffffff
        l8.02:  dq      $000000000000ffff, $000000000000ffff, $000000000000ffff, $000000000000ffff, $000000000000ffff, $000000000000ffff, $000000000000ffff, $000000000000ffff
        l8.03:  dq      $00000000000000ff, $00000000000000ff, $00000000000000ff, $00000000000000ff, $00000000000000ff, $00000000000000ff, $00000000000000ff, $00000000000000ff
    ; </fold>

    ; <fold f8>
                dalign  $20
        f8.00:  dd      $4f000000, $4f000000, $4f000000, $4f000000, $4f000000, $4f000000, $4f000000, $4f000000
    ; </fold>

    ; <fold d8>
                dalign  $40
        d8.00:  dq      $41e0000000000000, $41e0000000000000, $41e0000000000000, $41e0000000000000, $41e0000000000000, $41e0000000000000, $41e0000000000000, $41e0000000000000
        d8.01:  dq      $43e0000000000000, $43e0000000000000, $43e0000000000000, $43e0000000000000, $43e0000000000000, $43e0000000000000, $43e0000000000000, $43e0000000000000
    ; </fold>

    ; <fold b8>
                dalign  $10
        b8.00:  db      $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff
        b8.01:  db      $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff, $00, $00, $00, $00, $00, $00, $00, $00
        b8.02:  db      $ff, $ff, $ff, $ff, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
        b8.03:  db      $ff, $ff, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
        b8.04:  db      $ff, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
    ; </fold>

    ; <fold s8>
                dalign  $10
        s8.00:  dw      $00ff, $00ff, $00ff, $00ff, $00ff, $00ff, $00ff, $00ff
        s8.01:  dw      $ffff, $ffff, $ffff, $ffff, $ffff, $ffff, $ffff, $ffff
        s8.02:  dw      $ffff, $ffff, $ffff, $ffff, $0000, $0000, $0000, $0000
        s8.03:  dw      $ffff, $ffff, $0000, $0000, $0000, $0000, $0000, $0000
        s8.04:  dw      $ffff, $0000, $0000, $0000, $0000, $0000, $0000, $0000
        s8.05:  dw      $0040, $0040, $0040, $0040, $0040, $0040, $0040, $0040
    ; </fold>
; </fold>