1;***************************************************************************** 2;* const-a.asm: x86 global constants 3;***************************************************************************** 4;* Copyright (C) 2010-2021 x264 project 5;* 6;* Authors: Loren Merritt <lorenm@u.washington.edu> 7;* Fiona Glaser <fiona@x264.com> 8;* 9;* This program is free software; you can redistribute it and/or modify 10;* it under the terms of the GNU General Public License as published by 11;* the Free Software Foundation; either version 2 of the License, or 12;* (at your option) any later version. 13;* 14;* This program is distributed in the hope that it will be useful, 15;* but WITHOUT ANY WARRANTY; without even the implied warranty of 16;* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17;* GNU General Public License for more details. 18;* 19;* You should have received a copy of the GNU General Public License 20;* along with this program; if not, write to the Free Software 21;* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111, USA. 22;* 23;* This program is also available under a commercial proprietary license. 24;* For more information, contact us at licensing@x264.com. 25;***************************************************************************** 26 27%include "x86inc.asm" 28 29SECTION_RODATA 32 30 31const pb_1, times 32 db 1 32const hsub_mul, times 16 db 1, -1 33const pw_1, times 16 dw 1 34const pw_16, times 16 dw 16 35const pw_32, times 16 dw 32 36const pw_512, times 16 dw 512 37const pw_00ff, times 16 dw 0x00ff 38const pw_pixel_max,times 16 dw ((1 << BIT_DEPTH)-1) 39const pw_0to15, dw 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 40const pd_1, times 8 dd 1 41const pd_0123, dd 0,1,2,3 42const pd_4567, dd 4,5,6,7 43const deinterleave_shufd, dd 0,4,1,5,2,6,3,7 44const pb_unpackbd1, times 2 db 0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3 45const pb_unpackbd2, times 2 db 4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7 46 47const pb_01, times 8 db 0,1 48const pb_0, times 16 db 0 49const pb_a1, times 16 db 0xa1 50const pb_3, times 16 db 3 51const pb_shuf8x8c, db 0,0,0,0,2,2,2,2,4,4,4,4,6,6,6,6 52 53const pw_2, times 8 dw 2 54const pw_m2, times 8 dw -2 55const pw_4, times 8 dw 4 56const pw_8, times 8 dw 8 57const pw_64, times 8 dw 64 58const pw_256, times 8 dw 256 59const pw_32_0, times 4 dw 32 60 times 4 dw 0 61const pw_8000, times 8 dw 0x8000 62const pw_3fff, times 8 dw 0x3fff 63const pw_ppppmmmm, dw 1,1,1,1,-1,-1,-1,-1 64const pw_ppmmppmm, dw 1,1,-1,-1,1,1,-1,-1 65const pw_pmpmpmpm, dw 1,-1,1,-1,1,-1,1,-1 66const pw_pmmpzzzz, dw 1,-1,-1,1,0,0,0,0 67 68const pd_8, times 4 dd 8 69const pd_32, times 4 dd 32 70const pd_1024, times 4 dd 1024 71const pd_ffff, times 4 dd 0xffff 72const pw_ff00, times 8 dw 0xff00 73 74const popcnt_table 75%assign x 0 76%rep 256 77; population count 78db ((x>>0)&1)+((x>>1)&1)+((x>>2)&1)+((x>>3)&1)+((x>>4)&1)+((x>>5)&1)+((x>>6)&1)+((x>>7)&1) 79%assign x x+1 80%endrep 81 82const sw_64, dd 64 83