1d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org/* 2d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org * Copyright (c) 2013 The WebM project authors. All Rights Reserved. 3d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org * 4d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org * Use of this source code is governed by a BSD-style license 5d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org * that can be found in the LICENSE file in the root of the source 6d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org * tree. An additional intellectual property rights grant can be found 7d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org * in the file PATENTS. All contributing project authors may 8d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org * be found in the AUTHORS file in the root of the source tree. 9d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org */ 10d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 11d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org#include <stdlib.h> 12d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 13d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org#include "./vp9_rtcd.h" 14d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org#include "vp9/common/vp9_common.h" 15d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org#include "vp9/common/vp9_loopfilter.h" 16d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org#include "vp9/common/vp9_onyxc_int.h" 17d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org#include "vp9/common/mips/dspr2/vp9_common_dspr2.h" 18d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org#include "vp9/common/mips/dspr2/vp9_loopfilter_macros_dspr2.h" 19d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org#include "vp9/common/mips/dspr2/vp9_loopfilter_masks_dspr2.h" 20d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org#include "vp9/common/mips/dspr2/vp9_loopfilter_filters_dspr2.h" 21d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 22d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org#if HAVE_DSPR2 238b26fe55f3e4daa2311dbd2d95e8ac2b4e080685johannkoenig@chromium.orgvoid vp9_lpf_vertical_16_dspr2(uint8_t *s, 248b26fe55f3e4daa2311dbd2d95e8ac2b4e080685johannkoenig@chromium.org int pitch, 258b26fe55f3e4daa2311dbd2d95e8ac2b4e080685johannkoenig@chromium.org const uint8_t *blimit, 268b26fe55f3e4daa2311dbd2d95e8ac2b4e080685johannkoenig@chromium.org const uint8_t *limit, 278b26fe55f3e4daa2311dbd2d95e8ac2b4e080685johannkoenig@chromium.org const uint8_t *thresh) { 28d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org uint8_t i; 29d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org uint32_t mask, hev, flat, flat2; 30d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org uint8_t *s1, *s2, *s3, *s4; 31d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org uint32_t prim1, prim2, sec3, sec4, prim3, prim4; 32d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org uint32_t thresh_vec, flimit_vec, limit_vec; 33d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org uint32_t uflimit, ulimit, uthresh; 34d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org uint32_t p7, p6, p5, p4, p3, p2, p1, p0, q0, q1, q2, q3, q4, q5, q6, q7; 35d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org uint32_t p1_f0, p0_f0, q0_f0, q1_f0; 36d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org uint32_t p7_l, p6_l, p5_l, p4_l, p3_l, p2_l, p1_l, p0_l; 37d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org uint32_t q0_l, q1_l, q2_l, q3_l, q4_l, q5_l, q6_l, q7_l; 38d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org uint32_t p7_r, p6_r, p5_r, p4_r, p3_r, p2_r, p1_r, p0_r; 39d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org uint32_t q0_r, q1_r, q2_r, q3_r, q4_r, q5_r, q6_r, q7_r; 40d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org uint32_t p2_l_f1, p1_l_f1, p0_l_f1, p2_r_f1, p1_r_f1, p0_r_f1; 41d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org uint32_t q0_l_f1, q1_l_f1, q2_l_f1, q0_r_f1, q1_r_f1, q2_r_f1; 42d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 43d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org uflimit = *blimit; 44d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org ulimit = *limit; 45d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org uthresh = *thresh; 46d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 47d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org /* create quad-byte */ 48d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org __asm__ __volatile__ ( 49d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "replv.qb %[thresh_vec], %[uthresh] \n\t" 50d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "replv.qb %[flimit_vec], %[uflimit] \n\t" 51d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "replv.qb %[limit_vec], %[ulimit] \n\t" 52d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 53d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : [thresh_vec] "=&r" (thresh_vec), [flimit_vec] "=&r" (flimit_vec), 54d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [limit_vec] "=r" (limit_vec) 55d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : [uthresh] "r" (uthresh), [uflimit] "r" (uflimit), [ulimit] "r" (ulimit) 56d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org ); 57d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 58d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org vp9_prefetch_store(s + pitch); 59d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 60d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org for (i = 0; i < 2; i++) { 61d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org s1 = s; 62d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org s2 = s + pitch; 63d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org s3 = s2 + pitch; 64d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org s4 = s3 + pitch; 65d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org s = s4 + pitch; 66d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 67d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org __asm__ __volatile__ ( 68d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "lw %[p0], -4(%[s1]) \n\t" 69d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "lw %[p1], -4(%[s2]) \n\t" 70d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "lw %[p2], -4(%[s3]) \n\t" 71d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "lw %[p3], -4(%[s4]) \n\t" 72d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "lw %[p4], -8(%[s1]) \n\t" 73d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "lw %[p5], -8(%[s2]) \n\t" 74d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "lw %[p6], -8(%[s3]) \n\t" 75d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "lw %[p7], -8(%[s4]) \n\t" 76d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 77d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : [p3] "=&r" (p3), [p2] "=&r" (p2), [p1] "=&r" (p1), 78d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [p0] "=&r" (p0), [p7] "=&r" (p7), [p6] "=&r" (p6), 79d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [p5] "=&r" (p5), [p4] "=&r" (p4) 80d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : [s1] "r" (s1), [s2] "r" (s2), [s3] "r" (s3), [s4] "r" (s4) 81d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org ); 82d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 83d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org __asm__ __volatile__ ( 84d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "lw %[q3], (%[s1]) \n\t" 85d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "lw %[q2], (%[s2]) \n\t" 86d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "lw %[q1], (%[s3]) \n\t" 87d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "lw %[q0], (%[s4]) \n\t" 88d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "lw %[q7], +4(%[s1]) \n\t" 89d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "lw %[q6], +4(%[s2]) \n\t" 90d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "lw %[q5], +4(%[s3]) \n\t" 91d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "lw %[q4], +4(%[s4]) \n\t" 92d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 93d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : [q3] "=&r" (q3), [q2] "=&r" (q2), [q1] "=&r" (q1), 94d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [q0] "=&r" (q0), [q7] "=&r" (q7), [q6] "=&r" (q6), 95d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [q5] "=&r" (q5), [q4] "=&r" (q4) 96d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : [s1] "r" (s1), [s2] "r" (s2), [s3] "r" (s3), [s4] "r" (s4) 97d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org ); 98d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 99d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org /* transpose p3, p2, p1, p0 100d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org original (when loaded from memory) 101d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org register -4 -3 -2 -1 102d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org p0 p0_0 p0_1 p0_2 p0_3 103d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org p1 p1_0 p1_1 p1_2 p1_3 104d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org p2 p2_0 p2_1 p2_2 p2_3 105d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org p3 p3_0 p3_1 p3_2 p3_3 106d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 107d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org after transpose 108d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org register 109d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org p0 p3_3 p2_3 p1_3 p0_3 110d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org p1 p3_2 p2_2 p1_2 p0_2 111d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org p2 p3_1 p2_1 p1_1 p0_1 112d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org p3 p3_0 p2_0 p1_0 p0_0 113d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org */ 114d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org __asm__ __volatile__ ( 115d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "precrq.qb.ph %[prim1], %[p0], %[p1] \n\t" 116d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "precr.qb.ph %[prim2], %[p0], %[p1] \n\t" 117d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "precrq.qb.ph %[prim3], %[p2], %[p3] \n\t" 118d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "precr.qb.ph %[prim4], %[p2], %[p3] \n\t" 119d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 120d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "precrq.qb.ph %[p1], %[prim1], %[prim2] \n\t" 121d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "precr.qb.ph %[p3], %[prim1], %[prim2] \n\t" 122d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "precrq.qb.ph %[sec3], %[prim3], %[prim4] \n\t" 123d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "precr.qb.ph %[sec4], %[prim3], %[prim4] \n\t" 124d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 125d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "precrq.ph.w %[p0], %[p1], %[sec3] \n\t" 126d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "precrq.ph.w %[p2], %[p3], %[sec4] \n\t" 127d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "append %[p1], %[sec3], 16 \n\t" 128d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "append %[p3], %[sec4], 16 \n\t" 129d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 130d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : [prim1] "=&r" (prim1), [prim2] "=&r" (prim2), 131d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [prim3] "=&r" (prim3), [prim4] "=&r" (prim4), 132d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [p0] "+r" (p0), [p1] "+r" (p1), [p2] "+r" (p2), [p3] "+r" (p3), 133d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [sec3] "=&r" (sec3), [sec4] "=&r" (sec4) 134d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : 135d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org ); 136d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 137d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org /* transpose q0, q1, q2, q3 138d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org original (when loaded from memory) 139d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org register +1 +2 +3 +4 140d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org q3 q3_0 q3_1 q3_2 q3_3 141d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org q2 q2_0 q2_1 q2_2 q2_3 142d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org q1 q1_0 q1_1 q1_2 q1_3 143d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org q0 q0_0 q0_1 q0_2 q0_3 144d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 145d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org after transpose 146d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org register 147d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org q3 q0_3 q1_3 q2_3 q3_3 148d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org q2 q0_2 q1_2 q2_2 q3_2 149d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org q1 q0_1 q1_1 q2_1 q3_1 150d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org q0 q0_0 q1_0 q2_0 q3_0 151d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org */ 152d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org __asm__ __volatile__ ( 153d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "precrq.qb.ph %[prim1], %[q3], %[q2] \n\t" 154d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "precr.qb.ph %[prim2], %[q3], %[q2] \n\t" 155d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "precrq.qb.ph %[prim3], %[q1], %[q0] \n\t" 156d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "precr.qb.ph %[prim4], %[q1], %[q0] \n\t" 157d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 158d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "precrq.qb.ph %[q2], %[prim1], %[prim2] \n\t" 159d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "precr.qb.ph %[q0], %[prim1], %[prim2] \n\t" 160d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "precrq.qb.ph %[sec3], %[prim3], %[prim4] \n\t" 161d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "precr.qb.ph %[sec4], %[prim3], %[prim4] \n\t" 162d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 163d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "precrq.ph.w %[q3], %[q2], %[sec3] \n\t" 164d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "precrq.ph.w %[q1], %[q0], %[sec4] \n\t" 165d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "append %[q2], %[sec3], 16 \n\t" 166d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "append %[q0], %[sec4], 16 \n\t" 167d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 168d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : [prim1] "=&r" (prim1), [prim2] "=&r" (prim2), 169d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [prim3] "=&r" (prim3), [prim4] "=&r" (prim4), 170d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [q3] "+r" (q3), [q2] "+r" (q2), [q1] "+r" (q1), [q0] "+r" (q0), 171d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [sec3] "=&r" (sec3), [sec4] "=&r" (sec4) 172d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : 173d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org ); 174d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 175d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org /* transpose p7, p6, p5, p4 176d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org original (when loaded from memory) 177d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org register -8 -7 -6 -5 178d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org p4 p4_0 p4_1 p4_2 p4_3 179d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org p5 p5_0 p5_1 p5_2 p5_3 180d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org p6 p6_0 p6_1 p6_2 p6_3 181d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org p7 p7_0 p7_1 p7_2 p7_3 182d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 183d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org after transpose 184d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org register 185d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org p4 p7_3 p6_3 p5_3 p4_3 186d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org p5 p7_2 p6_2 p5_2 p4_2 187d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org p6 p7_1 p6_1 p5_1 p4_1 188d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org p7 p7_0 p6_0 p5_0 p4_0 189d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org */ 190d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org __asm__ __volatile__ ( 191d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "precrq.qb.ph %[prim1], %[p4], %[p5] \n\t" 192d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "precr.qb.ph %[prim2], %[p4], %[p5] \n\t" 193d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "precrq.qb.ph %[prim3], %[p6], %[p7] \n\t" 194d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "precr.qb.ph %[prim4], %[p6], %[p7] \n\t" 195d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 196d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "precrq.qb.ph %[p5], %[prim1], %[prim2] \n\t" 197d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "precr.qb.ph %[p7], %[prim1], %[prim2] \n\t" 198d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "precrq.qb.ph %[sec3], %[prim3], %[prim4] \n\t" 199d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "precr.qb.ph %[sec4], %[prim3], %[prim4] \n\t" 200d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 201d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "precrq.ph.w %[p4], %[p5], %[sec3] \n\t" 202d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "precrq.ph.w %[p6], %[p7], %[sec4] \n\t" 203d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "append %[p5], %[sec3], 16 \n\t" 204d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "append %[p7], %[sec4], 16 \n\t" 205d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 206d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : [prim1] "=&r" (prim1), [prim2] "=&r" (prim2), 207d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [prim3] "=&r" (prim3), [prim4] "=&r" (prim4), 208d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [p4] "+r" (p4), [p5] "+r" (p5), [p6] "+r" (p6), [p7] "+r" (p7), 209d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [sec3] "=&r" (sec3), [sec4] "=&r" (sec4) 210d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : 211d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org ); 212d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 213d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org /* transpose q4, q5, q6, q7 214d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org original (when loaded from memory) 215d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org register +5 +6 +7 +8 216d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org q7 q7_0 q7_1 q7_2 q7_3 217d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org q6 q6_0 q6_1 q6_2 q6_3 218d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org q5 q5_0 q5_1 q5_2 q5_3 219d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org q4 q4_0 q4_1 q4_2 q4_3 220d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 221d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org after transpose 222d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org register 223d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org q7 q4_3 q5_3 q26_3 q7_3 224d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org q6 q4_2 q5_2 q26_2 q7_2 225d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org q5 q4_1 q5_1 q26_1 q7_1 226d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org q4 q4_0 q5_0 q26_0 q7_0 227d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org */ 228d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org __asm__ __volatile__ ( 229d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "precrq.qb.ph %[prim1], %[q7], %[q6] \n\t" 230d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "precr.qb.ph %[prim2], %[q7], %[q6] \n\t" 231d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "precrq.qb.ph %[prim3], %[q5], %[q4] \n\t" 232d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "precr.qb.ph %[prim4], %[q5], %[q4] \n\t" 233d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 234d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "precrq.qb.ph %[q6], %[prim1], %[prim2] \n\t" 235d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "precr.qb.ph %[q4], %[prim1], %[prim2] \n\t" 236d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "precrq.qb.ph %[sec3], %[prim3], %[prim4] \n\t" 237d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "precr.qb.ph %[sec4], %[prim3], %[prim4] \n\t" 238d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 239d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "precrq.ph.w %[q7], %[q6], %[sec3] \n\t" 240d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "precrq.ph.w %[q5], %[q4], %[sec4] \n\t" 241d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "append %[q6], %[sec3], 16 \n\t" 242d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "append %[q4], %[sec4], 16 \n\t" 243d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 244d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : [prim1] "=&r" (prim1), [prim2] "=&r" (prim2), 245d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [prim3] "=&r" (prim3), [prim4] "=&r" (prim4), 246d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [q7] "+r" (q7), [q6] "+r" (q6), [q5] "+r" (q5), [q4] "+r" (q4), 247d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [sec3] "=&r" (sec3), [sec4] "=&r" (sec4) 248d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : 249d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org ); 250d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 251d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org vp9_filter_hev_mask_flatmask4_dspr2(limit_vec, flimit_vec, thresh_vec, 252d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org p1, p0, p3, p2, q0, q1, q2, q3, 253d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org &hev, &mask, &flat); 254d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 255d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org vp9_flatmask5(p7, p6, p5, p4, p0, q0, q4, q5, q6, q7, &flat2); 256d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 257d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org /* f0 */ 258d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org if (((flat2 == 0) && (flat == 0) && (mask != 0)) || 259d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org ((flat2 != 0) && (flat == 0) && (mask != 0))) { 260d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org vp9_filter1_dspr2(mask, hev, p1, p0, q0, q1, 261d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org &p1_f0, &p0_f0, &q0_f0, &q1_f0); 262d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org STORE_F0() 263d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org } else if ((flat2 == 0XFFFFFFFF) && (flat == 0xFFFFFFFF) && 264d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org (mask == 0xFFFFFFFF)) { 265d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org /* f2 */ 266d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org PACK_LEFT_0TO3() 267d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org PACK_LEFT_4TO7() 268d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org vp9_wide_mbfilter_dspr2(&p7_l, &p6_l, &p5_l, &p4_l, 269d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org &p3_l, &p2_l, &p1_l, &p0_l, 270d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org &q0_l, &q1_l, &q2_l, &q3_l, 271d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org &q4_l, &q5_l, &q6_l, &q7_l); 272d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 273d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org PACK_RIGHT_0TO3() 274d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org PACK_RIGHT_4TO7() 275d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org vp9_wide_mbfilter_dspr2(&p7_r, &p6_r, &p5_r, &p4_r, 276d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org &p3_r, &p2_r, &p1_r, &p0_r, 277d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org &q0_r, &q1_r, &q2_r, &q3_r, 278d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org &q4_r, &q5_r, &q6_r, &q7_r); 279d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 280d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org STORE_F2() 281d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org } else if ((flat2 == 0) && (flat == 0xFFFFFFFF) && (mask == 0xFFFFFFFF)) { 282d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org /* f1 */ 283d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org PACK_LEFT_0TO3() 284d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org vp9_mbfilter_dspr2(&p3_l, &p2_l, &p1_l, &p0_l, 285d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org &q0_l, &q1_l, &q2_l, &q3_l); 286d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 287d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org PACK_RIGHT_0TO3() 288d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org vp9_mbfilter_dspr2(&p3_r, &p2_r, &p1_r, &p0_r, 289d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org &q0_r, &q1_r, &q2_r, &q3_r); 290d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 291d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org STORE_F1() 292d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org } else if ((flat2 == 0) && (flat != 0) && (mask != 0)) { 293d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org /* f0 + f1 */ 294d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org vp9_filter1_dspr2(mask, hev, p1, p0, q0, q1, 295d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org &p1_f0, &p0_f0, &q0_f0, &q1_f0); 296d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 297d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org /* left 2 element operation */ 298d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org PACK_LEFT_0TO3() 299d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org vp9_mbfilter_dspr2(&p3_l, &p2_l, &p1_l, &p0_l, 300d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org &q0_l, &q1_l, &q2_l, &q3_l); 301d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 302d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org /* right 2 element operation */ 303d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org PACK_RIGHT_0TO3() 304d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org vp9_mbfilter_dspr2(&p3_r, &p2_r, &p1_r, &p0_r, 305d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org &q0_r, &q1_r, &q2_r, &q3_r); 306d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 307d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org if (mask & flat & 0x000000FF) { 308d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org __asm__ __volatile__ ( 309d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p2_r], -3(%[s4]) \n\t" 310d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p1_r], -2(%[s4]) \n\t" 311d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p0_r], -1(%[s4]) \n\t" 312d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q0_r], (%[s4]) \n\t" 313d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q1_r], +1(%[s4]) \n\t" 314d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q2_r], +2(%[s4]) \n\t" 315d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 316d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : 317d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : [p2_r] "r" (p2_r), [p1_r] "r" (p1_r), [p0_r] "r" (p0_r), 318d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [q0_r] "r" (q0_r), [q1_r] "r" (q1_r), [q2_r] "r" (q2_r), 319d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [s4] "r" (s4) 320d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org ); 321d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org } else if (mask & 0x000000FF) { 322d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org __asm__ __volatile__ ( 323d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p1_f0], -2(%[s4]) \n\t" 324d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p0_f0], -1(%[s4]) \n\t" 325d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q0_f0], (%[s4]) \n\t" 326d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q1_f0], +1(%[s4]) \n\t" 327d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 328d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : 329d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : [p1_f0] "r" (p1_f0), [p0_f0] "r" (p0_f0), 330d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [q0_f0] "r" (q0_f0), [q1_f0] "r" (q1_f0), 331d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [s4] "r" (s4) 332d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org ); 333d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org } 334d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 335d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org __asm__ __volatile__ ( 336d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[p2_r], %[p2_r], 16 \n\t" 337d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[p1_r], %[p1_r], 16 \n\t" 338d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[p0_r], %[p0_r], 16 \n\t" 339d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[q0_r], %[q0_r], 16 \n\t" 340d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[q1_r], %[q1_r], 16 \n\t" 341d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[q2_r], %[q2_r], 16 \n\t" 342d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[p1_f0], %[p1_f0], 8 \n\t" 343d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[p0_f0], %[p0_f0], 8 \n\t" 344d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[q0_f0], %[q0_f0], 8 \n\t" 345d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[q1_f0], %[q1_f0], 8 \n\t" 346d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 347d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : [p2_r] "+r" (p2_r), [p1_r] "+r" (p1_r), [p0_r] "+r" (p0_r), 348d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [q0_r] "+r" (q0_r), [q1_r] "+r" (q1_r), [q2_r] "+r" (q2_r), 349d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [p1_f0] "+r" (p1_f0), [p0_f0] "+r" (p0_f0), 350d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [q0_f0] "+r" (q0_f0), [q1_f0] "+r" (q1_f0) 351d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : 352d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org ); 353d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 354d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org if (mask & flat & 0x0000FF00) { 355d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org __asm__ __volatile__ ( 356d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p2_r], -3(%[s3]) \n\t" 357d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p1_r], -2(%[s3]) \n\t" 358d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p0_r], -1(%[s3]) \n\t" 359d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q0_r], (%[s3]) \n\t" 360d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q1_r], +1(%[s3]) \n\t" 361d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q2_r], +2(%[s3]) \n\t" 362d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 363d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : 364d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : [p2_r] "r" (p2_r), [p1_r] "r" (p1_r), [p0_r] "r" (p0_r), 365d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [q0_r] "r" (q0_r), [q1_r] "r" (q1_r), [q2_r] "r" (q2_r), 366d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [s3] "r" (s3) 367d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org ); 368d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org } else if (mask & 0x0000FF00) { 369d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org __asm__ __volatile__ ( 370d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p1_f0], -2(%[s3]) \n\t" 371d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p0_f0], -1(%[s3]) \n\t" 372d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q0_f0], (%[s3]) \n\t" 373d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q1_f0], +1(%[s3]) \n\t" 374d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 375d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : 376d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : [p1_f0] "r" (p1_f0), [p0_f0] "r" (p0_f0), 377d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [q0_f0] "r" (q0_f0), [q1_f0] "r" (q1_f0), 378d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [s3] "r" (s3) 379d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org ); 380d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org } 381d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 382d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org __asm__ __volatile__ ( 383d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[p1_f0], %[p1_f0], 8 \n\t" 384d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[p0_f0], %[p0_f0], 8 \n\t" 385d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[q0_f0], %[q0_f0], 8 \n\t" 386d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[q1_f0], %[q1_f0], 8 \n\t" 387d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 388d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : [p1_f0] "+r" (p1_f0), [p0_f0] "+r" (p0_f0), 389d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [q0_f0] "+r" (q0_f0), [q1_f0] "+r" (q1_f0) 390d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : 391d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org ); 392d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 393d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org if (mask & flat & 0x00FF0000) { 394d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org __asm__ __volatile__ ( 395d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p2_l], -3(%[s2]) \n\t" 396d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p1_l], -2(%[s2]) \n\t" 397d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p0_l], -1(%[s2]) \n\t" 398d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q0_l], (%[s2]) \n\t" 399d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q1_l], +1(%[s2]) \n\t" 400d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q2_l], +2(%[s2]) \n\t" 401d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 402d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : 403d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : [p2_l] "r" (p2_l), [p1_l] "r" (p1_l), [p0_l] "r" (p0_l), 404d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [q0_l] "r" (q0_l), [q1_l] "r" (q1_l), [q2_l] "r" (q2_l), 405d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [s2] "r" (s2) 406d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org ); 407d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org } else if (mask & 0x00FF0000) { 408d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org __asm__ __volatile__ ( 409d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p1_f0], -2(%[s2]) \n\t" 410d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p0_f0], -1(%[s2]) \n\t" 411d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q0_f0], (%[s2]) \n\t" 412d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q1_f0], +1(%[s2]) \n\t" 413d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 414d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : 415d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : [p1_f0] "r" (p1_f0), [p0_f0] "r" (p0_f0), 416d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [q0_f0] "r" (q0_f0), [q1_f0] "r" (q1_f0), 417d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [s2] "r" (s2) 418d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org ); 419d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org } 420d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 421d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org __asm__ __volatile__ ( 422d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[p2_l], %[p2_l], 16 \n\t" 423d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[p1_l], %[p1_l], 16 \n\t" 424d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[p0_l], %[p0_l], 16 \n\t" 425d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[q0_l], %[q0_l], 16 \n\t" 426d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[q1_l], %[q1_l], 16 \n\t" 427d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[q2_l], %[q2_l], 16 \n\t" 428d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[p1_f0], %[p1_f0], 8 \n\t" 429d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[p0_f0], %[p0_f0], 8 \n\t" 430d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[q0_f0], %[q0_f0], 8 \n\t" 431d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[q1_f0], %[q1_f0], 8 \n\t" 432d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 433d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : [p2_l] "+r" (p2_l), [p1_l] "+r" (p1_l), [p0_l] "+r" (p0_l), 434d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [q0_l] "+r" (q0_l), [q1_l] "+r" (q1_l), [q2_l] "+r" (q2_l), 435d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [p1_f0] "+r" (p1_f0), [p0_f0] "+r" (p0_f0), 436d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [q0_f0] "+r" (q0_f0), [q1_f0] "+r" (q1_f0) 437d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : 438d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org ); 439d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 440d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org if (mask & flat & 0xFF000000) { 441d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org __asm__ __volatile__ ( 442d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p2_l], -3(%[s1]) \n\t" 443d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p1_l], -2(%[s1]) \n\t" 444d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p0_l], -1(%[s1]) \n\t" 445d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q0_l], (%[s1]) \n\t" 446d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q1_l], +1(%[s1]) \n\t" 447d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q2_l], +2(%[s1]) \n\t" 448d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 449d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : 450d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : [p2_l] "r" (p2_l), [p1_l] "r" (p1_l), [p0_l] "r" (p0_l), 451d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [q0_l] "r" (q0_l), [q1_l] "r" (q1_l), [q2_l] "r" (q2_l), 452d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [s1] "r" (s1) 453d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org ); 454d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org } else if (mask & 0xFF000000) { 455d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org __asm__ __volatile__ ( 456d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p1_f0], -2(%[s1]) \n\t" 457d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p0_f0], -1(%[s1]) \n\t" 458d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q0_f0], (%[s1]) \n\t" 459d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q1_f0], +1(%[s1]) \n\t" 460d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 461d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : 462d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : [p1_f0] "r" (p1_f0), [p0_f0] "r" (p0_f0), 463d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [q0_f0] "r" (q0_f0), [q1_f0] "r" (q1_f0), 464d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [s1] "r" (s1) 465d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org ); 466d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org } 467d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org } else if ((flat2 != 0) && (flat != 0) && (mask != 0)) { 468d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org /* f0+f1+f2 */ 469d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org vp9_filter1_dspr2(mask, hev, p1, p0, q0, q1, 470d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org &p1_f0, &p0_f0, &q0_f0, &q1_f0); 471d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 472d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org PACK_LEFT_0TO3() 473d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org vp9_mbfilter1_dspr2(p3_l, p2_l, p1_l, p0_l, 474d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org q0_l, q1_l, q2_l, q3_l, 475d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org &p2_l_f1, &p1_l_f1, &p0_l_f1, 476d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org &q0_l_f1, &q1_l_f1, &q2_l_f1); 477d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 478d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org PACK_RIGHT_0TO3() 479d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org vp9_mbfilter1_dspr2(p3_r, p2_r, p1_r, p0_r, 480d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org q0_r, q1_r, q2_r, q3_r, 481d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org &p2_r_f1, &p1_r_f1, &p0_r_f1, 482d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org &q0_r_f1, &q1_r_f1, &q2_r_f1); 483d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 484d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org PACK_LEFT_4TO7() 485d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org vp9_wide_mbfilter_dspr2(&p7_l, &p6_l, &p5_l, &p4_l, 486d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org &p3_l, &p2_l, &p1_l, &p0_l, 487d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org &q0_l, &q1_l, &q2_l, &q3_l, 488d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org &q4_l, &q5_l, &q6_l, &q7_l); 489d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 490d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org PACK_RIGHT_4TO7() 491d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org vp9_wide_mbfilter_dspr2(&p7_r, &p6_r, &p5_r, &p4_r, 492d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org &p3_r, &p2_r, &p1_r, &p0_r, 493d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org &q0_r, &q1_r, &q2_r, &q3_r, 494d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org &q4_r, &q5_r, &q6_r, &q7_r); 495d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 496d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org if (mask & flat & flat2 & 0x000000FF) { 497d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org __asm__ __volatile__ ( 498d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p6_r], -7(%[s4]) \n\t" 499d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p5_r], -6(%[s4]) \n\t" 500d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p4_r], -5(%[s4]) \n\t" 501d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p3_r], -4(%[s4]) \n\t" 502d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p2_r], -3(%[s4]) \n\t" 503d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p1_r], -2(%[s4]) \n\t" 504d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p0_r], -1(%[s4]) \n\t" 505d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 506d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : 507d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : [p6_r] "r" (p6_r), [p5_r] "r" (p5_r), 508d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [p4_r] "r" (p4_r), [p3_r] "r" (p3_r), 509d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [p2_r] "r" (p2_r), [p1_r] "r" (p1_r), 510d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [p0_r] "r" (p0_r), [s4] "r" (s4) 511d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org ); 512d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 513d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org __asm__ __volatile__ ( 514d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q0_r], (%[s4]) \n\t" 515d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q1_r], +1(%[s4]) \n\t" 516d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q2_r], +2(%[s4]) \n\t" 517d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q3_r], +3(%[s4]) \n\t" 518d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q4_r], +4(%[s4]) \n\t" 519d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q5_r], +5(%[s4]) \n\t" 520d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q6_r], +6(%[s4]) \n\t" 521d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 522d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : 523d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : [q0_r] "r" (q0_r), [q1_r] "r" (q1_r), 524d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [q2_r] "r" (q2_r), [q3_r] "r" (q3_r), 525d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [q4_r] "r" (q4_r), [q5_r] "r" (q5_r), 526d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [q6_r] "r" (q6_r), [s4] "r" (s4) 527d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org ); 528d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org } else if (mask & flat & 0x000000FF) { 529d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org __asm__ __volatile__ ( 530d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p2_r_f1], -3(%[s4]) \n\t" 531d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p1_r_f1], -2(%[s4]) \n\t" 532d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p0_r_f1], -1(%[s4]) \n\t" 533d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q0_r_f1], (%[s4]) \n\t" 534d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q1_r_f1], +1(%[s4]) \n\t" 535d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q2_r_f1], +2(%[s4]) \n\t" 536d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 537d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : 538d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : [p2_r_f1] "r" (p2_r_f1), [p1_r_f1] "r" (p1_r_f1), 539d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [p0_r_f1] "r" (p0_r_f1), [q0_r_f1] "r" (q0_r_f1), 540d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [q1_r_f1] "r" (q1_r_f1), [q2_r_f1] "r" (q2_r_f1), 541d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [s4] "r" (s4) 542d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org ); 543d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org } else if (mask & 0x000000FF) { 544d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org __asm__ __volatile__ ( 545d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p1_f0], -2(%[s4]) \n\t" 546d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p0_f0], -1(%[s4]) \n\t" 547d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q0_f0], (%[s4]) \n\t" 548d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q1_f0], +1(%[s4]) \n\t" 549d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 550d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : 551d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : [p1_f0] "r" (p1_f0), [p0_f0] "r" (p0_f0), 552d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [q0_f0] "r" (q0_f0), [q1_f0] "r" (q1_f0), 553d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [s4] "r" (s4) 554d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org ); 555d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org } 556d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 557d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org __asm__ __volatile__ ( 558d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[p6_r], %[p6_r], 16 \n\t" 559d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[p5_r], %[p5_r], 16 \n\t" 560d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[p4_r], %[p4_r], 16 \n\t" 561d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[p3_r], %[p3_r], 16 \n\t" 562d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[p2_r], %[p2_r], 16 \n\t" 563d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[p1_r], %[p1_r], 16 \n\t" 564d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[p0_r], %[p0_r], 16 \n\t" 565d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[q0_r], %[q0_r], 16 \n\t" 566d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[q1_r], %[q1_r], 16 \n\t" 567d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[q2_r], %[q2_r], 16 \n\t" 568d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[q3_r], %[q3_r], 16 \n\t" 569d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[q4_r], %[q4_r], 16 \n\t" 570d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[q5_r], %[q5_r], 16 \n\t" 571d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[q6_r], %[q6_r], 16 \n\t" 572d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 573d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : [q0_r] "+r" (q0_r), [q1_r] "+r" (q1_r), 574d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [q2_r] "+r" (q2_r), [q3_r] "+r" (q3_r), 575d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [q4_r] "+r" (q4_r), [q5_r] "+r" (q5_r), 576d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [q6_r] "+r" (q6_r), [p6_r] "+r" (p6_r), 577d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [p5_r] "+r" (p5_r), [p4_r] "+r" (p4_r), 578d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [p3_r] "+r" (p3_r), [p2_r] "+r" (p2_r), 579d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [p1_r] "+r" (p1_r), [p0_r] "+r" (p0_r) 580d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : 581d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org ); 582d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 583d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org __asm__ __volatile__ ( 584d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[p2_r_f1], %[p2_r_f1], 16 \n\t" 585d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[p1_r_f1], %[p1_r_f1], 16 \n\t" 586d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[p0_r_f1], %[p0_r_f1], 16 \n\t" 587d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[q0_r_f1], %[q0_r_f1], 16 \n\t" 588d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[q1_r_f1], %[q1_r_f1], 16 \n\t" 589d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[q2_r_f1], %[q2_r_f1], 16 \n\t" 590d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[p1_f0], %[p1_f0], 8 \n\t" 591d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[p0_f0], %[p0_f0], 8 \n\t" 592d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[q0_f0], %[q0_f0], 8 \n\t" 593d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[q1_f0], %[q1_f0], 8 \n\t" 594d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 595d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : [p2_r_f1] "+r" (p2_r_f1), [p1_r_f1] "+r" (p1_r_f1), 596d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [p0_r_f1] "+r" (p0_r_f1), [q0_r_f1] "+r" (q0_r_f1), 597d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [q1_r_f1] "+r" (q1_r_f1), [q2_r_f1] "+r" (q2_r_f1), 598d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [p1_f0] "+r" (p1_f0), [p0_f0] "+r" (p0_f0), 599d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [q0_f0] "+r" (q0_f0), [q1_f0] "+r" (q1_f0) 600d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : 601d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org ); 602d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 603d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org if (mask & flat & flat2 & 0x0000FF00) { 604d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org __asm__ __volatile__ ( 605d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p6_r], -7(%[s3]) \n\t" 606d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p5_r], -6(%[s3]) \n\t" 607d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p4_r], -5(%[s3]) \n\t" 608d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p3_r], -4(%[s3]) \n\t" 609d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p2_r], -3(%[s3]) \n\t" 610d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p1_r], -2(%[s3]) \n\t" 611d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p0_r], -1(%[s3]) \n\t" 612d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 613d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : 614d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : [p6_r] "r" (p6_r), [p5_r] "r" (p5_r), [p4_r] "r" (p4_r), 615d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [p3_r] "r" (p3_r), [p2_r] "r" (p2_r), [p1_r] "r" (p1_r), 616d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [p0_r] "r" (p0_r), [s3] "r" (s3) 617d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org ); 618d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 619d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org __asm__ __volatile__ ( 620d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q0_r], (%[s3]) \n\t" 621d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q1_r], +1(%[s3]) \n\t" 622d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q2_r], +2(%[s3]) \n\t" 623d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q3_r], +3(%[s3]) \n\t" 624d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q4_r], +4(%[s3]) \n\t" 625d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q5_r], +5(%[s3]) \n\t" 626d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q6_r], +6(%[s3]) \n\t" 627d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 628d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : 629d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : [q0_r] "r" (q0_r), [q1_r] "r" (q1_r), 630d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [q2_r] "r" (q2_r), [q3_r] "r" (q3_r), 631d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [q4_r] "r" (q4_r), [q5_r] "r" (q5_r), 632d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [q6_r] "r" (q6_r), [s3] "r" (s3) 633d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org ); 634d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org } else if (mask & flat & 0x0000FF00) { 635d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org __asm__ __volatile__ ( 636d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p2_r_f1], -3(%[s3]) \n\t" 637d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p1_r_f1], -2(%[s3]) \n\t" 638d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p0_r_f1], -1(%[s3]) \n\t" 639d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q0_r_f1], (%[s3]) \n\t" 640d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q1_r_f1], +1(%[s3]) \n\t" 641d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q2_r_f1], +2(%[s3]) \n\t" 642d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 643d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : 644d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : [p2_r_f1] "r" (p2_r_f1), [p1_r_f1] "r" (p1_r_f1), 645d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [p0_r_f1] "r" (p0_r_f1), [q0_r_f1] "r" (q0_r_f1), 646d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [q1_r_f1] "r" (q1_r_f1), [q2_r_f1] "r" (q2_r_f1), 647d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [s3] "r" (s3) 648d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org ); 649d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org } else if (mask & 0x0000FF00) { 650d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org __asm__ __volatile__ ( 651d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p1_f0], -2(%[s3]) \n\t" 652d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p0_f0], -1(%[s3]) \n\t" 653d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q0_f0], (%[s3]) \n\t" 654d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q1_f0], +1(%[s3]) \n\t" 655d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 656d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : 657d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : [p1_f0] "r" (p1_f0), [p0_f0] "r" (p0_f0), 658d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [q0_f0] "r" (q0_f0), [q1_f0] "r" (q1_f0), 659d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [s3] "r" (s3) 660d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org ); 661d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org } 662d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 663d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org __asm__ __volatile__ ( 664d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[p1_f0], %[p1_f0], 8 \n\t" 665d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[p0_f0], %[p0_f0], 8 \n\t" 666d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[q0_f0], %[q0_f0], 8 \n\t" 667d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[q1_f0], %[q1_f0], 8 \n\t" 668d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 669d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : [p1_f0] "+r" (p1_f0), [p0_f0] "+r" (p0_f0), 670d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [q0_f0] "+r" (q0_f0), [q1_f0] "+r" (q1_f0) 671d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : 672d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org ); 673d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 674d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org if (mask & flat & flat2 & 0x00FF0000) { 675d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org __asm__ __volatile__ ( 676d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p6_l], -7(%[s2]) \n\t" 677d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p5_l], -6(%[s2]) \n\t" 678d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p4_l], -5(%[s2]) \n\t" 679d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p3_l], -4(%[s2]) \n\t" 680d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p2_l], -3(%[s2]) \n\t" 681d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p1_l], -2(%[s2]) \n\t" 682d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p0_l], -1(%[s2]) \n\t" 683d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 684d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : 685d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : [p6_l] "r" (p6_l), [p5_l] "r" (p5_l), [p4_l] "r" (p4_l), 686d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [p3_l] "r" (p3_l), [p2_l] "r" (p2_l), [p1_l] "r" (p1_l), 687d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [p0_l] "r" (p0_l), [s2] "r" (s2) 688d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org ); 689d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 690d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org __asm__ __volatile__ ( 691d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q0_l], (%[s2]) \n\t" 692d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q1_l], +1(%[s2]) \n\t" 693d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q2_l], +2(%[s2]) \n\t" 694d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q3_l], +3(%[s2]) \n\t" 695d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q4_l], +4(%[s2]) \n\t" 696d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q5_l], +5(%[s2]) \n\t" 697d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q6_l], +6(%[s2]) \n\t" 698d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 699d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : 700d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : [q0_l] "r" (q0_l), [q1_l] "r" (q1_l), [q2_l] "r" (q2_l), 701d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [q3_l] "r" (q3_l), [q4_l] "r" (q4_l), [q5_l] "r" (q5_l), 702d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [q6_l] "r" (q6_l), [s2] "r" (s2) 703d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org ); 704d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org } else if (mask & flat & 0x00FF0000) { 705d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org __asm__ __volatile__ ( 706d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p2_l_f1], -3(%[s2]) \n\t" 707d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p1_l_f1], -2(%[s2]) \n\t" 708d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p0_l_f1], -1(%[s2]) \n\t" 709d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q0_l_f1], (%[s2]) \n\t" 710d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q1_l_f1], +1(%[s2]) \n\t" 711d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q2_l_f1], +2(%[s2]) \n\t" 712d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 713d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : 714d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : [p2_l_f1] "r" (p2_l_f1), [p1_l_f1] "r" (p1_l_f1), 715d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [p0_l_f1] "r" (p0_l_f1), [q0_l_f1] "r" (q0_l_f1), 716d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [q1_l_f1] "r" (q1_l_f1), [q2_l_f1] "r" (q2_l_f1), 717d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [s2] "r" (s2) 718d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org ); 719d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org } else if (mask & 0x00FF0000) { 720d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org __asm__ __volatile__ ( 721d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p1_f0], -2(%[s2]) \n\t" 722d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p0_f0], -1(%[s2]) \n\t" 723d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q0_f0], (%[s2]) \n\t" 724d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q1_f0], +1(%[s2]) \n\t" 725d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 726d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : 727d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : [p1_f0] "r" (p1_f0), [p0_f0] "r" (p0_f0), 728d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [q0_f0] "r" (q0_f0), [q1_f0] "r" (q1_f0), 729d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [s2] "r" (s2) 730d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org ); 731d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org } 732d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 733d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org __asm__ __volatile__ ( 734d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[p6_l], %[p6_l], 16 \n\t" 735d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[p5_l], %[p5_l], 16 \n\t" 736d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[p4_l], %[p4_l], 16 \n\t" 737d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[p3_l], %[p3_l], 16 \n\t" 738d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[p2_l], %[p2_l], 16 \n\t" 739d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[p1_l], %[p1_l], 16 \n\t" 740d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[p0_l], %[p0_l], 16 \n\t" 741d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[q0_l], %[q0_l], 16 \n\t" 742d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[q1_l], %[q1_l], 16 \n\t" 743d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[q2_l], %[q2_l], 16 \n\t" 744d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[q3_l], %[q3_l], 16 \n\t" 745d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[q4_l], %[q4_l], 16 \n\t" 746d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[q5_l], %[q5_l], 16 \n\t" 747d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[q6_l], %[q6_l], 16 \n\t" 748d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 749d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : [q0_l] "+r" (q0_l), [q1_l] "+r" (q1_l), [q2_l] "+r" (q2_l), 750d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [q3_l] "+r" (q3_l), [q4_l] "+r" (q4_l), [q5_l] "+r" (q5_l), 751d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [q6_l] "+r" (q6_l), [p6_l] "+r" (p6_l), [p5_l] "+r" (p5_l), 752d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [p4_l] "+r" (p4_l), [p3_l] "+r" (p3_l), [p2_l] "+r" (p2_l), 753d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [p1_l] "+r" (p1_l), [p0_l] "+r" (p0_l) 754d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : 755d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org ); 756d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 757d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org __asm__ __volatile__ ( 758d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[p2_l_f1], %[p2_l_f1], 16 \n\t" 759d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[p1_l_f1], %[p1_l_f1], 16 \n\t" 760d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[p0_l_f1], %[p0_l_f1], 16 \n\t" 761d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[q0_l_f1], %[q0_l_f1], 16 \n\t" 762d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[q1_l_f1], %[q1_l_f1], 16 \n\t" 763d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[q2_l_f1], %[q2_l_f1], 16 \n\t" 764d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[p1_f0], %[p1_f0], 8 \n\t" 765d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[p0_f0], %[p0_f0], 8 \n\t" 766d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[q0_f0], %[q0_f0], 8 \n\t" 767d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "srl %[q1_f0], %[q1_f0], 8 \n\t" 768d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 769d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : [p2_l_f1] "+r" (p2_l_f1), [p1_l_f1] "+r" (p1_l_f1), 770d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [p0_l_f1] "+r" (p0_l_f1), [q0_l_f1] "+r" (q0_l_f1), 771d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [q1_l_f1] "+r" (q1_l_f1), [q2_l_f1] "+r" (q2_l_f1), 772d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [p1_f0] "+r" (p1_f0), [p0_f0] "+r" (p0_f0), 773d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [q0_f0] "+r" (q0_f0), [q1_f0] "+r" (q1_f0) 774d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : 775d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org ); 776d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 777d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org if (mask & flat & flat2 & 0xFF000000) { 778d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org __asm__ __volatile__ ( 779d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p6_l], -7(%[s1]) \n\t" 780d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p5_l], -6(%[s1]) \n\t" 781d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p4_l], -5(%[s1]) \n\t" 782d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p3_l], -4(%[s1]) \n\t" 783d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p2_l], -3(%[s1]) \n\t" 784d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p1_l], -2(%[s1]) \n\t" 785d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p0_l], -1(%[s1]) \n\t" 786d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 787d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : 788d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : [p6_l] "r" (p6_l), [p5_l] "r" (p5_l), [p4_l] "r" (p4_l), 789d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [p3_l] "r" (p3_l), [p2_l] "r" (p2_l), [p1_l] "r" (p1_l), 790d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [p0_l] "r" (p0_l), 791d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [s1] "r" (s1) 792d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org ); 793d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 794d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org __asm__ __volatile__ ( 795d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q0_l], (%[s1]) \n\t" 796d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q1_l], 1(%[s1]) \n\t" 797d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q2_l], 2(%[s1]) \n\t" 798d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q3_l], 3(%[s1]) \n\t" 799d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q4_l], 4(%[s1]) \n\t" 800d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q5_l], 5(%[s1]) \n\t" 801d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q6_l], 6(%[s1]) \n\t" 802d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 803d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : 804d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : [q0_l] "r" (q0_l), [q1_l] "r" (q1_l), [q2_l] "r" (q2_l), 805d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [q3_l] "r" (q3_l), [q4_l] "r" (q4_l), [q5_l] "r" (q5_l), 806d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [q6_l] "r" (q6_l), 807d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [s1] "r" (s1) 808d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org ); 809d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org } else if (mask & flat & 0xFF000000) { 810d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org __asm__ __volatile__ ( 811d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p2_l_f1], -3(%[s1]) \n\t" 812d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p1_l_f1], -2(%[s1]) \n\t" 813d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p0_l_f1], -1(%[s1]) \n\t" 814d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q0_l_f1], (%[s1]) \n\t" 815d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q1_l_f1], +1(%[s1]) \n\t" 816d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q2_l_f1], +2(%[s1]) \n\t" 817d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 818d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : 819d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : [p2_l_f1] "r" (p2_l_f1), [p1_l_f1] "r" (p1_l_f1), 820d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [p0_l_f1] "r" (p0_l_f1), [q0_l_f1] "r" (q0_l_f1), 821d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [q1_l_f1] "r" (q1_l_f1), [q2_l_f1] "r" (q2_l_f1), 822d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [s1] "r" (s1) 823d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org ); 824d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org } else if (mask & 0xFF000000) { 825d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org __asm__ __volatile__ ( 826d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p1_f0], -2(%[s1]) \n\t" 827d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[p0_f0], -1(%[s1]) \n\t" 828d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q0_f0], (%[s1]) \n\t" 829d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sb %[q1_f0], +1(%[s1]) \n\t" 830d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 831d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : 832d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : [p1_f0] "r" (p1_f0), [p0_f0] "r" (p0_f0), 833d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [q0_f0] "r" (q0_f0), [q1_f0] "r" (q1_f0), 834d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org [s1] "r" (s1) 835d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org ); 836d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org } 837d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org } 838d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org } 839d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org} 840d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org#endif // #if HAVE_DSPR2 841