1ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org/* 2ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org * Copyright (c) 2013 The WebM project authors. All Rights Reserved. 3ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org * 4ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org * Use of this source code is governed by a BSD-style license 5ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org * that can be found in the LICENSE file in the root of the source 6ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org * tree. An additional intellectual property rights grant can be found 7ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org * in the file PATENTS. All contributing project authors may 8ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org * be found in the AUTHORS file in the root of the source tree. 9ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org */ 10ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 11ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org#include <assert.h> 12ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org#include <stdio.h> 13ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 14ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org#include "./vpx_config.h" 15ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org#include "./vp9_rtcd.h" 16ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org#include "vp9/common/vp9_common.h" 17ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org#include "vp9/common/vp9_blockd.h" 18ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org#include "vp9/common/vp9_idct.h" 19ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org#include "vp9/common/mips/dspr2/vp9_common_dspr2.h" 20ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 21ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org#if HAVE_DSPR2 2276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.orgstatic void idct32_rows_dspr2(const int16_t *input, int16_t *output, 2376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org uint32_t no_rows) { 24ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org int16_t step1_0, step1_1, step1_2, step1_3, step1_4, step1_5, step1_6; 25ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org int16_t step1_7, step1_8, step1_9, step1_10, step1_11, step1_12, step1_13; 26ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org int16_t step1_14, step1_15, step1_16, step1_17, step1_18, step1_19, step1_20; 27ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org int16_t step1_21, step1_22, step1_23, step1_24, step1_25, step1_26, step1_27; 28ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org int16_t step1_28, step1_29, step1_30, step1_31; 29ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org int16_t step2_0, step2_1, step2_2, step2_3, step2_4, step2_5, step2_6; 30ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org int16_t step2_7, step2_8, step2_9, step2_10, step2_11, step2_12, step2_13; 31ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org int16_t step2_14, step2_15, step2_16, step2_17, step2_18, step2_19, step2_20; 32ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org int16_t step2_21, step2_22, step2_23, step2_24, step2_25, step2_26, step2_27; 33ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org int16_t step2_28, step2_29, step2_30, step2_31; 34ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org int16_t step3_8, step3_9, step3_10, step3_11, step3_12, step3_13, step3_14; 35ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org int16_t step3_15, step3_16, step3_17, step3_18, step3_19, step3_20, step3_21; 36ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org int16_t step3_22, step3_23, step3_24, step3_25, step3_26, step3_27, step3_28; 37ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org int16_t step3_29, step3_30, step3_31; 38ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org int temp0, temp1, temp2, temp3; 39ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org int load1, load2, load3, load4; 40ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org int result1, result2; 41ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org int temp21; 42ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org int i; 43ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org const int const_2_power_13 = 8192; 44ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org const int32_t *input_int; 45ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 46d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org for (i = no_rows; i--; ) { 47ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org input_int = (const int32_t *)input; 48ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 49ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org if (!(input_int[0] | input_int[1] | input_int[2] | input_int[3] | 50ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org input_int[4] | input_int[5] | input_int[6] | input_int[7] | 51ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org input_int[8] | input_int[9] | input_int[10] | input_int[11] | 52ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org input_int[12] | input_int[13] | input_int[14] | input_int[15])) { 53ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org input += 32; 54ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 55ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org __asm__ __volatile__ ( 56ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sh $zero, 0(%[output]) \n\t" 57ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sh $zero, 64(%[output]) \n\t" 58ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sh $zero, 128(%[output]) \n\t" 59ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sh $zero, 192(%[output]) \n\t" 60ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sh $zero, 256(%[output]) \n\t" 61ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sh $zero, 320(%[output]) \n\t" 62ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sh $zero, 384(%[output]) \n\t" 63ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sh $zero, 448(%[output]) \n\t" 64ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sh $zero, 512(%[output]) \n\t" 65ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sh $zero, 576(%[output]) \n\t" 66ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sh $zero, 640(%[output]) \n\t" 67ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sh $zero, 704(%[output]) \n\t" 68ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sh $zero, 768(%[output]) \n\t" 69ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sh $zero, 832(%[output]) \n\t" 70ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sh $zero, 896(%[output]) \n\t" 71ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sh $zero, 960(%[output]) \n\t" 72ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sh $zero, 1024(%[output]) \n\t" 73ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sh $zero, 1088(%[output]) \n\t" 74ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sh $zero, 1152(%[output]) \n\t" 75ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sh $zero, 1216(%[output]) \n\t" 76ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sh $zero, 1280(%[output]) \n\t" 77ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sh $zero, 1344(%[output]) \n\t" 78ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sh $zero, 1408(%[output]) \n\t" 79ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sh $zero, 1472(%[output]) \n\t" 80ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sh $zero, 1536(%[output]) \n\t" 81ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sh $zero, 1600(%[output]) \n\t" 82ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sh $zero, 1664(%[output]) \n\t" 83ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sh $zero, 1728(%[output]) \n\t" 84ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sh $zero, 1792(%[output]) \n\t" 85ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sh $zero, 1856(%[output]) \n\t" 86ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sh $zero, 1920(%[output]) \n\t" 87ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sh $zero, 1984(%[output]) \n\t" 88ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 89ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : 90ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [output] "r" (output) 91ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org ); 92ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 93ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org output += 1; 94ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 95ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org continue; 96ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org } 97ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 98ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org /* prefetch row */ 99ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org vp9_prefetch_load((const uint8_t *)(input + 32)); 100ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org vp9_prefetch_load((const uint8_t *)(input + 48)); 101ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 102ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org __asm__ __volatile__ ( 103ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lh %[load1], 2(%[input]) \n\t" 104ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lh %[load2], 62(%[input]) \n\t" 105ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lh %[load3], 34(%[input]) \n\t" 106ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lh %[load4], 30(%[input]) \n\t" 107ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 108ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac1 \n\t" 109ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac1 \n\t" 110ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac3 \n\t" 111ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac3 \n\t" 112ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 113ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac1, %[load1], %[cospi_31_64] \n\t" 114ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "msub $ac1, %[load2], %[cospi_1_64] \n\t" 115ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[temp0], $ac1, 31 \n\t" 116ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 117ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac3, %[load1], %[cospi_1_64] \n\t" 118ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac3, %[load2], %[cospi_31_64] \n\t" 119ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[temp3], $ac3, 31 \n\t" 120ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 121ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac1 \n\t" 122ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac1 \n\t" 123ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac2 \n\t" 124ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac2 \n\t" 125ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 126ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac2, %[load3], %[cospi_15_64] \n\t" 127ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "msub $ac2, %[load4], %[cospi_17_64] \n\t" 128ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[temp1], $ac2, 31 \n\t" 129ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 130ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac1, %[load3], %[cospi_17_64] \n\t" 131ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac1, %[load4], %[cospi_15_64] \n\t" 132ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[temp2], $ac1, 31 \n\t" 133ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 134ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac1 \n\t" 135ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac1 \n\t" 136ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac3 \n\t" 137ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac3 \n\t" 138ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 139ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sub %[load1], %[temp3], %[temp2] \n\t" 140ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sub %[load2], %[temp0], %[temp1] \n\t" 141ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 142ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac1, %[load1], %[cospi_28_64] \n\t" 143ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "msub $ac1, %[load2], %[cospi_4_64] \n\t" 144ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac3, %[load1], %[cospi_4_64] \n\t" 145ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac3, %[load2], %[cospi_28_64] \n\t" 146ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 147ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[step1_17], $ac1, 31 \n\t" 148ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[step1_30], $ac3, 31 \n\t" 149ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "add %[step1_16], %[temp0], %[temp1] \n\t" 150ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "add %[step1_31], %[temp2], %[temp3] \n\t" 151ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 152ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [load1] "=&r" (load1), [load2] "=&r" (load2), 153ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [load3] "=&r" (load3), [load4] "=&r" (load4), 154ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [temp0] "=&r" (temp0), [temp1] "=&r" (temp1), 155ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [temp2] "=&r" (temp2), [temp3] "=&r" (temp3), 156ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [step1_16] "=r" (step1_16), [step1_17] "=r" (step1_17), 157ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [step1_30] "=r" (step1_30), [step1_31] "=r" (step1_31) 158ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [const_2_power_13] "r" (const_2_power_13), [input] "r" (input), 159ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [cospi_31_64] "r" (cospi_31_64), [cospi_1_64] "r" (cospi_1_64), 160ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [cospi_4_64] "r" (cospi_4_64), [cospi_17_64] "r" (cospi_17_64), 161ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [cospi_15_64] "r" (cospi_15_64), [cospi_28_64] "r" (cospi_28_64) 162ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org ); 163ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 164ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org __asm__ __volatile__ ( 165ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lh %[load1], 18(%[input]) \n\t" 166ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lh %[load2], 46(%[input]) \n\t" 167ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lh %[load3], 50(%[input]) \n\t" 168ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lh %[load4], 14(%[input]) \n\t" 169ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 170ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac1 \n\t" 171ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac1 \n\t" 172ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac3 \n\t" 173ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac3 \n\t" 174ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 175ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac1, %[load1], %[cospi_23_64] \n\t" 176ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "msub $ac1, %[load2], %[cospi_9_64] \n\t" 177ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[temp0], $ac1, 31 \n\t" 178ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 179ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac3, %[load1], %[cospi_9_64] \n\t" 180ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac3, %[load2], %[cospi_23_64] \n\t" 181ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[temp3], $ac3, 31 \n\t" 182ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 183ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac1 \n\t" 184ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac1 \n\t" 185ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac2 \n\t" 186ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac2 \n\t" 187ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 188ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac2, %[load3], %[cospi_7_64] \n\t" 189ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "msub $ac2, %[load4], %[cospi_25_64] \n\t" 190ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[temp1], $ac2, 31 \n\t" 191ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 192ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac1, %[load3], %[cospi_25_64] \n\t" 193ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac1, %[load4], %[cospi_7_64] \n\t" 194ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[temp2], $ac1, 31 \n\t" 195ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 196ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac1 \n\t" 197ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac1 \n\t" 198ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac3 \n\t" 199ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac3 \n\t" 200ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 201ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sub %[load1], %[temp1], %[temp0] \n\t" 202ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sub %[load2], %[temp2], %[temp3] \n\t" 203ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 204ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "msub $ac1, %[load1], %[cospi_28_64] \n\t" 205ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "msub $ac1, %[load2], %[cospi_4_64] \n\t" 206ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "msub $ac3, %[load1], %[cospi_4_64] \n\t" 207ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac3, %[load2], %[cospi_28_64] \n\t" 208ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 209ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[step1_18], $ac1, 31 \n\t" 210ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[step1_29], $ac3, 31 \n\t" 211ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "add %[step1_19], %[temp0], %[temp1] \n\t" 212ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "add %[step1_28], %[temp2], %[temp3] \n\t" 213ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 214ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [load1] "=&r" (load1), [load2] "=&r" (load2), 215ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [load3] "=&r" (load3), [load4] "=&r" (load4), 216ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [temp0] "=&r" (temp0), [temp1] "=&r" (temp1), 217ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [temp2] "=&r" (temp2), [temp3] "=&r" (temp3), 218ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [step1_18] "=r" (step1_18), [step1_19] "=r" (step1_19), 219ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [step1_28] "=r" (step1_28), [step1_29] "=r" (step1_29) 220ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [const_2_power_13] "r" (const_2_power_13), [input] "r" (input), 221ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [cospi_23_64] "r" (cospi_23_64), [cospi_9_64] "r" (cospi_9_64), 222ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [cospi_4_64] "r" (cospi_4_64), [cospi_7_64] "r" (cospi_7_64), 223ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [cospi_25_64] "r" (cospi_25_64), [cospi_28_64] "r" (cospi_28_64) 224ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org ); 225ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 226ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org __asm__ __volatile__ ( 227ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lh %[load1], 10(%[input]) \n\t" 228ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lh %[load2], 54(%[input]) \n\t" 229ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lh %[load3], 42(%[input]) \n\t" 230ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lh %[load4], 22(%[input]) \n\t" 231ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 232ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac1 \n\t" 233ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac1 \n\t" 234ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac3 \n\t" 235ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac3 \n\t" 236ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 237ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac1, %[load1], %[cospi_27_64] \n\t" 238ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "msub $ac1, %[load2], %[cospi_5_64] \n\t" 239ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[temp0], $ac1, 31 \n\t" 240ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 241ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac3, %[load1], %[cospi_5_64] \n\t" 242ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac3, %[load2], %[cospi_27_64] \n\t" 243ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[temp3], $ac3, 31 \n\t" 244ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 245ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac1 \n\t" 246ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac1 \n\t" 247ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac2 \n\t" 248ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac2 \n\t" 249ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 250ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac2, %[load3], %[cospi_11_64] \n\t" 251ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "msub $ac2, %[load4], %[cospi_21_64] \n\t" 252ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[temp1], $ac2, 31 \n\t" 253ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 254ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac1, %[load3], %[cospi_21_64] \n\t" 255ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac1, %[load4], %[cospi_11_64] \n\t" 256ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[temp2], $ac1, 31 \n\t" 257ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 258ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac1 \n\t" 259ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac1 \n\t" 260ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac3 \n\t" 261ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac3 \n\t" 262ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 263ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sub %[load1], %[temp0], %[temp1] \n\t" 264ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sub %[load2], %[temp3], %[temp2] \n\t" 265ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 266ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac1, %[load2], %[cospi_12_64] \n\t" 267ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "msub $ac1, %[load1], %[cospi_20_64] \n\t" 268ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac3, %[load1], %[cospi_12_64] \n\t" 269ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac3, %[load2], %[cospi_20_64] \n\t" 270ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 271ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[step1_21], $ac1, 31 \n\t" 272ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[step1_26], $ac3, 31 \n\t" 273ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "add %[step1_20], %[temp0], %[temp1] \n\t" 274ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "add %[step1_27], %[temp2], %[temp3] \n\t" 275ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 276ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [load1] "=&r" (load1), [load2] "=&r" (load2), 277ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [load3] "=&r" (load3), [load4] "=&r" (load4), 278ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [temp0] "=&r" (temp0), [temp1] "=&r" (temp1), 279ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [temp2] "=&r" (temp2), [temp3] "=&r" (temp3), 280ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [step1_20] "=r" (step1_20), [step1_21] "=r" (step1_21), 281ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [step1_26] "=r" (step1_26), [step1_27] "=r" (step1_27) 282ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [const_2_power_13] "r" (const_2_power_13), [input] "r" (input), 283ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [cospi_27_64] "r" (cospi_27_64), [cospi_5_64] "r" (cospi_5_64), 284ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [cospi_11_64] "r" (cospi_11_64), [cospi_21_64] "r" (cospi_21_64), 285ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [cospi_12_64] "r" (cospi_12_64), [cospi_20_64] "r" (cospi_20_64) 286ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org ); 287ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 288ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org __asm__ __volatile__ ( 289ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lh %[load1], 26(%[input]) \n\t" 290ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lh %[load2], 38(%[input]) \n\t" 291ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lh %[load3], 58(%[input]) \n\t" 292ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lh %[load4], 6(%[input]) \n\t" 293ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 294ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac1 \n\t" 295ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac1 \n\t" 296ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac3 \n\t" 297ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac3 \n\t" 298ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 299ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac1, %[load1], %[cospi_19_64] \n\t" 300ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "msub $ac1, %[load2], %[cospi_13_64] \n\t" 301ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[temp0], $ac1, 31 \n\t" 302ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 303ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac3, %[load1], %[cospi_13_64] \n\t" 304ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac3, %[load2], %[cospi_19_64] \n\t" 305ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[temp3], $ac3, 31 \n\t" 306ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 307ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac1 \n\t" 308ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac1 \n\t" 309ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac2 \n\t" 310ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac2 \n\t" 311ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 312ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac2, %[load3], %[cospi_3_64] \n\t" 313ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "msub $ac2, %[load4], %[cospi_29_64] \n\t" 314ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[temp1], $ac2, 31 \n\t" 315ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 316ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac1, %[load3], %[cospi_29_64] \n\t" 317ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac1, %[load4], %[cospi_3_64] \n\t" 318ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[temp2], $ac1, 31 \n\t" 319ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 320ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac1 \n\t" 321ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac1 \n\t" 322ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac3 \n\t" 323ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac3 \n\t" 324ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 325ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sub %[load1], %[temp1], %[temp0] \n\t" 326ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sub %[load2], %[temp2], %[temp3] \n\t" 327ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 328ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "msub $ac1, %[load1], %[cospi_12_64] \n\t" 329ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "msub $ac1, %[load2], %[cospi_20_64] \n\t" 330ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "msub $ac3, %[load1], %[cospi_20_64] \n\t" 331ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac3, %[load2], %[cospi_12_64] \n\t" 332ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 333ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[step1_22], $ac1, 31 \n\t" 334ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[step1_25], $ac3, 31 \n\t" 335ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "add %[step1_23], %[temp0], %[temp1] \n\t" 336ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "add %[step1_24], %[temp2], %[temp3] \n\t" 337ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 338ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [load1] "=&r" (load1), [load2] "=&r" (load2), 339ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [load3] "=&r" (load3), [load4] "=&r" (load4), 340ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [temp0] "=&r" (temp0), [temp1] "=&r" (temp1), 341ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [temp2] "=&r" (temp2), [temp3] "=&r" (temp3), 342ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [step1_22] "=r" (step1_22), [step1_23] "=r" (step1_23), 343ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [step1_24] "=r" (step1_24), [step1_25] "=r" (step1_25) 344ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [const_2_power_13] "r" (const_2_power_13), [input] "r" (input), 345ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [cospi_19_64] "r" (cospi_19_64), [cospi_13_64] "r" (cospi_13_64), 346ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [cospi_3_64] "r" (cospi_3_64), [cospi_29_64] "r" (cospi_29_64), 347ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [cospi_12_64] "r" (cospi_12_64), [cospi_20_64] "r" (cospi_20_64) 348ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org ); 349ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 350ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org __asm__ __volatile__ ( 351ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lh %[load1], 4(%[input]) \n\t" 352ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lh %[load2], 60(%[input]) \n\t" 353ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lh %[load3], 36(%[input]) \n\t" 354ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lh %[load4], 28(%[input]) \n\t" 355ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 356ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac1 \n\t" 357ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac1 \n\t" 358ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac3 \n\t" 359ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac3 \n\t" 360ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 361ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac1, %[load1], %[cospi_30_64] \n\t" 362ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "msub $ac1, %[load2], %[cospi_2_64] \n\t" 363ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[temp0], $ac1, 31 \n\t" 364ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 365ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac3, %[load1], %[cospi_2_64] \n\t" 366ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac3, %[load2], %[cospi_30_64] \n\t" 367ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[temp3], $ac3, 31 \n\t" 368ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 369ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac1 \n\t" 370ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac1 \n\t" 371ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac2 \n\t" 372ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac2 \n\t" 373ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 374ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac2, %[load3], %[cospi_14_64] \n\t" 375ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "msub $ac2, %[load4], %[cospi_18_64] \n\t" 376ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[temp1], $ac2, 31 \n\t" 377ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 378ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac1, %[load3], %[cospi_18_64] \n\t" 379ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac1, %[load4], %[cospi_14_64] \n\t" 380ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[temp2], $ac1, 31 \n\t" 381ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 382ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac1 \n\t" 383ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac1 \n\t" 384ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac3 \n\t" 385ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac3 \n\t" 386ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 387ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sub %[load1], %[temp0], %[temp1] \n\t" 388ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sub %[load2], %[temp3], %[temp2] \n\t" 389ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 390ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "msub $ac1, %[load1], %[cospi_8_64] \n\t" 391ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac1, %[load2], %[cospi_24_64] \n\t" 392ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac3, %[load1], %[cospi_24_64] \n\t" 393ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac3, %[load2], %[cospi_8_64] \n\t" 394ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 395ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[step2_9], $ac1, 31 \n\t" 396ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[step2_14], $ac3, 31 \n\t" 397ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "add %[step2_8], %[temp0], %[temp1] \n\t" 398ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "add %[step2_15], %[temp2], %[temp3] \n\t" 399ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 400ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [load1] "=&r" (load1), [load2] "=&r" (load2), 401ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [load3] "=&r" (load3), [load4] "=&r" (load4), 402ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [temp0] "=&r" (temp0), [temp1] "=&r" (temp1), 403ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [temp2] "=&r" (temp2), [temp3] "=&r" (temp3), 404ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [step2_8] "=r" (step2_8), [step2_9] "=r" (step2_9), 405ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [step2_14] "=r" (step2_14), [step2_15] "=r" (step2_15) 406ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [const_2_power_13] "r" (const_2_power_13), [input] "r" (input), 407ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [cospi_30_64] "r" (cospi_30_64), [cospi_2_64] "r" (cospi_2_64), 408ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [cospi_14_64] "r" (cospi_14_64), [cospi_18_64] "r" (cospi_18_64), 409ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [cospi_8_64] "r" (cospi_8_64), [cospi_24_64] "r" (cospi_24_64) 410ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org ); 411ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 412ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org __asm__ __volatile__ ( 413ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lh %[load1], 20(%[input]) \n\t" 414ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lh %[load2], 44(%[input]) \n\t" 415ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lh %[load3], 52(%[input]) \n\t" 416ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lh %[load4], 12(%[input]) \n\t" 417ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 418ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac1 \n\t" 419ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac1 \n\t" 420ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac3 \n\t" 421ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac3 \n\t" 422ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 423ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac1, %[load1], %[cospi_22_64] \n\t" 424ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "msub $ac1, %[load2], %[cospi_10_64] \n\t" 425ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[temp0], $ac1, 31 \n\t" 426ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 427ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac3, %[load1], %[cospi_10_64] \n\t" 428ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac3, %[load2], %[cospi_22_64] \n\t" 429ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[temp3], $ac3, 31 \n\t" 430ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 431ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac1 \n\t" 432ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac1 \n\t" 433ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac2 \n\t" 434ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac2 \n\t" 435ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 436ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac2, %[load3], %[cospi_6_64] \n\t" 437ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "msub $ac2, %[load4], %[cospi_26_64] \n\t" 438ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[temp1], $ac2, 31 \n\t" 439ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 440ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac1, %[load3], %[cospi_26_64] \n\t" 441ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac1, %[load4], %[cospi_6_64] \n\t" 442ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[temp2], $ac1, 31 \n\t" 443ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 444ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac1 \n\t" 445ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac1 \n\t" 446ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac3 \n\t" 447ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac3 \n\t" 448ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 449ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sub %[load1], %[temp1], %[temp0] \n\t" 450ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sub %[load2], %[temp2], %[temp3] \n\t" 451ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 452ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "msub $ac1, %[load1], %[cospi_24_64] \n\t" 453ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "msub $ac1, %[load2], %[cospi_8_64] \n\t" 454ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac3, %[load2], %[cospi_24_64] \n\t" 455ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "msub $ac3, %[load1], %[cospi_8_64] \n\t" 456ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 457ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[step2_10], $ac1, 31 \n\t" 458ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[step2_13], $ac3, 31 \n\t" 459ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "add %[step2_11], %[temp0], %[temp1] \n\t" 460ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "add %[step2_12], %[temp2], %[temp3] \n\t" 461ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 462ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [load1] "=&r" (load1), [load2] "=&r" (load2), 463ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [load3] "=&r" (load3), [load4] "=&r" (load4), 464ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [temp0] "=&r" (temp0), [temp1] "=&r" (temp1), 465ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [temp2] "=&r" (temp2), [temp3] "=&r" (temp3), 466ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [step2_10] "=r" (step2_10), [step2_11] "=r" (step2_11), 467ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [step2_12] "=r" (step2_12), [step2_13] "=r" (step2_13) 468ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [const_2_power_13] "r" (const_2_power_13), [input] "r" (input), 469ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [cospi_22_64] "r" (cospi_22_64), [cospi_10_64] "r" (cospi_10_64), 470ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [cospi_6_64] "r" (cospi_6_64), [cospi_26_64] "r" (cospi_26_64), 471ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [cospi_8_64] "r" (cospi_8_64), [cospi_24_64] "r" (cospi_24_64) 472ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org ); 473ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 474ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org __asm__ __volatile__ ( 475ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac0 \n\t" 476ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac0 \n\t" 477ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sub %[temp0], %[step2_14], %[step2_13] \n\t" 478ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sub %[temp0], %[temp0], %[step2_9] \n\t" 479ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "add %[temp0], %[temp0], %[step2_10] \n\t" 480ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac0, %[temp0], %[cospi_16_64] \n\t" 481ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 482ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac1 \n\t" 483ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac1 \n\t" 484ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sub %[temp1], %[step2_14], %[step2_13] \n\t" 485ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "add %[temp1], %[temp1], %[step2_9] \n\t" 486ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sub %[temp1], %[temp1], %[step2_10] \n\t" 487ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac1, %[temp1], %[cospi_16_64] \n\t" 488ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 489ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac2 \n\t" 490ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac2 \n\t" 491ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sub %[temp0], %[step2_15], %[step2_12] \n\t" 492ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sub %[temp0], %[temp0], %[step2_8] \n\t" 493ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "add %[temp0], %[temp0], %[step2_11] \n\t" 494ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac2, %[temp0], %[cospi_16_64] \n\t" 495ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 496ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac3 \n\t" 497ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac3 \n\t" 498ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sub %[temp1], %[step2_15], %[step2_12] \n\t" 499ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "add %[temp1], %[temp1], %[step2_8] \n\t" 500ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sub %[temp1], %[temp1], %[step2_11] \n\t" 501ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac3, %[temp1], %[cospi_16_64] \n\t" 502ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 503ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "add %[step3_8], %[step2_8], %[step2_11] \n\t" 504ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "add %[step3_9], %[step2_9], %[step2_10] \n\t" 505ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "add %[step3_14], %[step2_13], %[step2_14] \n\t" 506ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "add %[step3_15], %[step2_12], %[step2_15] \n\t" 507ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 508ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[step3_10], $ac0, 31 \n\t" 509ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[step3_13], $ac1, 31 \n\t" 510ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[step3_11], $ac2, 31 \n\t" 511ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[step3_12], $ac3, 31 \n\t" 512ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 513ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [temp0] "=&r" (temp0), [temp1] "=&r" (temp1), 514ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [step3_8] "=r" (step3_8), [step3_9] "=r" (step3_9), 515ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [step3_10] "=r" (step3_10), [step3_11] "=r" (step3_11), 516ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [step3_12] "=r" (step3_12), [step3_13] "=r" (step3_13), 517ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [step3_14] "=r" (step3_14), [step3_15] "=r" (step3_15) 518ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [const_2_power_13] "r" (const_2_power_13), 519ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [step2_8] "r" (step2_8), [step2_9] "r" (step2_9), 520ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [step2_10] "r" (step2_10), [step2_11] "r" (step2_11), 521ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [step2_12] "r" (step2_12), [step2_13] "r" (step2_13), 522ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [step2_14] "r" (step2_14), [step2_15] "r" (step2_15), 523ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [cospi_16_64] "r" (cospi_16_64) 524ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org ); 525ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 526ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step2_18 = step1_17 - step1_18; 527ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step2_29 = step1_30 - step1_29; 528ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 529ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org __asm__ __volatile__ ( 530ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac0 \n\t" 531ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac0 \n\t" 532ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "msub $ac0, %[step2_18], %[cospi_8_64] \n\t" 533ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac0, %[step2_29], %[cospi_24_64] \n\t" 534ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[step3_18], $ac0, 31 \n\t" 535ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 536ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [step3_18] "=r" (step3_18) 537ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [const_2_power_13] "r" (const_2_power_13), 538ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [step2_18] "r" (step2_18), [step2_29] "r" (step2_29), 539ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [cospi_24_64] "r" (cospi_24_64), [cospi_8_64] "r" (cospi_8_64) 540ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org ); 541ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 542ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org temp21 = step2_18 * cospi_24_64 + step2_29 * cospi_8_64; 543ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step3_29 = (temp21 + DCT_CONST_ROUNDING) >> DCT_CONST_BITS; 544ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 545ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step2_19 = step1_16 - step1_19; 546ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step2_28 = step1_31 - step1_28; 547ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 548ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org __asm__ __volatile__ ( 549ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac0 \n\t" 550ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac0 \n\t" 551ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "msub $ac0, %[step2_19], %[cospi_8_64] \n\t" 552ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac0, %[step2_28], %[cospi_24_64] \n\t" 553ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[step3_19], $ac0, 31 \n\t" 554ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 555ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [step3_19] "=r" (step3_19) 556ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [const_2_power_13] "r" (const_2_power_13), 557ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [step2_19] "r" (step2_19), [step2_28] "r" (step2_28), 558ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [cospi_24_64] "r" (cospi_24_64), [cospi_8_64] "r" (cospi_8_64) 559ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org ); 560ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 561ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org temp21 = step2_19 * cospi_24_64 + step2_28 * cospi_8_64; 562ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step3_28 = (temp21 + DCT_CONST_ROUNDING) >> DCT_CONST_BITS; 563ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 564ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step3_16 = step1_16 + step1_19; 565ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step3_17 = step1_17 + step1_18; 566ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step3_30 = step1_29 + step1_30; 567ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step3_31 = step1_28 + step1_31; 568ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 569ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step2_20 = step1_23 - step1_20; 570ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step2_27 = step1_24 - step1_27; 571ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 572ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org __asm__ __volatile__ ( 573ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac0 \n\t" 574ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac0 \n\t" 575ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "msub $ac0, %[step2_20], %[cospi_24_64] \n\t" 576ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "msub $ac0, %[step2_27], %[cospi_8_64] \n\t" 577ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[step3_20], $ac0, 31 \n\t" 578ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 579ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [step3_20] "=r" (step3_20) 580ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [const_2_power_13] "r" (const_2_power_13), 581ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [step2_20] "r" (step2_20), [step2_27] "r" (step2_27), 582ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [cospi_24_64] "r" (cospi_24_64), [cospi_8_64] "r" (cospi_8_64) 583ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org ); 584ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 585ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org temp21 = -step2_20 * cospi_8_64 + step2_27 * cospi_24_64; 586ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step3_27 = (temp21 + DCT_CONST_ROUNDING) >> DCT_CONST_BITS; 587ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 588ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step2_21 = step1_22 - step1_21; 589ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step2_26 = step1_25 - step1_26; 590ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 591ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org __asm__ __volatile__ ( 592ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac1 \n\t" 593ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac1 \n\t" 594ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "msub $ac1, %[step2_21], %[cospi_24_64] \n\t" 595ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "msub $ac1, %[step2_26], %[cospi_8_64] \n\t" 596ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[step3_21], $ac1, 31 \n\t" 597ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 598ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [step3_21] "=r" (step3_21) 599ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [const_2_power_13] "r" (const_2_power_13), 600ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [step2_21] "r" (step2_21), [step2_26] "r" (step2_26), 601ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [cospi_24_64] "r" (cospi_24_64), [cospi_8_64] "r" (cospi_8_64) 602ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org ); 603ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 604ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org temp21 = -step2_21 * cospi_8_64 + step2_26 * cospi_24_64; 605ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step3_26 = (temp21 + DCT_CONST_ROUNDING) >> DCT_CONST_BITS; 606ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 607ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step3_22 = step1_21 + step1_22; 608ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step3_23 = step1_20 + step1_23; 609ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step3_24 = step1_24 + step1_27; 610ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step3_25 = step1_25 + step1_26; 611ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 612ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step2_16 = step3_16 + step3_23; 613ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step2_17 = step3_17 + step3_22; 614ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step2_18 = step3_18 + step3_21; 615ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step2_19 = step3_19 + step3_20; 616ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step2_20 = step3_19 - step3_20; 617ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step2_21 = step3_18 - step3_21; 618ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step2_22 = step3_17 - step3_22; 619ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step2_23 = step3_16 - step3_23; 620ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 621ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step2_24 = step3_31 - step3_24; 622ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step2_25 = step3_30 - step3_25; 623ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step2_26 = step3_29 - step3_26; 624ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step2_27 = step3_28 - step3_27; 625ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step2_28 = step3_28 + step3_27; 626ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step2_29 = step3_29 + step3_26; 627ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step2_30 = step3_30 + step3_25; 628ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step2_31 = step3_31 + step3_24; 629ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 630ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org __asm__ __volatile__ ( 631ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lh %[load1], 0(%[input]) \n\t" 632ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lh %[load2], 32(%[input]) \n\t" 633ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lh %[load3], 16(%[input]) \n\t" 634ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lh %[load4], 48(%[input]) \n\t" 635ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 636ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac1 \n\t" 637ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac1 \n\t" 638ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac2 \n\t" 639ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac2 \n\t" 640ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "add %[result1], %[load1], %[load2] \n\t" 641ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sub %[result2], %[load1], %[load2] \n\t" 642ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac1, %[result1], %[cospi_16_64] \n\t" 643ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac2, %[result2], %[cospi_16_64] \n\t" 644ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[temp0], $ac1, 31 \n\t" 645ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[temp1], $ac2, 31 \n\t" 646ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 647ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac3 \n\t" 648ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac3 \n\t" 649ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac3, %[load3], %[cospi_24_64] \n\t" 650ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "msub $ac3, %[load4], %[cospi_8_64] \n\t" 651ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[temp2], $ac3, 31 \n\t" 652ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 653ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac1 \n\t" 654ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac1 \n\t" 655ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac1, %[load3], %[cospi_8_64] \n\t" 656ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac1, %[load4], %[cospi_24_64] \n\t" 657ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[temp3], $ac1, 31 \n\t" 658ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 659ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "add %[step1_0], %[temp0], %[temp3] \n\t" 660ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "add %[step1_1], %[temp1], %[temp2] \n\t" 661ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sub %[step1_2], %[temp1], %[temp2] \n\t" 662ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sub %[step1_3], %[temp0], %[temp3] \n\t" 663ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 664ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [load1] "=&r" (load1), [load2] "=&r" (load2), 665ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [load3] "=&r" (load3), [load4] "=&r" (load4), 666ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [result1] "=&r" (result1), [result2] "=&r" (result2), 667ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [temp0] "=&r" (temp0), [temp1] "=&r" (temp1), 668ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [temp2] "=&r" (temp2), [temp3] "=&r" (temp3), 669ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [step1_0] "=r" (step1_0), [step1_1] "=r" (step1_1), 670ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [step1_2] "=r" (step1_2), [step1_3] "=r" (step1_3) 671ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [const_2_power_13] "r" (const_2_power_13), [input] "r" (input), 672ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [cospi_16_64] "r" (cospi_16_64), 673ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [cospi_24_64] "r" (cospi_24_64), [cospi_8_64] "r" (cospi_8_64) 674ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 675ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org ); 676ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 677ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org __asm__ __volatile__ ( 678ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lh %[load1], 8(%[input]) \n\t" 679ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lh %[load2], 56(%[input]) \n\t" 680ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lh %[load3], 40(%[input]) \n\t" 681ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lh %[load4], 24(%[input]) \n\t" 682ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 683ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac1 \n\t" 684ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac1 \n\t" 685ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac3 \n\t" 686ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac3 \n\t" 687ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 688ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac1, %[load1], %[cospi_28_64] \n\t" 689ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "msub $ac1, %[load2], %[cospi_4_64] \n\t" 690ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[temp0], $ac1, 31 \n\t" 691ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 692ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac3, %[load1], %[cospi_4_64] \n\t" 693ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac3, %[load2], %[cospi_28_64] \n\t" 694ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[temp3], $ac3, 31 \n\t" 695ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 696ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac1 \n\t" 697ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac1 \n\t" 698ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac2 \n\t" 699ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac2 \n\t" 700ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 701ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac2, %[load3], %[cospi_12_64] \n\t" 702ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "msub $ac2, %[load4], %[cospi_20_64] \n\t" 703ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[temp1], $ac2, 31 \n\t" 704ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 705ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac1, %[load3], %[cospi_20_64] \n\t" 706ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac1, %[load4], %[cospi_12_64] \n\t" 707ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[temp2], $ac1, 31 \n\t" 708ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 709ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac1 \n\t" 710ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac1 \n\t" 711ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac3 \n\t" 712ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac3 \n\t" 713ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 714ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sub %[load1], %[temp3], %[temp2] \n\t" 715ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sub %[load1], %[load1], %[temp0] \n\t" 716ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "add %[load1], %[load1], %[temp1] \n\t" 717ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 718ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sub %[load2], %[temp0], %[temp1] \n\t" 719ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sub %[load2], %[load2], %[temp2] \n\t" 720ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "add %[load2], %[load2], %[temp3] \n\t" 721ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 722ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac1, %[load1], %[cospi_16_64] \n\t" 723ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac3, %[load2], %[cospi_16_64] \n\t" 724ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 725ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[step1_5], $ac1, 31 \n\t" 726ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[step1_6], $ac3, 31 \n\t" 727ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "add %[step1_4], %[temp0], %[temp1] \n\t" 728ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "add %[step1_7], %[temp3], %[temp2] \n\t" 729ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 730ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [load1] "=&r" (load1), [load2] "=&r" (load2), 731ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [load3] "=&r" (load3), [load4] "=&r" (load4), 732ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [temp0] "=&r" (temp0), [temp1] "=&r" (temp1), 733ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [temp2] "=&r" (temp2), [temp3] "=&r" (temp3), 734ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [step1_4] "=r" (step1_4), [step1_5] "=r" (step1_5), 735ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [step1_6] "=r" (step1_6), [step1_7] "=r" (step1_7) 736ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [const_2_power_13] "r" (const_2_power_13), [input] "r" (input), 737ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [cospi_20_64] "r" (cospi_20_64), [cospi_12_64] "r" (cospi_12_64), 738ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [cospi_4_64] "r" (cospi_4_64), [cospi_28_64] "r" (cospi_28_64), 739ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [cospi_16_64] "r" (cospi_16_64) 740ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org ); 741ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 742ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step2_0 = step1_0 + step1_7; 743ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step2_1 = step1_1 + step1_6; 744ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step2_2 = step1_2 + step1_5; 745ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step2_3 = step1_3 + step1_4; 746ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step2_4 = step1_3 - step1_4; 747ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step2_5 = step1_2 - step1_5; 748ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step2_6 = step1_1 - step1_6; 749ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step2_7 = step1_0 - step1_7; 750ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 751ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step1_0 = step2_0 + step3_15; 752ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step1_1 = step2_1 + step3_14; 753ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step1_2 = step2_2 + step3_13; 754ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step1_3 = step2_3 + step3_12; 755ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step1_4 = step2_4 + step3_11; 756ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step1_5 = step2_5 + step3_10; 757ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step1_6 = step2_6 + step3_9; 758ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step1_7 = step2_7 + step3_8; 759ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step1_8 = step2_7 - step3_8; 760ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step1_9 = step2_6 - step3_9; 761ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step1_10 = step2_5 - step3_10; 762ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step1_11 = step2_4 - step3_11; 763ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step1_12 = step2_3 - step3_12; 764ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step1_13 = step2_2 - step3_13; 765ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step1_14 = step2_1 - step3_14; 766ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step1_15 = step2_0 - step3_15; 767ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 768ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org __asm__ __volatile__ ( 769ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sub %[temp0], %[step2_27], %[step2_20] \n\t" 770ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac0 \n\t" 771ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac0 \n\t" 772ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac0, %[temp0], %[cospi_16_64] \n\t" 773ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[step1_20], $ac0, 31 \n\t" 774ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 775ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [temp0] "=&r" (temp0), [step1_20] "=r" (step1_20) 776ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [const_2_power_13] "r" (const_2_power_13), 777ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [step2_20] "r" (step2_20), [step2_27] "r" (step2_27), 778ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [cospi_16_64] "r" (cospi_16_64) 779ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org ); 780ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 781ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org temp21 = (step2_20 + step2_27) * cospi_16_64; 782ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step1_27 = (temp21 + DCT_CONST_ROUNDING) >> DCT_CONST_BITS; 783ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 784ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org __asm__ __volatile__ ( 785ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sub %[temp0], %[step2_26], %[step2_21] \n\t" 786ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac0 \n\t" 787ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac0 \n\t" 788ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac0, %[temp0], %[cospi_16_64] \n\t" 789ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[step1_21], $ac0, 31 \n\t" 790ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 791ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [temp0] "=&r" (temp0), [step1_21] "=r" (step1_21) 792ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [const_2_power_13] "r" (const_2_power_13), 793ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [step2_26] "r" (step2_26), [step2_21] "r" (step2_21), 794ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [cospi_16_64] "r" (cospi_16_64) 795ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org ); 796ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 797ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org temp21 = (step2_21 + step2_26) * cospi_16_64; 798ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step1_26 = (temp21 + DCT_CONST_ROUNDING) >> DCT_CONST_BITS; 799ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 800ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org __asm__ __volatile__ ( 801ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sub %[temp0], %[step2_25], %[step2_22] \n\t" 802ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac0 \n\t" 803ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac0 \n\t" 804ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac0, %[temp0], %[cospi_16_64] \n\t" 805ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[step1_22], $ac0, 31 \n\t" 806ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 807ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [temp0] "=&r" (temp0), [step1_22] "=r" (step1_22) 808ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [const_2_power_13] "r" (const_2_power_13), 809ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [step2_25] "r" (step2_25), [step2_22] "r" (step2_22), 810ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [cospi_16_64] "r" (cospi_16_64) 811ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org ); 812ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 813ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org temp21 = (step2_22 + step2_25) * cospi_16_64; 814ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step1_25 = (temp21 + DCT_CONST_ROUNDING) >> DCT_CONST_BITS; 815ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 816ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org __asm__ __volatile__ ( 817ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sub %[temp0], %[step2_24], %[step2_23] \n\t" 818ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mtlo %[const_2_power_13], $ac0 \n\t" 819ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "mthi $zero, $ac0 \n\t" 820ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "madd $ac0, %[temp0], %[cospi_16_64] \n\t" 821ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "extp %[step1_23], $ac0, 31 \n\t" 822ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 823ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [temp0] "=&r" (temp0), [step1_23] "=r" (step1_23) 824ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [const_2_power_13] "r" (const_2_power_13), 825ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [step2_24] "r" (step2_24), [step2_23] "r" (step2_23), 826ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [cospi_16_64] "r" (cospi_16_64) 827ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org ); 828ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 829ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org temp21 = (step2_23 + step2_24) * cospi_16_64; 830ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org step1_24 = (temp21 + DCT_CONST_ROUNDING) >> DCT_CONST_BITS; 831ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 832ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org // final stage 833ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org output[0 * 32] = step1_0 + step2_31; 834ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org output[1 * 32] = step1_1 + step2_30; 835ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org output[2 * 32] = step1_2 + step2_29; 836ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org output[3 * 32] = step1_3 + step2_28; 837ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org output[4 * 32] = step1_4 + step1_27; 838ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org output[5 * 32] = step1_5 + step1_26; 839ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org output[6 * 32] = step1_6 + step1_25; 840ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org output[7 * 32] = step1_7 + step1_24; 841ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org output[8 * 32] = step1_8 + step1_23; 842ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org output[9 * 32] = step1_9 + step1_22; 843ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org output[10 * 32] = step1_10 + step1_21; 844ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org output[11 * 32] = step1_11 + step1_20; 845ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org output[12 * 32] = step1_12 + step2_19; 846ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org output[13 * 32] = step1_13 + step2_18; 847ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org output[14 * 32] = step1_14 + step2_17; 848ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org output[15 * 32] = step1_15 + step2_16; 849ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org output[16 * 32] = step1_15 - step2_16; 850ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org output[17 * 32] = step1_14 - step2_17; 851ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org output[18 * 32] = step1_13 - step2_18; 852ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org output[19 * 32] = step1_12 - step2_19; 853ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org output[20 * 32] = step1_11 - step1_20; 854ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org output[21 * 32] = step1_10 - step1_21; 855ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org output[22 * 32] = step1_9 - step1_22; 856ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org output[23 * 32] = step1_8 - step1_23; 857ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org output[24 * 32] = step1_7 - step1_24; 858ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org output[25 * 32] = step1_6 - step1_25; 859ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org output[26 * 32] = step1_5 - step1_26; 860ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org output[27 * 32] = step1_4 - step1_27; 861ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org output[28 * 32] = step1_3 - step2_28; 862ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org output[29 * 32] = step1_2 - step2_29; 863ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org output[30 * 32] = step1_1 - step2_30; 864ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org output[31 * 32] = step1_0 - step2_31; 865ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 866ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org input += 32; 867ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org output += 1; 868ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org } 869ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org} 870ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 871ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.orgvoid vp9_idct32x32_1024_add_dspr2(const int16_t *input, uint8_t *dest, 872ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org int dest_stride) { 873ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org DECLARE_ALIGNED(32, int16_t, out[32 * 32]); 874ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org int16_t *outptr = out; 875ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org uint32_t pos = 45; 876ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 877ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org /* bit positon for extract from acc */ 878ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org __asm__ __volatile__ ( 879ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "wrdsp %[pos], 1 \n\t" 880ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : 881ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [pos] "r" (pos) 882ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org ); 883ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 884ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org // Rows 88576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org idct32_rows_dspr2(input, outptr, 32); 886ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 887ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org // Columns 88876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org vp9_idct32_cols_add_blk_dspr2(out, dest, dest_stride); 889ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org} 890ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 891d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.orgvoid vp9_idct32x32_34_add_dspr2(const int16_t *input, uint8_t *dest, 892d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org int stride) { 893d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org DECLARE_ALIGNED(32, int16_t, out[32 * 32]); 894d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org int16_t *outptr = out; 895d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org uint32_t i; 896d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org uint32_t pos = 45; 897d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 898d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org /* bit positon for extract from acc */ 899d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org __asm__ __volatile__ ( 900d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "wrdsp %[pos], 1 \n\t" 901d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : 902d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : [pos] "r" (pos) 903d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org ); 904d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 905d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org // Rows 90676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org idct32_rows_dspr2(input, outptr, 8); 907d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 908d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org outptr += 8; 909d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org __asm__ __volatile__ ( 910d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sw $zero, 0(%[outptr]) \n\t" 911d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sw $zero, 4(%[outptr]) \n\t" 912d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sw $zero, 8(%[outptr]) \n\t" 913d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sw $zero, 12(%[outptr]) \n\t" 914d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sw $zero, 16(%[outptr]) \n\t" 915d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sw $zero, 20(%[outptr]) \n\t" 916d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sw $zero, 24(%[outptr]) \n\t" 917d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sw $zero, 28(%[outptr]) \n\t" 918d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sw $zero, 32(%[outptr]) \n\t" 919d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sw $zero, 36(%[outptr]) \n\t" 920d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sw $zero, 40(%[outptr]) \n\t" 921d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sw $zero, 44(%[outptr]) \n\t" 922d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 923d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : 924d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : [outptr] "r" (outptr) 925d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org ); 926d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 927d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org for (i = 0; i < 31; ++i) { 928d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org outptr += 32; 929d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 930d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org __asm__ __volatile__ ( 931d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sw $zero, 0(%[outptr]) \n\t" 932d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sw $zero, 4(%[outptr]) \n\t" 933d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sw $zero, 8(%[outptr]) \n\t" 934d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sw $zero, 12(%[outptr]) \n\t" 935d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sw $zero, 16(%[outptr]) \n\t" 936d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sw $zero, 20(%[outptr]) \n\t" 937d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sw $zero, 24(%[outptr]) \n\t" 938d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sw $zero, 28(%[outptr]) \n\t" 939d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sw $zero, 32(%[outptr]) \n\t" 940d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sw $zero, 36(%[outptr]) \n\t" 941d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sw $zero, 40(%[outptr]) \n\t" 942d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org "sw $zero, 44(%[outptr]) \n\t" 943d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 944d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : 945d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org : [outptr] "r" (outptr) 946d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org ); 947d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org } 948d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 949d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org // Columns 95076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org vp9_idct32_cols_add_blk_dspr2(out, dest, stride); 951d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org} 952d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org 953ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.orgvoid vp9_idct32x32_1_add_dspr2(const int16_t *input, uint8_t *dest, 954ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org int stride) { 955ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org int r, out; 956ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org int32_t a1, absa1; 957ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org int32_t vector_a1; 958ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org int32_t t1, t2, t3, t4; 959ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org int32_t vector_1, vector_2, vector_3, vector_4; 960ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org uint32_t pos = 45; 961ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 962ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org /* bit positon for extract from acc */ 963ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org __asm__ __volatile__ ( 964ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "wrdsp %[pos], 1 \n\t" 965ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 966ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : 967ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [pos] "r" (pos) 968ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org ); 969ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 970ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org out = DCT_CONST_ROUND_SHIFT_TWICE_COSPI_16_64(input[0]); 971ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org __asm__ __volatile__ ( 972ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "addi %[out], %[out], 32 \n\t" 973ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sra %[a1], %[out], 6 \n\t" 974ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 975ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [out] "+r" (out), [a1] "=r" (a1) 976ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : 977ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org ); 978ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 979ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org if (a1 < 0) { 980ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org /* use quad-byte 981ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org * input and output memory are four byte aligned */ 982ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org __asm__ __volatile__ ( 983ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "abs %[absa1], %[a1] \n\t" 984ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "replv.qb %[vector_a1], %[absa1] \n\t" 985ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 986ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [absa1] "=r" (absa1), [vector_a1] "=r" (vector_a1) 987ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [a1] "r" (a1) 988ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org ); 989ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 990ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org for (r = 32; r--;) { 991ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org __asm__ __volatile__ ( 992ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lw %[t1], 0(%[dest]) \n\t" 993ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lw %[t2], 4(%[dest]) \n\t" 994ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lw %[t3], 8(%[dest]) \n\t" 995ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lw %[t4], 12(%[dest]) \n\t" 996ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "subu_s.qb %[vector_1], %[t1], %[vector_a1] \n\t" 997ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "subu_s.qb %[vector_2], %[t2], %[vector_a1] \n\t" 998ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "subu_s.qb %[vector_3], %[t3], %[vector_a1] \n\t" 999ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "subu_s.qb %[vector_4], %[t4], %[vector_a1] \n\t" 1000ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sw %[vector_1], 0(%[dest]) \n\t" 1001ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sw %[vector_2], 4(%[dest]) \n\t" 1002ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sw %[vector_3], 8(%[dest]) \n\t" 1003ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sw %[vector_4], 12(%[dest]) \n\t" 1004ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 1005ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lw %[t1], 16(%[dest]) \n\t" 1006ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lw %[t2], 20(%[dest]) \n\t" 1007ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lw %[t3], 24(%[dest]) \n\t" 1008ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lw %[t4], 28(%[dest]) \n\t" 1009ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "subu_s.qb %[vector_1], %[t1], %[vector_a1] \n\t" 1010ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "subu_s.qb %[vector_2], %[t2], %[vector_a1] \n\t" 1011ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "subu_s.qb %[vector_3], %[t3], %[vector_a1] \n\t" 1012ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "subu_s.qb %[vector_4], %[t4], %[vector_a1] \n\t" 1013ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sw %[vector_1], 16(%[dest]) \n\t" 1014ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sw %[vector_2], 20(%[dest]) \n\t" 1015ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sw %[vector_3], 24(%[dest]) \n\t" 1016ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sw %[vector_4], 28(%[dest]) \n\t" 1017ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 1018ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "add %[dest], %[dest], %[stride] \n\t" 1019ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 1020ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [t1] "=&r" (t1), [t2] "=&r" (t2), [t3] "=&r" (t3), [t4] "=&r" (t4), 1021ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [vector_1] "=&r" (vector_1), [vector_2] "=&r" (vector_2), 1022ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [vector_3] "=&r" (vector_3), [vector_4] "=&r" (vector_4), 1023ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [dest] "+&r" (dest) 1024ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [stride] "r" (stride), [vector_a1] "r" (vector_a1) 1025ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org ); 1026ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org } 1027ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org } else { 1028ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org /* use quad-byte 1029ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org * input and output memory are four byte aligned */ 1030ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org __asm__ __volatile__ ( 1031ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "replv.qb %[vector_a1], %[a1] \n\t" 1032ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 1033ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [vector_a1] "=r" (vector_a1) 1034ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [a1] "r" (a1) 1035ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org ); 1036ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 1037ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org for (r = 32; r--;) { 1038ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org __asm__ __volatile__ ( 1039ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lw %[t1], 0(%[dest]) \n\t" 1040ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lw %[t2], 4(%[dest]) \n\t" 1041ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lw %[t3], 8(%[dest]) \n\t" 1042ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lw %[t4], 12(%[dest]) \n\t" 1043ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "addu_s.qb %[vector_1], %[t1], %[vector_a1] \n\t" 1044ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "addu_s.qb %[vector_2], %[t2], %[vector_a1] \n\t" 1045ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "addu_s.qb %[vector_3], %[t3], %[vector_a1] \n\t" 1046ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "addu_s.qb %[vector_4], %[t4], %[vector_a1] \n\t" 1047ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sw %[vector_1], 0(%[dest]) \n\t" 1048ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sw %[vector_2], 4(%[dest]) \n\t" 1049ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sw %[vector_3], 8(%[dest]) \n\t" 1050ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sw %[vector_4], 12(%[dest]) \n\t" 1051ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 1052ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lw %[t1], 16(%[dest]) \n\t" 1053ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lw %[t2], 20(%[dest]) \n\t" 1054ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lw %[t3], 24(%[dest]) \n\t" 1055ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "lw %[t4], 28(%[dest]) \n\t" 1056ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "addu_s.qb %[vector_1], %[t1], %[vector_a1] \n\t" 1057ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "addu_s.qb %[vector_2], %[t2], %[vector_a1] \n\t" 1058ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "addu_s.qb %[vector_3], %[t3], %[vector_a1] \n\t" 1059ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "addu_s.qb %[vector_4], %[t4], %[vector_a1] \n\t" 1060ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sw %[vector_1], 16(%[dest]) \n\t" 1061ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sw %[vector_2], 20(%[dest]) \n\t" 1062ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sw %[vector_3], 24(%[dest]) \n\t" 1063ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "sw %[vector_4], 28(%[dest]) \n\t" 1064ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 1065ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org "add %[dest], %[dest], %[stride] \n\t" 1066ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 1067ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [t1] "=&r" (t1), [t2] "=&r" (t2), [t3] "=&r" (t3), [t4] "=&r" (t4), 1068ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [vector_1] "=&r" (vector_1), [vector_2] "=&r" (vector_2), 1069ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [vector_3] "=&r" (vector_3), [vector_4] "=&r" (vector_4), 1070ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org [dest] "+&r" (dest) 1071ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org : [stride] "r" (stride), [vector_a1] "r" (vector_a1) 1072ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org ); 1073ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org } 1074ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org } 1075ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org} 1076ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org#endif // #if HAVE_DSPR2 1077