[x265] [PATCH 1 of 3] asm: use prefix const to avoid unaligned crash

Min Chen chenm003 at 163.com
Tue Apr 28 14:24:20 CEST 2015


# HG changeset patch
# User Min Chen <chenm003 at 163.com>
# Date 1430223836 -28800
# Node ID 026fb0813d04383f92f1ebd61025e0f7940db666
# Parent  1b4a524443cbbba02a64fe979f848a8a1f1a0b1f
asm: use prefix const to avoid unaligned crash
---
 source/common/x86/ipfilter8.asm |  414 +++++++++++++++++++--------------------
 1 files changed, 200 insertions(+), 214 deletions(-)

diff -r 1b4a524443cb -r 026fb0813d04 source/common/x86/ipfilter8.asm
--- a/source/common/x86/ipfilter8.asm	Tue Apr 28 18:43:33 2015 +0800
+++ b/source/common/x86/ipfilter8.asm	Tue Apr 28 20:23:56 2015 +0800
@@ -27,280 +27,266 @@
 %include "x86util.asm"
 
 SECTION_RODATA 32
-tab_Tm:    db 0, 1, 2, 3, 1, 2, 3, 4, 2, 3, 4, 5, 3, 4, 5, 6
-           db 4, 5, 6, 7, 5, 6, 7, 8, 6, 7, 8, 9, 7, 8, 9, 10
-           db 8, 9,10,11, 9,10,11,12,10,11,12,13,11,12,13, 14
-
-ALIGN 32
+const tab_Tm,    db 0, 1, 2, 3, 1, 2, 3, 4, 2, 3, 4, 5, 3, 4, 5, 6
+                 db 4, 5, 6, 7, 5, 6, 7, 8, 6, 7, 8, 9, 7, 8, 9, 10
+                 db 8, 9,10,11, 9,10,11,12,10,11,12,13,11,12,13, 14
+
 const interp4_vpp_shuf, times 2 db 0, 4, 1, 5, 2, 6, 3, 7, 8, 12, 9, 13, 10, 14, 11, 15
 
-ALIGN 32
 const interp_vert_shuf, times 2 db 0, 2, 1, 3, 2, 4, 3, 5, 4, 6, 5, 7, 6, 8, 7, 9
                         times 2 db 4, 6, 5, 7, 6, 8, 7, 9, 8, 10, 9, 11, 10, 12, 11, 13
 
-ALIGN 32
 const interp4_vpp_shuf1, dd 0, 1, 1, 2, 2, 3, 3, 4
                          dd 2, 3, 3, 4, 4, 5, 5, 6
 
-ALIGN 32
 const pb_8tap_hps_0, times 2 db 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8
                      times 2 db 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9,10
                      times 2 db 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9,10,10,11,11,12
                      times 2 db 6, 7, 7, 8, 8, 9, 9,10,10,11,11,12,12,13,13,14
 
-ALIGN 32
-tab_Lm:    db 0, 1, 2, 3, 4,  5,  6,  7,  1, 2, 3, 4,  5,  6,  7,  8
-           db 2, 3, 4, 5, 6,  7,  8,  9,  3, 4, 5, 6,  7,  8,  9,  10
-           db 4, 5, 6, 7, 8,  9,  10, 11, 5, 6, 7, 8,  9,  10, 11, 12
-           db 6, 7, 8, 9, 10, 11, 12, 13, 7, 8, 9, 10, 11, 12, 13, 14
-
-tab_Vm:    db 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1
-           db 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3
-
-tab_Cm:    db 0, 2, 1, 3, 0, 2, 1, 3, 0, 2, 1, 3, 0, 2, 1, 3
-
-pd_526336:      times 8 dd 8192*64+2048
-
-tab_ChromaCoeff: db  0, 64,  0,  0
-                 db -2, 58, 10, -2
-                 db -4, 54, 16, -2
-                 db -6, 46, 28, -4
-                 db -4, 36, 36, -4
-                 db -4, 28, 46, -6
-                 db -2, 16, 54, -4
-                 db -2, 10, 58, -2
-
-tabw_ChromaCoeff: dw  0, 64,  0,  0
-                  dw -2, 58, 10, -2
-                  dw -4, 54, 16, -2
-                  dw -6, 46, 28, -4
-                  dw -4, 36, 36, -4
-                  dw -4, 28, 46, -6
-                  dw -2, 16, 54, -4
-                  dw -2, 10, 58, -2
-
-ALIGN 32
-tab_ChromaCoeff_V: times 8 db 0, 64
-                   times 8 db 0,  0
-
-                   times 8 db -2, 58
-                   times 8 db 10, -2
-
-                   times 8 db -4, 54
-                   times 8 db 16, -2
-
-                   times 8 db -6, 46
-                   times 8 db 28, -4
-
-                   times 8 db -4, 36
-                   times 8 db 36, -4
-
-                   times 8 db -4, 28
-                   times 8 db 46, -6
-
-                   times 8 db -2, 16
-                   times 8 db 54, -4
-
-                   times 8 db -2, 10
-                   times 8 db 58, -2
-
-tab_ChromaCoeffV: times 4 dw 0, 64
-                  times 4 dw 0, 0
-
-                  times 4 dw -2, 58
-                  times 4 dw 10, -2
-
-                  times 4 dw -4, 54
-                  times 4 dw 16, -2
-
-                  times 4 dw -6, 46
-                  times 4 dw 28, -4
-
-                  times 4 dw -4, 36
-                  times 4 dw 36, -4
-
-                  times 4 dw -4, 28
-                  times 4 dw 46, -6
-
-                  times 4 dw -2, 16
-                  times 4 dw 54, -4
-
-                  times 4 dw -2, 10
-                  times 4 dw 58, -2
-
-ALIGN 32
-pw_ChromaCoeffV:  times 8 dw 0, 64
-                  times 8 dw 0, 0
-
-                  times 8 dw -2, 58
-                  times 8 dw 10, -2
-
-                  times 8 dw -4, 54
-                  times 8 dw 16, -2
-
-                  times 8 dw -6, 46
-                  times 8 dw 28, -4
-
-                  times 8 dw -4, 36
-                  times 8 dw 36, -4
-
-                  times 8 dw -4, 28
-                  times 8 dw 46, -6
-
-                  times 8 dw -2, 16
-                  times 8 dw 54, -4
-
-                  times 8 dw -2, 10
-                  times 8 dw 58, -2
-
-tab_LumaCoeff:   db   0, 0,  0,  64,  0,   0,  0,  0
-                 db  -1, 4, -10, 58,  17, -5,  1,  0
-                 db  -1, 4, -11, 40,  40, -11, 4, -1
-                 db   0, 1, -5,  17,  58, -10, 4, -1
-
-tab_LumaCoeffV: times 4 dw 0, 0
-                times 4 dw 0, 64
-                times 4 dw 0, 0
-                times 4 dw 0, 0
-
-                times 4 dw -1, 4
-                times 4 dw -10, 58
-                times 4 dw 17, -5
-                times 4 dw 1, 0
-
-                times 4 dw -1, 4
-                times 4 dw -11, 40
-                times 4 dw 40, -11
-                times 4 dw 4, -1
-
-                times 4 dw 0, 1
-                times 4 dw -5, 17
-                times 4 dw 58, -10
-                times 4 dw 4, -1
-
-ALIGN 32
-pw_LumaCoeffVer: times 8 dw 0, 0
-                 times 8 dw 0, 64
-                 times 8 dw 0, 0
-                 times 8 dw 0, 0
-
-                 times 8 dw -1, 4
-                 times 8 dw -10, 58
-                 times 8 dw 17, -5
-                 times 8 dw 1, 0
-
-                 times 8 dw -1, 4
-                 times 8 dw -11, 40
-                 times 8 dw 40, -11
-                 times 8 dw 4, -1
-
-                 times 8 dw 0, 1
-                 times 8 dw -5, 17
-                 times 8 dw 58, -10
-                 times 8 dw 4, -1
-
-pb_LumaCoeffVer: times 16 db 0, 0
-                 times 16 db 0, 64
-                 times 16 db 0, 0
-                 times 16 db 0, 0
-
-                 times 16 db -1, 4
-                 times 16 db -10, 58
-                 times 16 db 17, -5
-                 times 16 db 1, 0
-
-                 times 16 db -1, 4
-                 times 16 db -11, 40
-                 times 16 db 40, -11
-                 times 16 db 4, -1
-
-                 times 16 db 0, 1
-                 times 16 db -5, 17
-                 times 16 db 58, -10
-                 times 16 db 4, -1
-
-tab_LumaCoeffVer: times 8 db 0, 0
-                  times 8 db 0, 64
-                  times 8 db 0, 0
-                  times 8 db 0, 0
-
-                  times 8 db -1, 4
-                  times 8 db -10, 58
-                  times 8 db 17, -5
-                  times 8 db 1, 0
-
-                  times 8 db -1, 4
-                  times 8 db -11, 40
-                  times 8 db 40, -11
-                  times 8 db 4, -1
-
-                  times 8 db 0, 1
-                  times 8 db -5, 17
-                  times 8 db 58, -10
-                  times 8 db 4, -1
-
-ALIGN 32
-tab_LumaCoeffVer_32: times 16 db 0, 0
-                     times 16 db 0, 64
-                     times 16 db 0, 0
-                     times 16 db 0, 0
-
-                     times 16 db -1, 4
-                     times 16 db -10, 58
-                     times 16 db 17, -5
-                     times 16 db 1, 0
-
-                     times 16 db -1, 4
-                     times 16 db -11, 40
-                     times 16 db 40, -11
-                     times 16 db 4, -1
-
-                     times 16 db 0, 1
-                     times 16 db -5, 17
-                     times 16 db 58, -10
-                     times 16 db 4, -1
-
-ALIGN 32
-tab_ChromaCoeffVer_32: times 16 db 0, 64
-                       times 16 db 0, 0
-
-                       times 16 db -2, 58
-                       times 16 db 10, -2
-
-                       times 16 db -4, 54
-                       times 16 db 16, -2
-
-                       times 16 db -6, 46
-                       times 16 db 28, -4
-
-                       times 16 db -4, 36
-                       times 16 db 36, -4
-
-                       times 16 db -4, 28
-                       times 16 db 46, -6
-
-                       times 16 db -2, 16
-                       times 16 db 54, -4
-
-                       times 16 db -2, 10
-                       times 16 db 58, -2
-
-tab_c_64_n64:   times 8 db 64, -64
+const tab_Lm,    db 0, 1, 2, 3, 4,  5,  6,  7,  1, 2, 3, 4,  5,  6,  7,  8
+                 db 2, 3, 4, 5, 6,  7,  8,  9,  3, 4, 5, 6,  7,  8,  9,  10
+                 db 4, 5, 6, 7, 8,  9,  10, 11, 5, 6, 7, 8,  9,  10, 11, 12
+                 db 6, 7, 8, 9, 10, 11, 12, 13, 7, 8, 9, 10, 11, 12, 13, 14
+
+const tab_Vm,    db 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1
+                 db 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3
+
+const tab_Cm,    db 0, 2, 1, 3, 0, 2, 1, 3, 0, 2, 1, 3, 0, 2, 1, 3
+
+const pd_526336, times 8 dd 8192*64+2048
+
+const tab_ChromaCoeff, db  0, 64,  0,  0
+                       db -2, 58, 10, -2
+                       db -4, 54, 16, -2
+                       db -6, 46, 28, -4
+                       db -4, 36, 36, -4
+                       db -4, 28, 46, -6
+                       db -2, 16, 54, -4
+                       db -2, 10, 58, -2
+
+const tabw_ChromaCoeff, dw  0, 64,  0,  0
+                        dw -2, 58, 10, -2
+                        dw -4, 54, 16, -2
+                        dw -6, 46, 28, -4
+                        dw -4, 36, 36, -4
+                        dw -4, 28, 46, -6
+                        dw -2, 16, 54, -4
+                        dw -2, 10, 58, -2
+
+const tab_ChromaCoeff_V, times 8 db 0, 64
+                         times 8 db 0,  0
+
+                         times 8 db -2, 58
+                         times 8 db 10, -2
+
+                         times 8 db -4, 54
+                         times 8 db 16, -2
+
+                         times 8 db -6, 46
+                         times 8 db 28, -4
+
+                         times 8 db -4, 36
+                         times 8 db 36, -4
+
+                         times 8 db -4, 28
+                         times 8 db 46, -6
+
+                         times 8 db -2, 16
+                         times 8 db 54, -4
+
+                         times 8 db -2, 10
+                         times 8 db 58, -2
+
+const tab_ChromaCoeffV, times 4 dw 0, 64
+                        times 4 dw 0, 0
+
+                        times 4 dw -2, 58
+                        times 4 dw 10, -2
+
+                        times 4 dw -4, 54
+                        times 4 dw 16, -2
+
+                        times 4 dw -6, 46
+                        times 4 dw 28, -4
+
+                        times 4 dw -4, 36
+                        times 4 dw 36, -4
+
+                        times 4 dw -4, 28
+                        times 4 dw 46, -6
+
+                        times 4 dw -2, 16
+                        times 4 dw 54, -4
+
+                        times 4 dw -2, 10
+                        times 4 dw 58, -2
+
+const pw_ChromaCoeffV,  times 8 dw 0, 64
+                        times 8 dw 0, 0
+
+                        times 8 dw -2, 58
+                        times 8 dw 10, -2
+
+                        times 8 dw -4, 54
+                        times 8 dw 16, -2
+
+                        times 8 dw -6, 46
+                        times 8 dw 28, -4
+
+                        times 8 dw -4, 36
+                        times 8 dw 36, -4
+
+                        times 8 dw -4, 28
+                        times 8 dw 46, -6
+
+                        times 8 dw -2, 16
+                        times 8 dw 54, -4
+
+                        times 8 dw -2, 10
+                        times 8 dw 58, -2
+
+const tab_LumaCoeff,   db   0, 0,  0,  64,  0,   0,  0,  0
+                       db  -1, 4, -10, 58,  17, -5,  1,  0
+                       db  -1, 4, -11, 40,  40, -11, 4, -1
+                       db   0, 1, -5,  17,  58, -10, 4, -1
+
+const tab_LumaCoeffV,   times 4 dw 0, 0
+                        times 4 dw 0, 64
+                        times 4 dw 0, 0
+                        times 4 dw 0, 0
+
+                        times 4 dw -1, 4
+                        times 4 dw -10, 58
+                        times 4 dw 17, -5
+                        times 4 dw 1, 0
+
+                        times 4 dw -1, 4
+                        times 4 dw -11, 40
+                        times 4 dw 40, -11
+                        times 4 dw 4, -1
+
+                        times 4 dw 0, 1
+                        times 4 dw -5, 17
+                        times 4 dw 58, -10
+                        times 4 dw 4, -1
+
+const pw_LumaCoeffVer,  times 8 dw 0, 0
+                        times 8 dw 0, 64
+                        times 8 dw 0, 0
+                        times 8 dw 0, 0
+
+                        times 8 dw -1, 4
+                        times 8 dw -10, 58
+                        times 8 dw 17, -5
+                        times 8 dw 1, 0
+
+                        times 8 dw -1, 4
+                        times 8 dw -11, 40
+                        times 8 dw 40, -11
+                        times 8 dw 4, -1
+
+                        times 8 dw 0, 1
+                        times 8 dw -5, 17
+                        times 8 dw 58, -10
+                        times 8 dw 4, -1
+
+const pb_LumaCoeffVer,  times 16 db 0, 0
+                        times 16 db 0, 64
+                        times 16 db 0, 0
+                        times 16 db 0, 0
+
+                        times 16 db -1, 4
+                        times 16 db -10, 58
+                        times 16 db 17, -5
+                        times 16 db 1, 0
+
+                        times 16 db -1, 4
+                        times 16 db -11, 40
+                        times 16 db 40, -11
+                        times 16 db 4, -1
+
+                        times 16 db 0, 1
+                        times 16 db -5, 17
+                        times 16 db 58, -10
+                        times 16 db 4, -1
+
+const tab_LumaCoeffVer, times 8 db 0, 0
+                        times 8 db 0, 64
+                        times 8 db 0, 0
+                        times 8 db 0, 0
+
+                        times 8 db -1, 4
+                        times 8 db -10, 58
+                        times 8 db 17, -5
+                        times 8 db 1, 0
+
+                        times 8 db -1, 4
+                        times 8 db -11, 40
+                        times 8 db 40, -11
+                        times 8 db 4, -1
+
+                        times 8 db 0, 1
+                        times 8 db -5, 17
+                        times 8 db 58, -10
+                        times 8 db 4, -1
+
+const tab_LumaCoeffVer_32,  times 16 db 0, 0
+                            times 16 db 0, 64
+                            times 16 db 0, 0
+                            times 16 db 0, 0
+
+                            times 16 db -1, 4
+                            times 16 db -10, 58
+                            times 16 db 17, -5
+                            times 16 db 1, 0
+
+                            times 16 db -1, 4
+                            times 16 db -11, 40
+                            times 16 db 40, -11
+                            times 16 db 4, -1
+
+                            times 16 db 0, 1
+                            times 16 db -5, 17
+                            times 16 db 58, -10
+                            times 16 db 4, -1
+
+const tab_ChromaCoeffVer_32,    times 16 db 0, 64
+                                times 16 db 0, 0
+
+                                times 16 db -2, 58
+                                times 16 db 10, -2
+
+                                times 16 db -4, 54
+                                times 16 db 16, -2
+
+                                times 16 db -6, 46
+                                times 16 db 28, -4
+
+                                times 16 db -4, 36
+                                times 16 db 36, -4
+
+                                times 16 db -4, 28
+                                times 16 db 46, -6
+
+                                times 16 db -2, 16
+                                times 16 db 54, -4
+
+                                times 16 db -2, 10
+                                times 16 db 58, -2
+
+const tab_c_64_n64, times 8 db 64, -64
 
 const interp4_shuf, times 2 db 0, 1, 8, 9, 4, 5, 12, 13, 2, 3, 10, 11, 6, 7, 14, 15
 
-ALIGN 32
-interp4_horiz_shuf1:    db 0, 1, 2, 3, 1, 2, 3, 4, 2, 3, 4, 5, 3, 4, 5, 6
-                        db 8, 9, 10, 11, 9, 10, 11, 12, 10, 11, 12, 13, 11, 12, 13, 14
-
-ALIGN 32
-interp4_hpp_shuf: times 2 db 0, 1, 2, 3, 1, 2, 3, 4, 8, 9, 10, 11, 9, 10, 11, 12
-
-ALIGN 32
-interp8_hps_shuf: dd 0, 4, 1, 5, 2, 6, 3, 7
-
-ALIGN 32
-interp4_hps_shuf: times 2 db 0, 1, 2, 3, 1, 2, 3, 4, 8, 9, 10, 11, 9, 10, 11, 12
+const interp4_horiz_shuf1,  db 0, 1, 2, 3, 1, 2, 3, 4, 2, 3, 4, 5, 3, 4, 5, 6
+                            db 8, 9, 10, 11, 9, 10, 11, 12, 10, 11, 12, 13, 11, 12, 13, 14
+
+const interp4_hpp_shuf,     times 2 db 0, 1, 2, 3, 1, 2, 3, 4, 8, 9, 10, 11, 9, 10, 11, 12
+
+const interp8_hps_shuf,     dd 0, 4, 1, 5, 2, 6, 3, 7
+
+const interp4_hps_shuf,     times 2 db 0, 1, 2, 3, 1, 2, 3, 4, 8, 9, 10, 11, 9, 10, 11, 12
 
 SECTION .text
 



More information about the x265-devel mailing list