const.inc

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

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

; <fold ScalarMulDouble2>
                constant    smuld2, $10
        .c0:    dq          $3ff0000000000000, $bff0000000000000
; </fold>

; <fold ScalarMulDouble4>
                constant    smuld4, $20
        .q0:    dq          $3ff0000000000000, $bff0000000000000, $bff0000000000000, $bff0000000000000
        .q1:    dq          $3ff0000000000000, $3ff0000000000000, $3ff0000000000000, $bff0000000000000
        .q2:    dq          $3ff0000000000000, $bff0000000000000, $3ff0000000000000, $3ff0000000000000
        .q3:    dq          $3ff0000000000000, $3ff0000000000000, $bff0000000000000, $3ff0000000000000
; </fold>

; <fold ScalarMulDouble8>
                constant    smuld8, $40
        .o0:    dq          $3ff0000000000000, $bff0000000000000, $bff0000000000000, $bff0000000000000, $bff0000000000000, $bff0000000000000, $bff0000000000000, $bff0000000000000
        .o1:    dq          $3ff0000000000000, $3ff0000000000000, $3ff0000000000000, $bff0000000000000, $3ff0000000000000, $bff0000000000000, $bff0000000000000, $3ff0000000000000
        .o2:    dq          $3ff0000000000000, $bff0000000000000, $3ff0000000000000, $3ff0000000000000, $3ff0000000000000, $3ff0000000000000, $bff0000000000000, $bff0000000000000
        .o3:    dq          $3ff0000000000000, $3ff0000000000000, $bff0000000000000, $3ff0000000000000, $3ff0000000000000, $bff0000000000000, $3ff0000000000000, $bff0000000000000
        .o4:    dq          $3ff0000000000000, $bff0000000000000, $bff0000000000000, $bff0000000000000, $3ff0000000000000, $3ff0000000000000, $3ff0000000000000, $3ff0000000000000
        .o5:    dq          $3ff0000000000000, $3ff0000000000000, $bff0000000000000, $3ff0000000000000, $bff0000000000000, $3ff0000000000000, $bff0000000000000, $3ff0000000000000
        .o6:    dq          $3ff0000000000000, $3ff0000000000000, $3ff0000000000000, $bff0000000000000, $bff0000000000000, $3ff0000000000000, $3ff0000000000000, $bff0000000000000
        .o7:    dq          $3ff0000000000000, $bff0000000000000, $3ff0000000000000, $3ff0000000000000, $bff0000000000000, $bff0000000000000, $3ff0000000000000, $3ff0000000000000
; </fold>

; <fold ScalarMulFloat2>
                constant    smulf2, $10
        .c0:    dd          $3f800000, $bf800000, $00000000, $00000000
; </fold>

; <fold ScalarMulFloat4>
                constant    smulf4, $10
        .q0:    dd          $3f800000, $bf800000, $bf800000, $bf800000
        .q1:    dd          $3f800000, $3f800000, $3f800000, $bf800000
        .q2:    dd          $3f800000, $bf800000, $3f800000, $3f800000
        .q3:    dd          $3f800000, $3f800000, $bf800000, $3f800000
; </fold>

; <fold ScalarMulFloat8>
                constant    smulf8, $20
        .o0:    dd          $3f800000, $bf800000, $bf800000, $bf800000, $bf800000, $bf800000, $bf800000, $bf800000
        .o1:    dd          $3f800000, $3f800000, $3f800000, $bf800000, $3f800000, $bf800000, $bf800000, $3f800000
        .o2:    dd          $3f800000, $bf800000, $3f800000, $3f800000, $3f800000, $3f800000, $bf800000, $bf800000
        .o3:    dd          $3f800000, $3f800000, $bf800000, $3f800000, $3f800000, $bf800000, $3f800000, $bf800000
        .o4:    dd          $3f800000, $bf800000, $bf800000, $bf800000, $3f800000, $3f800000, $3f800000, $3f800000
        .o5:    dd          $3f800000, $3f800000, $bf800000, $3f800000, $bf800000, $3f800000, $bf800000, $3f800000
        .o6:    dd          $3f800000, $3f800000, $3f800000, $bf800000, $bf800000, $3f800000, $3f800000, $bf800000
        .o7:    dd          $3f800000, $bf800000, $3f800000, $3f800000, $bf800000, $bf800000, $3f800000, $3f800000
; </fold>

; <fold ScalarMulInt2>
                constant    smuli2, $10
        .c0:    dd          $00000001, $ffffffff, $00000000, $00000000
; </fold>

; <fold ScalarMulInt4>
                constant    smuli4, $10
        .q0:    dd          $00000001, $ffffffff, $ffffffff, $ffffffff
        .q1:    dd          $00000001, $00000001, $00000001, $ffffffff
        .q2:    dd          $00000001, $ffffffff, $00000001, $00000001
        .q3:    dd          $00000001, $00000001, $ffffffff, $00000001
; </fold>

; <fold ScalarMulInt8>
                constant    smuli8, $20
        .o0:    dd          $00000001, $ffffffff, $ffffffff, $ffffffff, $ffffffff, $ffffffff, $ffffffff, $ffffffff
        .o1:    dd          $00000001, $00000001, $00000001, $ffffffff, $00000001, $ffffffff, $ffffffff, $00000001
        .o2:    dd          $00000001, $ffffffff, $00000001, $00000001, $00000001, $00000001, $ffffffff, $ffffffff
        .o3:    dd          $00000001, $00000001, $ffffffff, $00000001, $00000001, $ffffffff, $00000001, $ffffffff
        .o4:    dd          $00000001, $ffffffff, $ffffffff, $ffffffff, $00000001, $00000001, $00000001, $00000001
        .o5:    dd          $00000001, $00000001, $ffffffff, $00000001, $ffffffff, $00000001, $ffffffff, $00000001
        .o6:    dd          $00000001, $00000001, $00000001, $ffffffff, $ffffffff, $00000001, $00000001, $ffffffff
        .o7:    dd          $00000001, $ffffffff, $00000001, $00000001, $ffffffff, $ffffffff, $00000001, $00000001
; </fold>

; <fold ScalarMulLong2>
                constant    smull2, $10
        .c0:    dq          $0000000000000001, $ffffffffffffffff
; </fold>

; <fold ScalarMulLong4>
                constant    smull4, $20
        .q0:    dq          $0000000000000001, $ffffffffffffffff, $ffffffffffffffff, $ffffffffffffffff
        .q1:    dq          $0000000000000001, $0000000000000001, $0000000000000001, $ffffffffffffffff
        .q2:    dq          $0000000000000001, $ffffffffffffffff, $0000000000000001, $0000000000000001
        .q3:    dq          $0000000000000001, $0000000000000001, $ffffffffffffffff, $0000000000000001
; </fold>

; <fold ScalarMulLong8>
                constant    smull8, $40
        .o0:    dq          $0000000000000001, $ffffffffffffffff, $ffffffffffffffff, $ffffffffffffffff, $ffffffffffffffff, $ffffffffffffffff, $ffffffffffffffff, $ffffffffffffffff
        .o1:    dq          $0000000000000001, $0000000000000001, $0000000000000001, $ffffffffffffffff, $0000000000000001, $ffffffffffffffff, $ffffffffffffffff, $0000000000000001
        .o2:    dq          $0000000000000001, $ffffffffffffffff, $0000000000000001, $0000000000000001, $0000000000000001, $0000000000000001, $ffffffffffffffff, $ffffffffffffffff
        .o3:    dq          $0000000000000001, $0000000000000001, $ffffffffffffffff, $0000000000000001, $0000000000000001, $ffffffffffffffff, $0000000000000001, $ffffffffffffffff
        .o4:    dq          $0000000000000001, $ffffffffffffffff, $ffffffffffffffff, $ffffffffffffffff, $0000000000000001, $0000000000000001, $0000000000000001, $0000000000000001
        .o5:    dq          $0000000000000001, $0000000000000001, $ffffffffffffffff, $0000000000000001, $ffffffffffffffff, $0000000000000001, $ffffffffffffffff, $0000000000000001
        .o6:    dq          $0000000000000001, $0000000000000001, $0000000000000001, $ffffffffffffffff, $ffffffffffffffff, $0000000000000001, $0000000000000001, $ffffffffffffffff
        .o7:    dq          $0000000000000001, $ffffffffffffffff, $0000000000000001, $0000000000000001, $ffffffffffffffff, $ffffffffffffffff, $0000000000000001, $0000000000000001
; </fold>

; <fold double8>
                constant    double8, $40
      .imax:    dq          $41e0000000000000, $41e0000000000000, $41e0000000000000, $41e0000000000000, $41e0000000000000, $41e0000000000000, $41e0000000000000, $41e0000000000000
      .lmax:    dq          $43e0000000000000, $43e0000000000000, $43e0000000000000, $43e0000000000000, $43e0000000000000, $43e0000000000000, $43e0000000000000, $43e0000000000000
; </fold>

; <fold float8>
                constant    float8, $20
      .imax:    dd          $4f000000, $4f000000, $4f000000, $4f000000, $4f000000, $4f000000, $4f000000, $4f000000
; </fold>

; <fold byte8>
                constant    byte8, $10
         .0:    db          $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
        .m1:    db          $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff
     .mask8:    db          $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff, $00, $00, $00, $00, $00, $00, $00, $00
     .mask4:    db          $ff, $ff, $ff, $ff, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
     .mask2:    db          $ff, $ff, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
; </fold>

; <fold short2>
                constant    short2, $10
     .$007f:    dw          $007f, $007f, $0000, $0000, $0000, $0000, $0000, $0000
     .$00ff:    dw          $00ff, $00ff, $0000, $0000, $0000, $0000, $0000, $0000
; </fold>

; <fold short4>
                constant    short4, $10
     .$007f:    dw          $007f, $007f, $007f, $007f, $0000, $0000, $0000, $0000
     .$00ff:    dw          $00ff, $00ff, $00ff, $00ff, $0000, $0000, $0000, $0000
; </fold>

; <fold short8>
                constant    short8, $10
        .m1:    dw          $ffff, $ffff, $ffff, $ffff, $ffff, $ffff, $ffff, $ffff
     .mask4:    dw          $ffff, $ffff, $ffff, $ffff, $0000, $0000, $0000, $0000
     .mask2:    dw          $ffff, $ffff, $0000, $0000, $0000, $0000, $0000, $0000
     .$007f:    dw          $007f, $007f, $007f, $007f, $007f, $007f, $007f, $007f
     .$00ff:    dw          $00ff, $00ff, $00ff, $00ff, $00ff, $00ff, $00ff, $00ff
                label       .mask8 at .m1
; </fold>

; <fold int2>
                constant    int2, $10
     .$7fff:    dd          $00007fff, $00007fff, $00000000, $00000000
     .$ffff:    dd          $0000ffff, $0000ffff, $00000000, $00000000
; </fold>

; <fold int4>
                constant    int4, $10
                label       .$7fff at int8.$7fff
                label       .$ffff at int8.$ffff
; </fold>

; <fold int8>
                constant    int8, $20
        .m1:    dd          $ffffffff, $ffffffff, $ffffffff, $ffffffff, $ffffffff, $ffffffff, $ffffffff, $ffffffff
      .m1_0:    dd          $ffffffff, $ffffffff, $00000000, $00000000, $ffffffff, $ffffffff, $00000000, $00000000
     .maskw:    dd          $0000ffff, $0000ffff, $0000ffff, $0000ffff, $0000ffff, $0000ffff, $0000ffff, $0000ffff
     .maskb:    dd          $000000ff, $000000ff, $000000ff, $000000ff, $000000ff, $000000ff, $000000ff, $000000ff
     .$7fff:    dd          $00007fff, $00007fff, $00007fff, $00007fff, $00007fff, $00007fff, $00007fff, $00007fff
     .$ffff:    dd          $0000ffff, $0000ffff, $0000ffff, $0000ffff, $0000ffff, $0000ffff, $0000ffff, $0000ffff
                label       .mask2 at .m1_0
                label       .mask4 at .m1
                label       .mask8 at .m1
; </fold>

; <fold long8>
                constant    long8, $40
        .m1:    dq          $ffffffffffffffff, $ffffffffffffffff, $ffffffffffffffff, $ffffffffffffffff, $ffffffffffffffff, $ffffffffffffffff, $ffffffffffffffff, $ffffffffffffffff
     .maskd:    dq          $00000000ffffffff, $00000000ffffffff, $00000000ffffffff, $00000000ffffffff, $00000000ffffffff, $00000000ffffffff, $00000000ffffffff, $00000000ffffffff
     .maskw:    dq          $000000000000ffff, $000000000000ffff, $000000000000ffff, $000000000000ffff, $000000000000ffff, $000000000000ffff, $000000000000ffff, $000000000000ffff
     .maskb:    dq          $00000000000000ff, $00000000000000ff, $00000000000000ff, $00000000000000ff, $00000000000000ff, $00000000000000ff, $00000000000000ff, $00000000000000ff
                label       .mask2 at .m1
                label       .mask4 at .m1
                label       .mask8 at .m1
; </fold>

; <fold zero>
                label       zero at byte8.0
; </fold>