summaryrefslogtreecommitdiff
path: root/libavcodec/mips
diff options
context:
space:
mode:
authorJames Cowgill <james410@cowgill.org.uk>2015-02-26 13:42:53 +0000
committerMichael Niedermayer <michaelni@gmx.at>2015-03-03 21:58:36 +0100
commit37ffe7f90a5708f3b51f277dac377a5454b5c0d5 (patch)
tree62d58fe976e2d0fdb4b3235694dc1a935c2fcc59 /libavcodec/mips
parentde4f59b5367213fc5a10df6570f9f33757302fbd (diff)
mips/aaccoder: use variables instead of using register names directly
On mips64, the registers t[4-7] do not exist. Instead of using a lot of #ifdef or defines to handle differing register names, use variables and let GCC allocate the registers automatically (like in the other mips assembly files). In get_band_cost_ESC_mips, t4 and t5 were renamed to t6 and t7 to avoid a variable name conflict. Signed-off-by: James Cowgill <james410@cowgill.org.uk> Reviewed-by: Nedeljko Babic <Nedeljko.Babic@imgtec.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/mips')
-rw-r--r--libavcodec/mips/aaccoder_mips.c929
1 files changed, 477 insertions, 452 deletions
diff --git a/libavcodec/mips/aaccoder_mips.c b/libavcodec/mips/aaccoder_mips.c
index 8595913029..ea0bf3159b 100644
--- a/libavcodec/mips/aaccoder_mips.c
+++ b/libavcodec/mips/aaccoder_mips.c
@@ -221,6 +221,7 @@ static void quantize_and_encode_band_cost_SQUAD_mips(struct AACEncContext *s,
for (i = 0; i < size; i += 4) {
int curidx;
int *in_int = (int *)&in[i];
+ int t0, t1, t2, t3, t4, t5, t6, t7;
qc1 = scaled[i ] * Q34 + 0.4054f;
qc2 = scaled[i+1] * Q34 + 0.4054f;
@@ -235,31 +236,31 @@ static void quantize_and_encode_band_cost_SQUAD_mips(struct AACEncContext *s,
"slt %[qc2], $zero, %[qc2] \n\t"
"slt %[qc3], $zero, %[qc3] \n\t"
"slt %[qc4], $zero, %[qc4] \n\t"
- "lw $t0, 0(%[in_int]) \n\t"
- "lw $t1, 4(%[in_int]) \n\t"
- "lw $t2, 8(%[in_int]) \n\t"
- "lw $t3, 12(%[in_int]) \n\t"
- "srl $t0, $t0, 31 \n\t"
- "srl $t1, $t1, 31 \n\t"
- "srl $t2, $t2, 31 \n\t"
- "srl $t3, $t3, 31 \n\t"
- "subu $t4, $zero, %[qc1] \n\t"
- "subu $t5, $zero, %[qc2] \n\t"
- "subu $t6, $zero, %[qc3] \n\t"
- "subu $t7, $zero, %[qc4] \n\t"
- "movn %[qc1], $t4, $t0 \n\t"
- "movn %[qc2], $t5, $t1 \n\t"
- "movn %[qc3], $t6, $t2 \n\t"
- "movn %[qc4], $t7, $t3 \n\t"
+ "lw %[t0], 0(%[in_int]) \n\t"
+ "lw %[t1], 4(%[in_int]) \n\t"
+ "lw %[t2], 8(%[in_int]) \n\t"
+ "lw %[t3], 12(%[in_int]) \n\t"
+ "srl %[t0], %[t0], 31 \n\t"
+ "srl %[t1], %[t1], 31 \n\t"
+ "srl %[t2], %[t2], 31 \n\t"
+ "srl %[t3], %[t3], 31 \n\t"
+ "subu %[t4], $zero, %[qc1] \n\t"
+ "subu %[t5], $zero, %[qc2] \n\t"
+ "subu %[t6], $zero, %[qc3] \n\t"
+ "subu %[t7], $zero, %[qc4] \n\t"
+ "movn %[qc1], %[t4], %[t0] \n\t"
+ "movn %[qc2], %[t5], %[t1] \n\t"
+ "movn %[qc3], %[t6], %[t2] \n\t"
+ "movn %[qc4], %[t7], %[t3] \n\t"
".set pop \n\t"
: [qc1]"+r"(qc1), [qc2]"+r"(qc2),
- [qc3]"+r"(qc3), [qc4]"+r"(qc4)
+ [qc3]"+r"(qc3), [qc4]"+r"(qc4),
+ [t0]"=&r"(t0), [t1]"=&r"(t1), [t2]"=&r"(t2), [t3]"=&r"(t3),
+ [t4]"=&r"(t4), [t5]"=&r"(t5), [t6]"=&r"(t6), [t7]"=&r"(t7)
: [in_int]"r"(in_int)
- : "t0", "t1", "t2", "t3",
- "t4", "t5", "t6", "t7",
- "memory"
+ : "memory"
);
curidx = qc1;
@@ -295,6 +296,7 @@ static void quantize_and_encode_band_cost_UQUAD_mips(struct AACEncContext *s,
int *in_int = (int *)&in[i];
uint8_t v_bits;
unsigned int v_codes;
+ int t0, t1, t2, t3, t4;
qc1 = scaled[i ] * Q34 + 0.4054f;
qc2 = scaled[i+1] * Q34 + 0.4054f;
@@ -305,50 +307,51 @@ static void quantize_and_encode_band_cost_UQUAD_mips(struct AACEncContext *s,
".set push \n\t"
".set noreorder \n\t"
- "ori $t4, $zero, 2 \n\t"
+ "ori %[t4], $zero, 2 \n\t"
"ori %[sign], $zero, 0 \n\t"
- "slt $t0, $t4, %[qc1] \n\t"
- "slt $t1, $t4, %[qc2] \n\t"
- "slt $t2, $t4, %[qc3] \n\t"
- "slt $t3, $t4, %[qc4] \n\t"
- "movn %[qc1], $t4, $t0 \n\t"
- "movn %[qc2], $t4, $t1 \n\t"
- "movn %[qc3], $t4, $t2 \n\t"
- "movn %[qc4], $t4, $t3 \n\t"
- "lw $t0, 0(%[in_int]) \n\t"
- "lw $t1, 4(%[in_int]) \n\t"
- "lw $t2, 8(%[in_int]) \n\t"
- "lw $t3, 12(%[in_int]) \n\t"
- "slt $t0, $t0, $zero \n\t"
- "movn %[sign], $t0, %[qc1] \n\t"
- "slt $t1, $t1, $zero \n\t"
- "slt $t2, $t2, $zero \n\t"
- "slt $t3, $t3, $zero \n\t"
- "sll $t0, %[sign], 1 \n\t"
- "or $t0, $t0, $t1 \n\t"
- "movn %[sign], $t0, %[qc2] \n\t"
- "slt $t4, $zero, %[qc1] \n\t"
- "slt $t1, $zero, %[qc2] \n\t"
+ "slt %[t0], %[t4], %[qc1] \n\t"
+ "slt %[t1], %[t4], %[qc2] \n\t"
+ "slt %[t2], %[t4], %[qc3] \n\t"
+ "slt %[t3], %[t4], %[qc4] \n\t"
+ "movn %[qc1], %[t4], %[t0] \n\t"
+ "movn %[qc2], %[t4], %[t1] \n\t"
+ "movn %[qc3], %[t4], %[t2] \n\t"
+ "movn %[qc4], %[t4], %[t3] \n\t"
+ "lw %[t0], 0(%[in_int]) \n\t"
+ "lw %[t1], 4(%[in_int]) \n\t"
+ "lw %[t2], 8(%[in_int]) \n\t"
+ "lw %[t3], 12(%[in_int]) \n\t"
+ "slt %[t0], %[t0], $zero \n\t"
+ "movn %[sign], %[t0], %[qc1] \n\t"
+ "slt %[t1], %[t1], $zero \n\t"
+ "slt %[t2], %[t2], $zero \n\t"
+ "slt %[t3], %[t3], $zero \n\t"
+ "sll %[t0], %[sign], 1 \n\t"
+ "or %[t0], %[t0], %[t1] \n\t"
+ "movn %[sign], %[t0], %[qc2] \n\t"
+ "slt %[t4], $zero, %[qc1] \n\t"
+ "slt %[t1], $zero, %[qc2] \n\t"
"slt %[count], $zero, %[qc3] \n\t"
- "sll $t0, %[sign], 1 \n\t"
- "or $t0, $t0, $t2 \n\t"
- "movn %[sign], $t0, %[qc3] \n\t"
- "slt $t2, $zero, %[qc4] \n\t"
- "addu %[count], %[count], $t4 \n\t"
- "addu %[count], %[count], $t1 \n\t"
- "sll $t0, %[sign], 1 \n\t"
- "or $t0, $t0, $t3 \n\t"
- "movn %[sign], $t0, %[qc4] \n\t"
- "addu %[count], %[count], $t2 \n\t"
+ "sll %[t0], %[sign], 1 \n\t"
+ "or %[t0], %[t0], %[t2] \n\t"
+ "movn %[sign], %[t0], %[qc3] \n\t"
+ "slt %[t2], $zero, %[qc4] \n\t"
+ "addu %[count], %[count], %[t4] \n\t"
+ "addu %[count], %[count], %[t1] \n\t"
+ "sll %[t0], %[sign], 1 \n\t"
+ "or %[t0], %[t0], %[t3] \n\t"
+ "movn %[sign], %[t0], %[qc4] \n\t"
+ "addu %[count], %[count], %[t2] \n\t"
".set pop \n\t"
: [qc1]"+r"(qc1), [qc2]"+r"(qc2),
[qc3]"+r"(qc3), [qc4]"+r"(qc4),
- [sign]"=&r"(sign), [count]"=&r"(count)
+ [sign]"=&r"(sign), [count]"=&r"(count),
+ [t0]"=&r"(t0), [t1]"=&r"(t1), [t2]"=&r"(t2), [t3]"=&r"(t3),
+ [t4]"=&r"(t4)
: [in_int]"r"(in_int)
- : "t0", "t1", "t2", "t3", "t4",
- "memory"
+ : "memory"
);
curidx = qc1;
@@ -385,6 +388,7 @@ static void quantize_and_encode_band_cost_SPAIR_mips(struct AACEncContext *s,
int *in_int = (int *)&in[i];
uint8_t v_bits;
unsigned int v_codes;
+ int t0, t1, t2, t3, t4, t5, t6, t7;
qc1 = scaled[i ] * Q34 + 0.4054f;
qc2 = scaled[i+1] * Q34 + 0.4054f;
@@ -395,40 +399,40 @@ static void quantize_and_encode_band_cost_SPAIR_mips(struct AACEncContext *s,
".set push \n\t"
".set noreorder \n\t"
- "ori $t4, $zero, 4 \n\t"
- "slt $t0, $t4, %[qc1] \n\t"
- "slt $t1, $t4, %[qc2] \n\t"
- "slt $t2, $t4, %[qc3] \n\t"
- "slt $t3, $t4, %[qc4] \n\t"
- "movn %[qc1], $t4, $t0 \n\t"
- "movn %[qc2], $t4, $t1 \n\t"
- "movn %[qc3], $t4, $t2 \n\t"
- "movn %[qc4], $t4, $t3 \n\t"
- "lw $t0, 0(%[in_int]) \n\t"
- "lw $t1, 4(%[in_int]) \n\t"
- "lw $t2, 8(%[in_int]) \n\t"
- "lw $t3, 12(%[in_int]) \n\t"
- "srl $t0, $t0, 31 \n\t"
- "srl $t1, $t1, 31 \n\t"
- "srl $t2, $t2, 31 \n\t"
- "srl $t3, $t3, 31 \n\t"
- "subu $t4, $zero, %[qc1] \n\t"
- "subu $t5, $zero, %[qc2] \n\t"
- "subu $t6, $zero, %[qc3] \n\t"
- "subu $t7, $zero, %[qc4] \n\t"
- "movn %[qc1], $t4, $t0 \n\t"
- "movn %[qc2], $t5, $t1 \n\t"
- "movn %[qc3], $t6, $t2 \n\t"
- "movn %[qc4], $t7, $t3 \n\t"
+ "ori %[t4], $zero, 4 \n\t"
+ "slt %[t0], %[t4], %[qc1] \n\t"
+ "slt %[t1], %[t4], %[qc2] \n\t"
+ "slt %[t2], %[t4], %[qc3] \n\t"
+ "slt %[t3], %[t4], %[qc4] \n\t"
+ "movn %[qc1], %[t4], %[t0] \n\t"
+ "movn %[qc2], %[t4], %[t1] \n\t"
+ "movn %[qc3], %[t4], %[t2] \n\t"
+ "movn %[qc4], %[t4], %[t3] \n\t"
+ "lw %[t0], 0(%[in_int]) \n\t"
+ "lw %[t1], 4(%[in_int]) \n\t"
+ "lw %[t2], 8(%[in_int]) \n\t"
+ "lw %[t3], 12(%[in_int]) \n\t"
+ "srl %[t0], %[t0], 31 \n\t"
+ "srl %[t1], %[t1], 31 \n\t"
+ "srl %[t2], %[t2], 31 \n\t"
+ "srl %[t3], %[t3], 31 \n\t"
+ "subu %[t4], $zero, %[qc1] \n\t"
+ "subu %[t5], $zero, %[qc2] \n\t"
+ "subu %[t6], $zero, %[qc3] \n\t"
+ "subu %[t7], $zero, %[qc4] \n\t"
+ "movn %[qc1], %[t4], %[t0] \n\t"
+ "movn %[qc2], %[t5], %[t1] \n\t"
+ "movn %[qc3], %[t6], %[t2] \n\t"
+ "movn %[qc4], %[t7], %[t3] \n\t"
".set pop \n\t"
: [qc1]"+r"(qc1), [qc2]"+r"(qc2),
- [qc3]"+r"(qc3), [qc4]"+r"(qc4)
+ [qc3]"+r"(qc3), [qc4]"+r"(qc4),
+ [t0]"=&r"(t0), [t1]"=&r"(t1), [t2]"=&r"(t2), [t3]"=&r"(t3),
+ [t4]"=&r"(t4), [t5]"=&r"(t5), [t6]"=&r"(t6), [t7]"=&r"(t7)
: [in_int]"r"(in_int)
- : "t0", "t1", "t2", "t3",
- "t4", "t5", "t6", "t7",
- "memory"
+ : "memory"
);
curidx = 9 * qc1;
@@ -463,6 +467,7 @@ static void quantize_and_encode_band_cost_UPAIR7_mips(struct AACEncContext *s,
int *in_int = (int *)&in[i];
uint8_t v_bits;
unsigned int v_codes;
+ int t0, t1, t2, t3, t4;
qc1 = scaled[i ] * Q34 + 0.4054f;
qc2 = scaled[i+1] * Q34 + 0.4054f;
@@ -473,46 +478,48 @@ static void quantize_and_encode_band_cost_UPAIR7_mips(struct AACEncContext *s,
".set push \n\t"
".set noreorder \n\t"
- "ori $t4, $zero, 7 \n\t"
+ "ori %[t4], $zero, 7 \n\t"
"ori %[sign1], $zero, 0 \n\t"
"ori %[sign2], $zero, 0 \n\t"
- "slt $t0, $t4, %[qc1] \n\t"
- "slt $t1, $t4, %[qc2] \n\t"
- "slt $t2, $t4, %[qc3] \n\t"
- "slt $t3, $t4, %[qc4] \n\t"
- "movn %[qc1], $t4, $t0 \n\t"
- "movn %[qc2], $t4, $t1 \n\t"
- "movn %[qc3], $t4, $t2 \n\t"
- "movn %[qc4], $t4, $t3 \n\t"
- "lw $t0, 0(%[in_int]) \n\t"
- "lw $t1, 4(%[in_int]) \n\t"
- "lw $t2, 8(%[in_int]) \n\t"
- "lw $t3, 12(%[in_int]) \n\t"
- "slt $t0, $t0, $zero \n\t"
- "movn %[sign1], $t0, %[qc1] \n\t"
- "slt $t2, $t2, $zero \n\t"
- "movn %[sign2], $t2, %[qc3] \n\t"
- "slt $t1, $t1, $zero \n\t"
- "sll $t0, %[sign1], 1 \n\t"
- "or $t0, $t0, $t1 \n\t"
- "movn %[sign1], $t0, %[qc2] \n\t"
- "slt $t3, $t3, $zero \n\t"
- "sll $t0, %[sign2], 1 \n\t"
- "or $t0, $t0, $t3 \n\t"
- "movn %[sign2], $t0, %[qc4] \n\t"
+ "slt %[t0], %[t4], %[qc1] \n\t"
+ "slt %[t1], %[t4], %[qc2] \n\t"
+ "slt %[t2], %[t4], %[qc3] \n\t"
+ "slt %[t3], %[t4], %[qc4] \n\t"
+ "movn %[qc1], %[t4], %[t0] \n\t"
+ "movn %[qc2], %[t4], %[t1] \n\t"
+ "movn %[qc3], %[t4], %[t2] \n\t"
+ "movn %[qc4], %[t4], %[t3] \n\t"
+ "lw %[t0], 0(%[in_int]) \n\t"
+ "lw %[t1], 4(%[in_int]) \n\t"
+ "lw %[t2], 8(%[in_int]) \n\t"
+ "lw %[t3], 12(%[in_int]) \n\t"
+ "slt %[t0], %[t0], $zero \n\t"
+ "movn %[sign1], %[t0], %[qc1] \n\t"
+ "slt %[t2], %[t2], $zero \n\t"
+ "movn %[sign2], %[t2], %[qc3] \n\t"
+ "slt %[t1], %[t1], $zero \n\t"
+ "sll %[t0], %[sign1], 1 \n\t"
+ "or %[t0], %[t0], %[t1] \n\t"
+ "movn %[sign1], %[t0], %[qc2] \n\t"
+ "slt %[t3], %[t3], $zero \n\t"
+ "sll %[t0], %[sign2], 1 \n\t"
+ "or %[t0], %[t0], %[t3] \n\t"
+ "movn %[sign2], %[t0], %[qc4] \n\t"
"slt %[count1], $zero, %[qc1] \n\t"
- "slt $t1, $zero, %[qc2] \n\t"
+ "slt %[t1], $zero, %[qc2] \n\t"
"slt %[count2], $zero, %[qc3] \n\t"
- "slt $t2, $zero, %[qc4] \n\t"
- "addu %[count1], %[count1], $t1 \n\t"
- "addu %[count2], %[count2], $t2 \n\t"
+ "slt %[t2], $zero, %[qc4] \n\t"
+ "addu %[count1], %[count1], %[t1] \n\t"
+ "addu %[count2], %[count2], %[t2] \n\t"
".set pop \n\t"
: [qc1]"+r"(qc1), [qc2]"+r"(qc2),
[qc3]"+r"(qc3), [qc4]"+r"(qc4),
[sign1]"=&r"(sign1), [count1]"=&r"(count1),
- [sign2]"=&r"(sign2), [count2]"=&r"(count2)
+ [sign2]"=&r"(sign2), [count2]"=&r"(count2),
+ [t0]"=&r"(t0), [t1]"=&r"(t1), [t2]"=&r"(t2), [t3]"=&r"(t3),
+ [t4]"=&r"(t4)
: [in_int]"r"(in_int)
: "t0", "t1", "t2", "t3", "t4",
"memory"
@@ -554,6 +561,7 @@ static void quantize_and_encode_band_cost_UPAIR12_mips(struct AACEncContext *s,
int *in_int = (int *)&in[i];
uint8_t v_bits;
unsigned int v_codes;
+ int t0, t1, t2, t3, t4;
qc1 = scaled[i ] * Q34 + 0.4054f;
qc2 = scaled[i+1] * Q34 + 0.4054f;
@@ -564,49 +572,50 @@ static void quantize_and_encode_band_cost_UPAIR12_mips(struct AACEncContext *s,
".set push \n\t"
".set noreorder \n\t"
- "ori $t4, $zero, 12 \n\t"
+ "ori %[t4], $zero, 12 \n\t"
"ori %[sign1], $zero, 0 \n\t"
"ori %[sign2], $zero, 0 \n\t"
- "slt $t0, $t4, %[qc1] \n\t"
- "slt $t1, $t4, %[qc2] \n\t"
- "slt $t2, $t4, %[qc3] \n\t"
- "slt $t3, $t4, %[qc4] \n\t"
- "movn %[qc1], $t4, $t0 \n\t"
- "movn %[qc2], $t4, $t1 \n\t"
- "movn %[qc3], $t4, $t2 \n\t"
- "movn %[qc4], $t4, $t3 \n\t"
- "lw $t0, 0(%[in_int]) \n\t"
- "lw $t1, 4(%[in_int]) \n\t"
- "lw $t2, 8(%[in_int]) \n\t"
- "lw $t3, 12(%[in_int]) \n\t"
- "slt $t0, $t0, $zero \n\t"
- "movn %[sign1], $t0, %[qc1] \n\t"
- "slt $t2, $t2, $zero \n\t"
- "movn %[sign2], $t2, %[qc3] \n\t"
- "slt $t1, $t1, $zero \n\t"
- "sll $t0, %[sign1], 1 \n\t"
- "or $t0, $t0, $t1 \n\t"
- "movn %[sign1], $t0, %[qc2] \n\t"
- "slt $t3, $t3, $zero \n\t"
- "sll $t0, %[sign2], 1 \n\t"
- "or $t0, $t0, $t3 \n\t"
- "movn %[sign2], $t0, %[qc4] \n\t"
+ "slt %[t0], %[t4], %[qc1] \n\t"
+ "slt %[t1], %[t4], %[qc2] \n\t"
+ "slt %[t2], %[t4], %[qc3] \n\t"
+ "slt %[t3], %[t4], %[qc4] \n\t"
+ "movn %[qc1], %[t4], %[t0] \n\t"
+ "movn %[qc2], %[t4], %[t1] \n\t"
+ "movn %[qc3], %[t4], %[t2] \n\t"
+ "movn %[qc4], %[t4], %[t3] \n\t"
+ "lw %[t0], 0(%[in_int]) \n\t"
+ "lw %[t1], 4(%[in_int]) \n\t"
+ "lw %[t2], 8(%[in_int]) \n\t"
+ "lw %[t3], 12(%[in_int]) \n\t"
+ "slt %[t0], %[t0], $zero \n\t"
+ "movn %[sign1], %[t0], %[qc1] \n\t"
+ "slt %[t2], %[t2], $zero \n\t"
+ "movn %[sign2], %[t2], %[qc3] \n\t"
+ "slt %[t1], %[t1], $zero \n\t"
+ "sll %[t0], %[sign1], 1 \n\t"
+ "or %[t0], %[t0], %[t1] \n\t"
+ "movn %[sign1], %[t0], %[qc2] \n\t"
+ "slt %[t3], %[t3], $zero \n\t"
+ "sll %[t0], %[sign2], 1 \n\t"
+ "or %[t0], %[t0], %[t3] \n\t"
+ "movn %[sign2], %[t0], %[qc4] \n\t"
"slt %[count1], $zero, %[qc1] \n\t"
- "slt $t1, $zero, %[qc2] \n\t"
+ "slt %[t1], $zero, %[qc2] \n\t"
"slt %[count2], $zero, %[qc3] \n\t"
- "slt $t2, $zero, %[qc4] \n\t"
- "addu %[count1], %[count1], $t1 \n\t"
- "addu %[count2], %[count2], $t2 \n\t"
+ "slt %[t2], $zero, %[qc4] \n\t"
+ "addu %[count1], %[count1], %[t1] \n\t"
+ "addu %[count2], %[count2], %[t2] \n\t"
".set pop \n\t"
: [qc1]"+r"(qc1), [qc2]"+r"(qc2),
[qc3]"+r"(qc3), [qc4]"+r"(qc4),
[sign1]"=&r"(sign1), [count1]"=&r"(count1),
- [sign2]"=&r"(sign2), [count2]"=&r"(count2)
+ [sign2]"=&r"(sign2), [count2]"=&r"(count2),
+ [t0]"=&r"(t0), [t1]"=&r"(t1), [t2]"=&r"(t2), [t3]"=&r"(t3),
+ [t4]"=&r"(t4)
: [in_int]"r"(in_int)
- : "t0", "t1", "t2", "t3", "t4",
- "memory"
+ : "memory"
);
curidx = 13 * qc1;
@@ -648,6 +657,7 @@ static void quantize_and_encode_band_cost_ESC_mips(struct AACEncContext *s,
int *in_int = (int *)&in[i];
uint8_t v_bits;
unsigned int v_codes;
+ int t0, t1, t2, t3, t4;
qc1 = scaled[i ] * Q34 + 0.4054f;
qc2 = scaled[i+1] * Q34 + 0.4054f;
@@ -658,49 +668,50 @@ static void quantize_and_encode_band_cost_ESC_mips(struct AACEncContext *s,
".set push \n\t"
".set noreorder \n\t"
- "ori $t4, $zero, 16 \n\t"
+ "ori %[t4], $zero, 16 \n\t"
"ori %[sign1], $zero, 0 \n\t"
"ori %[sign2], $zero, 0 \n\t"
- "slt $t0, $t4, %[qc1] \n\t"
- "slt $t1, $t4, %[qc2] \n\t"
- "slt $t2, $t4, %[qc3] \n\t"
- "slt $t3, $t4, %[qc4] \n\t"
- "movn %[qc1], $t4, $t0 \n\t"
- "movn %[qc2], $t4, $t1 \n\t"
- "movn %[qc3], $t4, $t2 \n\t"
- "movn %[qc4], $t4, $t3 \n\t"
- "lw $t0, 0(%[in_int]) \n\t"
- "lw $t1, 4(%[in_int]) \n\t"
- "lw $t2, 8(%[in_int]) \n\t"
- "lw $t3, 12(%[in_int]) \n\t"
- "slt $t0, $t0, $zero \n\t"
- "movn %[sign1], $t0, %[qc1] \n\t"
- "slt $t2, $t2, $zero \n\t"
- "movn %[sign2], $t2, %[qc3] \n\t"
- "slt $t1, $t1, $zero \n\t"
- "sll $t0, %[sign1], 1 \n\t"
- "or $t0, $t0, $t1 \n\t"
- "movn %[sign1], $t0, %[qc2] \n\t"
- "slt $t3, $t3, $zero \n\t"
- "sll $t0, %[sign2], 1 \n\t"
- "or $t0, $t0, $t3 \n\t"
- "movn %[sign2], $t0, %[qc4] \n\t"
+ "slt %[t0], %[t4], %[qc1] \n\t"
+ "slt %[t1], %[t4], %[qc2] \n\t"
+ "slt %[t2], %[t4], %[qc3] \n\t"
+ "slt %[t3], %[t4], %[qc4] \n\t"
+ "movn %[qc1], %[t4], %[t0] \n\t"
+ "movn %[qc2], %[t4], %[t1] \n\t"
+ "movn %[qc3], %[t4], %[t2] \n\t"
+ "movn %[qc4], %[t4], %[t3] \n\t"
+ "lw %[t0], 0(%[in_int]) \n\t"
+ "lw %[t1], 4(%[in_int]) \n\t"
+ "lw %[t2], 8(%[in_int]) \n\t"
+ "lw %[t3], 12(%[in_int]) \n\t"
+ "slt %[t0], %[t0], $zero \n\t"
+ "movn %[sign1], %[t0], %[qc1] \n\t"
+ "slt %[t2], %[t2], $zero \n\t"
+ "movn %[sign2], %[t2], %[qc3] \n\t"
+ "slt %[t1], %[t1], $zero \n\t"
+ "sll %[t0], %[sign1], 1 \n\t"
+ "or %[t0], %[t0], %[t1] \n\t"
+ "movn %[sign1], %[t0], %[qc2] \n\t"
+ "slt %[t3], %[t3], $zero \n\t"
+ "sll %[t0], %[sign2], 1 \n\t"
+ "or %[t0], %[t0], %[t3] \n\t"
+ "movn %[sign2], %[t0], %[qc4] \n\t"
"slt %[count1], $zero, %[qc1] \n\t"
- "slt $t1, $zero, %[qc2] \n\t"
+ "slt %[t1], $zero, %[qc2] \n\t"
"slt %[count2], $zero, %[qc3] \n\t"
- "slt $t2, $zero, %[qc4] \n\t"
- "addu %[count1], %[count1], $t1 \n\t"
- "addu %[count2], %[count2], $t2 \n\t"
+ "slt %[t2], $zero, %[qc4] \n\t"
+ "addu %[count1], %[count1], %[t1] \n\t"
+ "addu %[count2], %[count2], %[t2] \n\t"
".set pop \n\t"
: [qc1]"+r"(qc1), [qc2]"+r"(qc2),
[qc3]"+r"(qc3), [qc4]"+r"(qc4),
[sign1]"=&r"(sign1), [count1]"=&r"(count1),
- [sign2]"=&r"(sign2), [count2]"=&r"(count2)
+ [sign2]"=&r"(sign2), [count2]"=&r"(count2),
+ [t0]"=&r"(t0), [t1]"=&r"(t1), [t2]"=&r"(t2), [t3]"=&r"(t3),
+ [t4]"=&r"(t4)
: [in_int]"r"(in_int)
- : "t0", "t1", "t2", "t3", "t4",
- "memory"
+ : "memory"
);
curidx = 17 * qc1;
@@ -723,6 +734,7 @@ static void quantize_and_encode_band_cost_ESC_mips(struct AACEncContext *s,
uint8_t v_bits;
unsigned int v_codes;
int c1, c2, c3, c4;
+ int t0, t1, t2, t3, t4;
qc1 = scaled[i ] * Q34 + 0.4054f;
qc2 = scaled[i+1] * Q34 + 0.4054f;
@@ -733,7 +745,7 @@ static void quantize_and_encode_band_cost_ESC_mips(struct AACEncContext *s,
".set push \n\t"
".set noreorder \n\t"
- "ori $t4, $zero, 16 \n\t"
+ "ori %[t4], $zero, 16 \n\t"
"ori %[sign1], $zero, 0 \n\t"
"ori %[sign2], $zero, 0 \n\t"
"shll_s.w %[c1], %[qc1], 18 \n\t"
@@ -744,36 +756,36 @@ static void quantize_and_encode_band_cost_ESC_mips(struct AACEncContext *s,
"srl %[c2], %[c2], 18 \n\t"
"srl %[c3], %[c3], 18 \n\t"
"srl %[c4], %[c4], 18 \n\t"
- "slt $t0, $t4, %[qc1] \n\t"
- "slt $t1, $t4, %[qc2] \n\t"
- "slt $t2, $t4, %[qc3] \n\t"
- "slt $t3, $t4, %[qc4] \n\t"
- "movn %[qc1], $t4, $t0 \n\t"
- "movn %[qc2], $t4, $t1 \n\t"
- "movn %[qc3], $t4, $t2 \n\t"
- "movn %[qc4], $t4, $t3 \n\t"
- "lw $t0, 0(%[in_int]) \n\t"
- "lw $t1, 4(%[in_int]) \n\t"
- "lw $t2, 8(%[in_int]) \n\t"
- "lw $t3, 12(%[in_int]) \n\t"
- "slt $t0, $t0, $zero \n\t"
- "movn %[sign1], $t0, %[qc1] \n\t"
- "slt $t2, $t2, $zero \n\t"
- "movn %[sign2], $t2, %[qc3] \n\t"
- "slt $t1, $t1, $zero \n\t"
- "sll $t0, %[sign1], 1 \n\t"
- "or $t0, $t0, $t1 \n\t"
- "movn %[sign1], $t0, %[qc2] \n\t"
- "slt $t3, $t3, $zero \n\t"
- "sll $t0, %[sign2], 1 \n\t"
- "or $t0, $t0, $t3 \n\t"
- "movn %[sign2], $t0, %[qc4] \n\t"
+ "slt %[t0], %[t4], %[qc1] \n\t"
+ "slt %[t1], %[t4], %[qc2] \n\t"
+ "slt %[t2], %[t4], %[qc3] \n\t"
+ "slt %[t3], %[t4], %[qc4] \n\t"
+ "movn %[qc1], %[t4], %[t0] \n\t"
+ "movn %[qc2], %[t4], %[t1] \n\t"
+ "movn %[qc3], %[t4], %[t2] \n\t"
+ "movn %[qc4], %[t4], %[t3] \n\t"
+ "lw %[t0], 0(%[in_int]) \n\t"
+ "lw %[t1], 4(%[in_int]) \n\t"
+ "lw %[t2], 8(%[in_int]) \n\t"
+ "lw %[t3], 12(%[in_int]) \n\t"
+ "slt %[t0], %[t0], $zero \n\t"
+ "movn %[sign1], %[t0], %[qc1] \n\t"
+ "slt %[t2], %[t2], $zero \n\t"
+ "movn %[sign2], %[t2], %[qc3] \n\t"
+ "slt %[t1], %[t1], $zero \n\t"
+ "sll %[t0], %[sign1], 1 \n\t"
+ "or %[t0], %[t0], %[t1] \n\t"
+ "movn %[sign1], %[t0], %[qc2] \n\t"
+ "slt %[t3], %[t3], $zero \n\t"
+ "sll %[t0], %[sign2], 1 \n\t"
+ "or %[t0], %[t0], %[t3] \n\t"
+ "movn %[sign2], %[t0], %[qc4] \n\t"
"slt %[count1], $zero, %[qc1] \n\t"
- "slt $t1, $zero, %[qc2] \n\t"
+ "slt %[t1], $zero, %[qc2] \n\t"
"slt %[count2], $zero, %[qc3] \n\t"
- "slt $t2, $zero, %[qc4] \n\t"
- "addu %[count1], %[count1], $t1 \n\t"
- "addu %[count2], %[count2], $t2 \n\t"
+ "slt %[t2], $zero, %[qc4] \n\t"
+ "addu %[count1], %[count1], %[t1] \n\t"
+ "addu %[count2], %[count2], %[t2] \n\t"
".set pop \n\t"
@@ -782,10 +794,11 @@ static void quantize_and_encode_band_cost_ESC_mips(struct AACEncContext *s,
[sign1]"=&r"(sign1), [count1]"=&r"(count1),
[sign2]"=&r"(sign2), [count2]"=&r"(count2),
[c1]"=&r"(c1), [c2]"=&r"(c2),
- [c3]"=&r"(c3), [c4]"=&r"(c4)
+ [c3]"=&r"(c3), [c4]"=&r"(c4),
+ [t0]"=&r"(t0), [t1]"=&r"(t1), [t2]"=&r"(t2), [t3]"=&r"(t3),
+ [t4]"=&r"(t4)
: [in_int]"r"(in_int)
- : "t0", "t1", "t2", "t3", "t4",
- "memory"
+ : "memory"
);
curidx = 17 * qc1;
@@ -889,6 +902,7 @@ static float get_band_numbits_SQUAD_mips(struct AACEncContext *s,
for (i = 0; i < size; i += 4) {
int curidx;
int *in_int = (int *)&in[i];
+ int t0, t1, t2, t3, t4, t5, t6, t7;
qc1 = scaled[i ] * Q34 + 0.4054f;
qc2 = scaled[i+1] * Q34 + 0.4054f;
@@ -903,31 +917,31 @@ static float get_band_numbits_SQUAD_mips(struct AACEncContext *s,
"slt %[qc2], $zero, %[qc2] \n\t"
"slt %[qc3], $zero, %[qc3] \n\t"
"slt %[qc4], $zero, %[qc4] \n\t"
- "lw $t0, 0(%[in_int]) \n\t"
- "lw $t1, 4(%[in_int]) \n\t"
- "lw $t2, 8(%[in_int]) \n\t"
- "lw $t3, 12(%[in_int]) \n\t"
- "srl $t0, $t0, 31 \n\t"
- "srl $t1, $t1, 31 \n\t"
- "srl $t2, $t2, 31 \n\t"
- "srl $t3, $t3, 31 \n\t"
- "subu $t4, $zero, %[qc1] \n\t"
- "subu $t5, $zero, %[qc2] \n\t"
- "subu $t6, $zero, %[qc3] \n\t"
- "subu $t7, $zero, %[qc4] \n\t"
- "movn %[qc1], $t4, $t0 \n\t"
- "movn %[qc2], $t5, $t1 \n\t"
- "movn %[qc3], $t6, $t2 \n\t"
- "movn %[qc4], $t7, $t3 \n\t"
+ "lw %[t0], 0(%[in_int]) \n\t"
+ "lw %[t1], 4(%[in_int]) \n\t"
+ "lw %[t2], 8(%[in_int]) \n\t"
+ "lw %[t3], 12(%[in_int]) \n\t"
+ "srl %[t0], %[t0], 31 \n\t"
+ "srl %[t1], %[t1], 31 \n\t"
+ "srl %[t2], %[t2], 31 \n\t"
+ "srl %[t3], %[t3], 31 \n\t"
+ "subu %[t4], $zero, %[qc1] \n\t"
+ "subu %[t5], $zero, %[qc2] \n\t"
+ "subu %[t6], $zero, %[qc3] \n\t"
+ "subu %[t7], $zero, %[qc4] \n\t"
+ "movn %[qc1], %[t4], %[t0] \n\t"
+ "movn %[qc2], %[t5], %[t1] \n\t"
+ "movn %[qc3], %[t6], %[t2] \n\t"
+ "movn %[qc4], %[t7], %[t3] \n\t"
".set pop \n\t"
: [qc1]"+r"(qc1), [qc2]"+r"(qc2),
- [qc3]"+r"(qc3), [qc4]"+r"(qc4)
+ [qc3]"+r"(qc3), [qc4]"+r"(qc4),
+ [t0]"=&r"(t0), [t1]"=&r"(t1), [t2]"=&r"(t2), [t3]"=&r"(t3),
+ [t4]"=&r"(t4), [t5]"=&r"(t5), [t6]"=&r"(t6), [t7]"=&r"(t7)
: [in_int]"r"(in_int)
- : "t0", "t1", "t2", "t3",
- "t4", "t5", "t6", "t7",
- "memory"
+ : "memory"
);
curidx = qc1;
@@ -959,6 +973,7 @@ static float get_band_numbits_UQUAD_mips(struct AACEncContext *s,
for (i = 0; i < size; i += 4) {
int curidx;
+ int t0, t1, t2, t3, t4;
qc1 = scaled[i ] * Q34 + 0.4054f;
qc2 = scaled[i+1] * Q34 + 0.4054f;
@@ -969,22 +984,22 @@ static float get_band_numbits_UQUAD_mips(struct AACEncContext *s,
".set push \n\t"
".set noreorder \n\t"
- "ori $t4, $zero, 2 \n\t"
- "slt $t0, $t4, %[qc1] \n\t"
- "slt $t1, $t4, %[qc2] \n\t"
- "slt $t2, $t4, %[qc3] \n\t"
- "slt $t3, $t4, %[qc4] \n\t"
- "movn %[qc1], $t4, $t0 \n\t"
- "movn %[qc2], $t4, $t1 \n\t"
- "movn %[qc3], $t4, $t2 \n\t"
- "movn %[qc4], $t4, $t3 \n\t"
+ "ori %[t4], $zero, 2 \n\t"
+ "slt %[t0], %[t4], %[qc1] \n\t"
+ "slt %[t1], %[t4], %[qc2] \n\t"
+ "slt %[t2], %[t4], %[qc3] \n\t"
+ "slt %[t3], %[t4], %[qc4] \n\t"
+ "movn %[qc1], %[t4], %[t0] \n\t"
+ "movn %[qc2], %[t4], %[t1] \n\t"
+ "movn %[qc3], %[t4], %[t2] \n\t"
+ "movn %[qc4], %[t4], %[t3] \n\t"
".set pop \n\t"
: [qc1]"+r"(qc1), [qc2]"+r"(qc2),
- [qc3]"+r"(qc3), [qc4]"+r"(qc4)
- :
- : "t0", "t1", "t2", "t3", "t4"
+ [qc3]"+r"(qc3), [qc4]"+r"(qc4),
+ [t0]"=&r"(t0), [t1]"=&r"(t1), [t2]"=&r"(t2), [t3]"=&r"(t3),
+ [t4]"=&r"(t4)
);
curidx = qc1;
@@ -1017,6 +1032,7 @@ static float get_band_numbits_SPAIR_mips(struct AACEncContext *s,
for (i = 0; i < size; i += 4) {
int curidx, curidx2;
int *in_int = (int *)&in[i];
+ int t0, t1, t2, t3, t4, t5, t6, t7;
qc1 = scaled[i ] * Q34 + 0.4054f;
qc2 = scaled[i+1] * Q34 + 0.4054f;
@@ -1027,40 +1043,40 @@ static float get_band_numbits_SPAIR_mips(struct AACEncContext *s,
".set push \n\t"
".set noreorder \n\t"
- "ori $t4, $zero, 4 \n\t"
- "slt $t0, $t4, %[qc1] \n\t"
- "slt $t1, $t4, %[qc2] \n\t"
- "slt $t2, $t4, %[qc3] \n\t"
- "slt $t3, $t4, %[qc4] \n\t"
- "movn %[qc1], $t4, $t0 \n\t"
- "movn %[qc2], $t4, $t1 \n\t"
- "movn %[qc3], $t4, $t2 \n\t"
- "movn %[qc4], $t4, $t3 \n\t"
- "lw $t0, 0(%[in_int]) \n\t"
- "lw $t1, 4(%[in_int]) \n\t"
- "lw $t2, 8(%[in_int]) \n\t"
- "lw $t3, 12(%[in_int]) \n\t"
- "srl $t0, $t0, 31 \n\t"
- "srl $t1, $t1, 31 \n\t"
- "srl $t2, $t2, 31 \n\t"
- "srl $t3, $t3, 31 \n\t"
- "subu $t4, $zero, %[qc1] \n\t"
- "subu $t5, $zero, %[qc2] \n\t"
- "subu $t6, $zero, %[qc3] \n\t"
- "subu $t7, $zero, %[qc4] \n\t"
- "movn %[qc1], $t4, $t0 \n\t"
- "movn %[qc2], $t5, $t1 \n\t"
- "movn %[qc3], $t6, $t2 \n\t"
- "movn %[qc4], $t7, $t3 \n\t"
+ "ori %[t4], $zero, 4 \n\t"
+ "slt %[t0], %[t4], %[qc1] \n\t"
+ "slt %[t1], %[t4], %[qc2] \n\t"
+ "slt %[t2], %[t4], %[qc3] \n\t"
+ "slt %[t3], %[t4], %[qc4] \n\t"
+ "movn %[qc1], %[t4], %[t0] \n\t"
+ "movn %[qc2], %[t4], %[t1] \n\t"
+ "movn %[qc3], %[t4], %[t2] \n\t"
+ "movn %[qc4], %[t4], %[t3] \n\t"
+ "lw %[t0], 0(%[in_int]) \n\t"
+ "lw %[t1], 4(%[in_int]) \n\t"
+ "lw %[t2], 8(%[in_int]) \n\t"
+ "lw %[t3], 12(%[in_int]) \n\t"
+ "srl %[t0], %[t0], 31 \n\t"
+ "srl %[t1], %[t1], 31 \n\t"
+ "srl %[t2], %[t2], 31 \n\t"
+ "srl %[t3], %[t3], 31 \n\t"
+ "subu %[t4], $zero, %[qc1] \n\t"
+ "subu %[t5], $zero, %[qc2] \n\t"
+ "subu %[t6], $zero, %[qc3] \n\t"
+ "subu %[t7], $zero, %[qc4] \n\t"
+ "movn %[qc1], %[t4], %[t0] \n\t"
+ "movn %[qc2], %[t5], %[t1] \n\t"
+ "movn %[qc3], %[t6], %[t2] \n\t"
+ "movn %[qc4], %[t7], %[t3] \n\t"
".set pop \n\t"
: [qc1]"+r"(qc1), [qc2]"+r"(qc2),
- [qc3]"+r"(qc3), [qc4]"+r"(qc4)
+ [qc3]"+r"(qc3), [qc4]"+r"(qc4),
+ [t0]"=&r"(t0), [t1]"=&r"(t1), [t2]"=&r"(t2), [t3]"=&r"(t3),
+ [t4]"=&r"(t4), [t5]"=&r"(t5), [t6]"=&r"(t6), [t7]"=&r"(t7)
: [in_int]"r"(in_int)
- : "t0", "t1", "t2", "t3",
- "t4", "t5", "t6", "t7",
- "memory"
+ : "memory"
);
curidx = 9 * qc1;
@@ -1089,6 +1105,7 @@ static float get_band_numbits_UPAIR7_mips(struct AACEncContext *s,
for (i = 0; i < size; i += 4) {
int curidx, curidx2;
+ int t0, t1, t2, t3, t4;
qc1 = scaled[i ] * Q34 + 0.4054f;
qc2 = scaled[i+1] * Q34 + 0.4054f;
@@ -1099,22 +1116,22 @@ static float get_band_numbits_UPAIR7_mips(struct AACEncContext *s,
".set push \n\t"
".set noreorder \n\t"
- "ori $t4, $zero, 7 \n\t"
- "slt $t0, $t4, %[qc1] \n\t"
- "slt $t1, $t4, %[qc2] \n\t"
- "slt $t2, $t4, %[qc3] \n\t"
- "slt $t3, $t4, %[qc4] \n\t"
- "movn %[qc1], $t4, $t0 \n\t"
- "movn %[qc2], $t4, $t1 \n\t"
- "movn %[qc3], $t4, $t2 \n\t"
- "movn %[qc4], $t4, $t3 \n\t"
+ "ori %[t4], $zero, 7 \n\t"
+ "slt %[t0], %[t4], %[qc1] \n\t"
+ "slt %[t1], %[t4], %[qc2] \n\t"
+ "slt %[t2], %[t4], %[qc3] \n\t"
+ "slt %[t3], %[t4], %[qc4] \n\t"
+ "movn %[qc1], %[t4], %[t0] \n\t"
+ "movn %[qc2], %[t4], %[t1] \n\t"
+ "movn %[qc3], %[t4], %[t2] \n\t"
+ "movn %[qc4], %[t4], %[t3] \n\t"
".set pop \n\t"
: [qc1]"+r"(qc1), [qc2]"+r"(qc2),
- [qc3]"+r"(qc3), [qc4]"+r"(qc4)
- :
- : "t0", "t1", "t2", "t3", "t4"
+ [qc3]"+r"(qc3), [qc4]"+r"(qc4),
+ [t0]"=&r"(t0), [t1]"=&r"(t1), [t2]"=&r"(t2), [t3]"=&r"(t3),
+ [t4]"=&r"(t4)
);
curidx = 8 * qc1;
@@ -1146,6 +1163,7 @@ static float get_band_numbits_UPAIR12_mips(struct AACEncContext *s,
for (i = 0; i < size; i += 4) {
int curidx, curidx2;
+ int t0, t1, t2, t3, t4;
qc1 = scaled[i ] * Q34 + 0.4054f;
qc2 = scaled[i+1] * Q34 + 0.4054f;
@@ -1156,22 +1174,22 @@ static float get_band_numbits_UPAIR12_mips(struct AACEncContext *s,
".set push \n\t"
".set noreorder \n\t"
- "ori $t4, $zero, 12 \n\t"
- "slt $t0, $t4, %[qc1] \n\t"
- "slt $t1, $t4, %[qc2] \n\t"
- "slt $t2, $t4, %[qc3] \n\t"
- "slt $t3, $t4, %[qc4] \n\t"
- "movn %[qc1], $t4, $t0 \n\t"
- "movn %[qc2], $t4, $t1 \n\t"
- "movn %[qc3], $t4, $t2 \n\t"
- "movn %[qc4], $t4, $t3 \n\t"
+ "ori %[t4], $zero, 12 \n\t"
+ "slt %[t0], %[t4], %[qc1] \n\t"
+ "slt %[t1], %[t4], %[qc2] \n\t"
+ "slt %[t2], %[t4], %[qc3] \n\t"
+ "slt %[t3], %[t4], %[qc4] \n\t"
+ "movn %[qc1], %[t4], %[t0] \n\t"
+ "movn %[qc2], %[t4], %[t1] \n\t"
+ "movn %[qc3], %[t4], %[t2] \n\t"
+ "movn %[qc4], %[t4], %[t3] \n\t"
".set pop \n\t"
: [qc1]"+r"(qc1), [qc2]"+r"(qc2),
- [qc3]"+r"(qc3), [qc4]"+r"(qc4)
- :
- : "t0", "t1", "t2", "t3", "t4"
+ [qc3]"+r"(qc3), [qc4]"+r"(qc4),
+ [t0]"=&r"(t0), [t1]"=&r"(t1), [t2]"=&r"(t2), [t3]"=&r"(t3),
+ [t4]"=&r"(t4)
);
curidx = 13 * qc1;
@@ -1205,6 +1223,7 @@ static float get_band_numbits_ESC_mips(struct AACEncContext *s,
int curidx, curidx2;
int cond0, cond1, cond2, cond3;
int c1, c2, c3, c4;
+ int t4, t5;
qc1 = scaled[i ] * Q34 + 0.4054f;
qc2 = scaled[i+1] * Q34 + 0.4054f;
@@ -1215,8 +1234,8 @@ static float get_band_numbits_ESC_mips(struct AACEncContext *s,
".set push \n\t"
".set noreorder \n\t"
- "ori $t4, $zero, 15 \n\t"
- "ori $t5, $zero, 16 \n\t"
+ "ori %[t4], $zero, 15 \n\t"
+ "ori %[t5], $zero, 16 \n\t"
"shll_s.w %[c1], %[qc1], 18 \n\t"
"shll_s.w %[c2], %[qc2], 18 \n\t"
"shll_s.w %[c3], %[qc3], 18 \n\t"
@@ -1225,23 +1244,23 @@ static float get_band_numbits_ESC_mips(struct AACEncContext *s,
"srl %[c2], %[c2], 18 \n\t"
"srl %[c3], %[c3], 18 \n\t"
"srl %[c4], %[c4], 18 \n\t"
- "slt %[cond0], $t4, %[qc1] \n\t"
- "slt %[cond1], $t4, %[qc2] \n\t"
- "slt %[cond2], $t4, %[qc3] \n\t"
- "slt %[cond3], $t4, %[qc4] \n\t"
- "movn %[qc1], $t5, %[cond0] \n\t"
- "movn %[qc2], $t5, %[cond1] \n\t"
- "movn %[qc3], $t5, %[cond2] \n\t"
- "movn %[qc4], $t5, %[cond3] \n\t"
- "ori $t5, $zero, 31 \n\t"
+ "slt %[cond0], %[t4], %[qc1] \n\t"
+ "slt %[cond1], %[t4], %[qc2] \n\t"
+ "slt %[cond2], %[t4], %[qc3] \n\t"
+ "slt %[cond3], %[t4], %[qc4] \n\t"
+ "movn %[qc1], %[t5], %[cond0] \n\t"
+ "movn %[qc2], %[t5], %[cond1] \n\t"
+ "movn %[qc3], %[t5], %[cond2] \n\t"
+ "movn %[qc4], %[t5], %[cond3] \n\t"
+ "ori %[t5], $zero, 31 \n\t"
"clz %[c1], %[c1] \n\t"
"clz %[c2], %[c2] \n\t"
"clz %[c3], %[c3] \n\t"
"clz %[c4], %[c4] \n\t"
- "subu %[c1], $t5, %[c1] \n\t"
- "subu %[c2], $t5, %[c2] \n\t"
- "subu %[c3], $t5, %[c3] \n\t"
- "subu %[c4], $t5, %[c4] \n\t"
+ "subu %[c1], %[t5], %[c1] \n\t"
+ "subu %[c2], %[t5], %[c2] \n\t"
+ "subu %[c3], %[t5], %[c3] \n\t"
+ "subu %[c4], %[t5], %[c4] \n\t"
"sll %[c1], %[c1], 1 \n\t"
"sll %[c2], %[c2], 1 \n\t"
"sll %[c3], %[c3], 1 \n\t"
@@ -1266,9 +1285,8 @@ static float get_band_numbits_ESC_mips(struct AACEncContext *s,
[cond0]"=&r"(cond0), [cond1]"=&r"(cond1),
[cond2]"=&r"(cond2), [cond3]"=&r"(cond3),
[c1]"=&r"(c1), [c2]"=&r"(c2),
- [c3]"=&r"(c3), [c4]"=&r"(c4)
- :
- : "t4", "t5"
+ [c3]"=&r"(c3), [c4]"=&r"(c4),
+ [t4]"=&r"(t4), [t5]"=&r"(t5)
);
curidx = 17 * qc1;
@@ -1370,6 +1388,7 @@ static float get_band_cost_SQUAD_mips(struct AACEncContext *s,
int *in_int = (int *)&in[i];
float *in_pos = (float *)&in[i];
float di0, di1, di2, di3;
+ int t0, t1, t2, t3, t4, t5, t6, t7;
qc1 = scaled[i ] * Q34 + 0.4054f;
qc2 = scaled[i+1] * Q34 + 0.4054f;
@@ -1384,31 +1403,31 @@ static float get_band_cost_SQUAD_mips(struct AACEncContext *s,
"slt %[qc2], $zero, %[qc2] \n\t"
"slt %[qc3], $zero, %[qc3] \n\t"
"slt %[qc4], $zero, %[qc4] \n\t"
- "lw $t0, 0(%[in_int]) \n\t"
- "lw $t1, 4(%[in_int]) \n\t"
- "lw $t2, 8(%[in_int]) \n\t"
- "lw $t3, 12(%[in_int]) \n\t"
- "srl $t0, $t0, 31 \n\t"
- "srl $t1, $t1, 31 \n\t"
- "srl $t2, $t2, 31 \n\t"
- "srl $t3, $t3, 31 \n\t"
- "subu $t4, $zero, %[qc1] \n\t"
- "subu $t5, $zero, %[qc2] \n\t"
- "subu $t6, $zero, %[qc3] \n\t"
- "subu $t7, $zero, %[qc4] \n\t"
- "movn %[qc1], $t4, $t0 \n\t"
- "movn %[qc2], $t5, $t1 \n\t"
- "movn %[qc3], $t6, $t2 \n\t"
- "movn %[qc4], $t7, $t3 \n\t"
+ "lw %[t0], 0(%[in_int]) \n\t"
+ "lw %[t1], 4(%[in_int]) \n\t"
+ "lw %[t2], 8(%[in_int]) \n\t"
+ "lw %[t3], 12(%[in_int]) \n\t"
+ "srl %[t0], %[t0], 31 \n\t"
+ "srl %[t1], %[t1], 31 \n\t"
+ "srl %[t2], %[t2], 31 \n\t"
+ "srl %[t3], %[t3], 31 \n\t"
+ "subu %[t4], $zero, %[qc1] \n\t"
+ "subu %[t5], $zero, %[qc2] \n\t"
+ "subu %[t6], $zero, %[qc3] \n\t"
+ "subu %[t7], $zero, %[qc4] \n\t"
+ "movn %[qc1], %[t4], %[t0] \n\t"
+ "movn %[qc2], %[t5], %[t1] \n\t"
+ "movn %[qc3], %[t6], %[t2] \n\t"
+ "movn %[qc4], %[t7], %[t3] \n\t"
".set pop \n\t"
: [qc1]"+r"(qc1), [qc2]"+r"(qc2),
- [qc3]"+r"(qc3), [qc4]"+r"(qc4)
+ [qc3]"+r"(qc3), [qc4]"+r"(qc4),
+ [t0]"=&r"(t0), [t1]"=&r"(t1), [t2]"=&r"(t2), [t3]"=&r"(t3),
+ [t4]"=&r"(t4), [t5]"=&r"(t5), [t6]"=&r"(t6), [t7]"=&r"(t7)
: [in_int]"r"(in_int)
- : "t0", "t1", "t2", "t3",
- "t4", "t5", "t6", "t7",
- "memory"
+ : "memory"
);
curidx = qc1;
@@ -1481,6 +1500,7 @@ static float get_band_cost_UQUAD_mips(struct AACEncContext *s,
int curidx;
float *in_pos = (float *)&in[i];
float di0, di1, di2, di3;
+ int t0, t1, t2, t3, t4;
qc1 = scaled[i ] * Q34 + 0.4054f;
qc2 = scaled[i+1] * Q34 + 0.4054f;
@@ -1491,22 +1511,22 @@ static float get_band_cost_UQUAD_mips(struct AACEncContext *s,
".set push \n\t"
".set noreorder \n\t"
- "ori $t4, $zero, 2 \n\t"
- "slt $t0, $t4, %[qc1] \n\t"
- "slt $t1, $t4, %[qc2] \n\t"
- "slt $t2, $t4, %[qc3] \n\t"
- "slt $t3, $t4, %[qc4] \n\t"
- "movn %[qc1], $t4, $t0 \n\t"
- "movn %[qc2], $t4, $t1 \n\t"
- "movn %[qc3], $t4, $t2 \n\t"
- "movn %[qc4], $t4, $t3 \n\t"
+ "ori %[t4], $zero, 2 \n\t"
+ "slt %[t0], %[t4], %[qc1] \n\t"
+ "slt %[t1], %[t4], %[qc2] \n\t"
+ "slt %[t2], %[t4], %[qc3] \n\t"
+ "slt %[t3], %[t4], %[qc4] \n\t"
+ "movn %[qc1], %[t4], %[t0] \n\t"
+ "movn %[qc2], %[t4], %[t1] \n\t"
+ "movn %[qc3], %[t4], %[t2] \n\t"
+ "movn %[qc4], %[t4], %[t3] \n\t"
".set pop \n\t"
: [qc1]"+r"(qc1), [qc2]"+r"(qc2),
- [qc3]"+r"(qc3), [qc4]"+r"(qc4)
- :
- : "t0", "t1", "t2", "t3", "t4"
+ [qc3]"+r"(qc3), [qc4]"+r"(qc4),
+ [t0]"=&r"(t0), [t1]"=&r"(t1), [t2]"=&r"(t2), [t3]"=&r"(t3),
+ [t4]"=&r"(t4)
);
curidx = qc1;
@@ -1583,6 +1603,7 @@ static float get_band_cost_SPAIR_mips(struct AACEncContext *s,
int *in_int = (int *)&in[i];
float *in_pos = (float *)&in[i];
float di0, di1, di2, di3;
+ int t0, t1, t2, t3, t4, t5, t6, t7;
qc1 = scaled[i ] * Q34 + 0.4054f;
qc2 = scaled[i+1] * Q34 + 0.4054f;
@@ -1593,40 +1614,40 @@ static float get_band_cost_SPAIR_mips(struct AACEncContext *s,
".set push \n\t"
".set noreorder \n\t"
- "ori $t4, $zero, 4 \n\t"
- "slt $t0, $t4, %[qc1] \n\t"
- "slt $t1, $t4, %[qc2] \n\t"
- "slt $t2, $t4, %[qc3] \n\t"
- "slt $t3, $t4, %[qc4] \n\t"
- "movn %[qc1], $t4, $t0 \n\t"
- "movn %[qc2], $t4, $t1 \n\t"
- "movn %[qc3], $t4, $t2 \n\t"
- "movn %[qc4], $t4, $t3 \n\t"
- "lw $t0, 0(%[in_int]) \n\t"
- "lw $t1, 4(%[in_int]) \n\t"
- "lw $t2, 8(%[in_int]) \n\t"
- "lw $t3, 12(%[in_int]) \n\t"
- "srl $t0, $t0, 31 \n\t"
- "srl $t1, $t1, 31 \n\t"
- "srl $t2, $t2, 31 \n\t"
- "srl $t3, $t3, 31 \n\t"
- "subu $t4, $zero, %[qc1] \n\t"
- "subu $t5, $zero, %[qc2] \n\t"
- "subu $t6, $zero, %[qc3] \n\t"
- "subu $t7, $zero, %[qc4] \n\t"
- "movn %[qc1], $t4, $t0 \n\t"
- "movn %[qc2], $t5, $t1 \n\t"
- "movn %[qc3], $t6, $t2 \n\t"
- "movn %[qc4], $t7, $t3 \n\t"
+ "ori %[t4], $zero, 4 \n\t"
+ "slt %[t0], %[t4], %[qc1] \n\t"
+ "slt %[t1], %[t4], %[qc2] \n\t"
+ "slt %[t2], %[t4], %[qc3] \n\t"
+ "slt %[t3], %[t4], %[qc4] \n\t"
+ "movn %[qc1], %[t4], %[t0] \n\t"
+ "movn %[qc2], %[t4], %[t1] \n\t"
+ "movn %[qc3], %[t4], %[t2] \n\t"
+ "movn %[qc4], %[t4], %[t3] \n\t"
+ "lw %[t0], 0(%[in_int]) \n\t"
+ "lw %[t1], 4(%[in_int]) \n\t"
+ "lw %[t2], 8(%[in_int]) \n\t"
+ "lw %[t3], 12(%[in_int]) \n\t"
+ "srl %[t0], %[t0], 31 \n\t"
+ "srl %[t1], %[t1], 31 \n\t"
+ "srl %[t2], %[t2], 31 \n\t"
+ "srl %[t3], %[t3], 31 \n\t"
+ "subu %[t4], $zero, %[qc1] \n\t"
+ "subu %[t5], $zero, %[qc2] \n\t"
+ "subu %[t6], $zero, %[qc3] \n\t"
+ "subu %[t7], $zero, %[qc4] \n\t"
+ "movn %[qc1], %[t4], %[t0] \n\t"
+ "movn %[qc2], %[t5], %[t1] \n\t"
+ "movn %[qc3], %[t6], %[t2] \n\t"
+ "movn %[qc4], %[t7], %[t3] \n\t"
".set pop \n\t"
: [qc1]"+r"(qc1), [qc2]"+r"(qc2),
- [qc3]"+r"(qc3), [qc4]"+r"(qc4)
+ [qc3]"+r"(qc3), [qc4]"+r"(qc4),
+ [t0]"=&r"(t0), [t1]"=&r"(t1), [t2]"=&r"(t2), [t3]"=&r"(t3),
+ [t4]"=&r"(t4), [t5]"=&r"(t5), [t6]"=&r"(t6), [t7]"=&r"(t7)
: [in_int]"r"(in_int)
- : "t0", "t1", "t2", "t3",
- "t4", "t5", "t6", "t7",
- "memory"
+ : "memory"
);
curidx = 9 * qc1;
@@ -1700,6 +1721,7 @@ static float get_band_cost_UPAIR7_mips(struct AACEncContext *s,
int *in_int = (int *)&in[i];
float *in_pos = (float *)&in[i];
float di0, di1, di2, di3;
+ int t0, t1, t2, t3, t4;
qc1 = scaled[i ] * Q34 + 0.4054f;
qc2 = scaled[i+1] * Q34 + 0.4054f;
@@ -1710,49 +1732,50 @@ static float get_band_cost_UPAIR7_mips(struct AACEncContext *s,
".set push \n\t"
".set noreorder \n\t"
- "ori $t4, $zero, 7 \n\t"
+ "ori %[t4], $zero, 7 \n\t"
"ori %[sign1], $zero, 0 \n\t"
"ori %[sign2], $zero, 0 \n\t"
- "slt $t0, $t4, %[qc1] \n\t"
- "slt $t1, $t4, %[qc2] \n\t"
- "slt $t2, $t4, %[qc3] \n\t"
- "slt $t3, $t4, %[qc4] \n\t"
- "movn %[qc1], $t4, $t0 \n\t"
- "movn %[qc2], $t4, $t1 \n\t"
- "movn %[qc3], $t4, $t2 \n\t"
- "movn %[qc4], $t4, $t3 \n\t"
- "lw $t0, 0(%[in_int]) \n\t"
- "lw $t1, 4(%[in_int]) \n\t"
- "lw $t2, 8(%[in_int]) \n\t"
- "lw $t3, 12(%[in_int]) \n\t"
- "slt $t0, $t0, $zero \n\t"
- "movn %[sign1], $t0, %[qc1] \n\t"
- "slt $t2, $t2, $zero \n\t"
- "movn %[sign2], $t2, %[qc3] \n\t"
- "slt $t1, $t1, $zero \n\t"
- "sll $t0, %[sign1], 1 \n\t"
- "or $t0, $t0, $t1 \n\t"
- "movn %[sign1], $t0, %[qc2] \n\t"
- "slt $t3, $t3, $zero \n\t"
- "sll $t0, %[sign2], 1 \n\t"
- "or $t0, $t0, $t3 \n\t"
- "movn %[sign2], $t0, %[qc4] \n\t"
+ "slt %[t0], %[t4], %[qc1] \n\t"
+ "slt %[t1], %[t4], %[qc2] \n\t"
+ "slt %[t2], %[t4], %[qc3] \n\t"
+ "slt %[t3], %[t4], %[qc4] \n\t"
+ "movn %[qc1], %[t4], %[t0] \n\t"
+ "movn %[qc2], %[t4], %[t1] \n\t"
+ "movn %[qc3], %[t4], %[t2] \n\t"
+ "movn %[qc4], %[t4], %[t3] \n\t"
+ "lw %[t0], 0(%[in_int]) \n\t"
+ "lw %[t1], 4(%[in_int]) \n\t"
+ "lw %[t2], 8(%[in_int]) \n\t"
+ "lw %[t3], 12(%[in_int]) \n\t"
+ "slt %[t0], %[t0], $zero \n\t"
+ "movn %[sign1], %[t0], %[qc1] \n\t"
+ "slt %[t2], %[t2], $zero \n\t"
+ "movn %[sign2], %[t2], %[qc3] \n\t"
+ "slt %[t1], %[t1], $zero \n\t"
+ "sll %[t0], %[sign1], 1 \n\t"
+ "or %[t0], %[t0], %[t1] \n\t"
+ "movn %[sign1], %[t0], %[qc2] \n\t"
+ "slt %[t3], %[t3], $zero \n\t"
+ "sll %[t0], %[sign2], 1 \n\t"
+ "or %[t0], %[t0], %[t3] \n\t"
+ "movn %[sign2], %[t0], %[qc4] \n\t"
"slt %[count1], $zero, %[qc1] \n\t"
- "slt $t1, $zero, %[qc2] \n\t"
+ "slt %[t1], $zero, %[qc2] \n\t"
"slt %[count2], $zero, %[qc3] \n\t"
- "slt $t2, $zero, %[qc4] \n\t"
- "addu %[count1], %[count1], $t1 \n\t"
- "addu %[count2], %[count2], $t2 \n\t"
+ "slt %[t2], $zero, %[qc4] \n\t"
+ "addu %[count1], %[count1], %[t1] \n\t"
+ "addu %[count2], %[count2], %[t2] \n\t"
".set pop \n\t"
: [qc1]"+r"(qc1), [qc2]"+r"(qc2),
[qc3]"+r"(qc3), [qc4]"+r"(qc4),
[sign1]"=&r"(sign1), [count1]"=&r"(count1),
- [sign2]"=&r"(sign2), [count2]"=&r"(count2)
+ [sign2]"=&r"(sign2), [count2]"=&r"(count2),
+ [t0]"=&r"(t0), [t1]"=&r"(t1), [t2]"=&r"(t2), [t3]"=&r"(t3),
+ [t4]"=&r"(t4)
: [in_int]"r"(in_int)
- : "t0", "t1", "t2", "t3", "t4",
- "memory"
+ : "memory"
);
curidx = 8 * qc1;
@@ -1832,6 +1855,7 @@ static float get_band_cost_UPAIR12_mips(struct AACEncContext *s,
int *in_int = (int *)&in[i];
float *in_pos = (float *)&in[i];
float di0, di1, di2, di3;
+ int t0, t1, t2, t3, t4;
qc1 = scaled[i ] * Q34 + 0.4054f;
qc2 = scaled[i+1] * Q34 + 0.4054f;
@@ -1842,49 +1866,50 @@ static float get_band_cost_UPAIR12_mips(struct AACEncContext *s,
".set push \n\t"
".set noreorder \n\t"
- "ori $t4, $zero, 12 \n\t"
+ "ori %[t4], $zero, 12 \n\t"
"ori %[sign1], $zero, 0 \n\t"
"ori %[sign2], $zero, 0 \n\t"
- "slt $t0, $t4, %[qc1] \n\t"
- "slt $t1, $t4, %[qc2] \n\t"
- "slt $t2, $t4, %[qc3] \n\t"
- "slt $t3, $t4, %[qc4] \n\t"
- "movn %[qc1], $t4, $t0 \n\t"
- "movn %[qc2], $t4, $t1 \n\t"
- "movn %[qc3], $t4, $t2 \n\t"
- "movn %[qc4], $t4, $t3 \n\t"
- "lw $t0, 0(%[in_int]) \n\t"
- "lw $t1, 4(%[in_int]) \n\t"
- "lw $t2, 8(%[in_int]) \n\t"
- "lw $t3, 12(%[in_int]) \n\t"
- "slt $t0, $t0, $zero \n\t"
- "movn %[sign1], $t0, %[qc1] \n\t"
- "slt $t2, $t2, $zero \n\t"
- "movn %[sign2], $t2, %[qc3] \n\t"
- "slt $t1, $t1, $zero \n\t"
- "sll $t0, %[sign1], 1 \n\t"
- "or $t0, $t0, $t1 \n\t"
- "movn %[sign1], $t0, %[qc2] \n\t"
- "slt $t3, $t3, $zero \n\t"
- "sll $t0, %[sign2], 1 \n\t"
- "or $t0, $t0, $t3 \n\t"
- "movn %[sign2], $t0, %[qc4] \n\t"
+ "slt %[t0], %[t4], %[qc1] \n\t"
+ "slt %[t1], %[t4], %[qc2] \n\t"
+ "slt %[t2], %[t4], %[qc3] \n\t"
+ "slt %[t3], %[t4], %[qc4] \n\t"
+ "movn %[qc1], %[t4], %[t0] \n\t"
+ "movn %[qc2], %[t4], %[t1] \n\t"
+ "movn %[qc3], %[t4], %[t2] \n\t"
+ "movn %[qc4], %[t4], %[t3] \n\t"
+ "lw %[t0], 0(%[in_int]) \n\t"
+ "lw %[t1], 4(%[in_int]) \n\t"
+ "lw %[t2], 8(%[in_int]) \n\t"
+ "lw %[t3], 12(%[in_int]) \n\t"
+ "slt %[t0], %[t0], $zero \n\t"
+ "movn %[sign1], %[t0], %[qc1] \n\t"
+ "slt %[t2], %[t2], $zero \n\t"
+ "movn %[sign2], %[t2], %[qc3] \n\t"
+ "slt %[t1], %[t1], $zero \n\t"
+ "sll %[t0], %[sign1], 1 \n\t"
+ "or %[t0], %[t0], %[t1] \n\t"
+ "movn %[sign1], %[t0], %[qc2] \n\t"
+ "slt %[t3], %[t3], $zero \n\t"
+ "sll %[t0], %[sign2], 1 \n\t"
+ "or %[t0], %[t0], %[t3] \n\t"
+ "movn %[sign2], %[t0], %[qc4] \n\t"
"slt %[count1], $zero, %[qc1] \n\t"
- "slt $t1, $zero, %[qc2] \n\t"
+ "slt %[t1], $zero, %[qc2] \n\t"
"slt %[count2], $zero, %[qc3] \n\t"
- "slt $t2, $zero, %[qc4] \n\t"
- "addu %[count1], %[count1], $t1 \n\t"
- "addu %[count2], %[count2], $t2 \n\t"
+ "slt %[t2], $zero, %[qc4] \n\t"
+ "addu %[count1], %[count1], %[t1] \n\t"
+ "addu %[count2], %[count2], %[t2] \n\t"
".set pop \n\t"
: [qc1]"+r"(qc1), [qc2]"+r"(qc2),
[qc3]"+r"(qc3), [qc4]"+r"(qc4),
[sign1]"=&r"(sign1), [count1]"=&r"(count1),
- [sign2]"=&r"(sign2), [count2]"=&r"(count2)
+ [sign2]"=&r"(sign2), [count2]"=&r"(count2),
+ [t0]"=&r"(t0), [t1]"=&r"(t1), [t2]"=&r"(t2), [t3]"=&r"(t3),
+ [t4]"=&r"(t4)
: [in_int]"r"(in_int)
- : "t0", "t1", "t2", "t3", "t4",
- "memory"
+ : "memory"
);
curidx = 13 * qc1;
@@ -1964,6 +1989,7 @@ static float get_band_cost_ESC_mips(struct AACEncContext *s,
float di1, di2, di3, di4;
int cond0, cond1, cond2, cond3;
int c1, c2, c3, c4;
+ int t6, t7;
qc1 = scaled[i ] * Q34 + 0.4054f;
qc2 = scaled[i+1] * Q34 + 0.4054f;
@@ -1974,8 +2000,8 @@ static float get_band_cost_ESC_mips(struct AACEncContext *s,
".set push \n\t"
".set noreorder \n\t"
- "ori $t4, $zero, 15 \n\t"
- "ori $t5, $zero, 16 \n\t"
+ "ori %[t6], $zero, 15 \n\t"
+ "ori %[t7], $zero, 16 \n\t"
"shll_s.w %[c1], %[qc1], 18 \n\t"
"shll_s.w %[c2], %[qc2], 18 \n\t"
"shll_s.w %[c3], %[qc3], 18 \n\t"
@@ -1984,14 +2010,14 @@ static float get_band_cost_ESC_mips(struct AACEncContext *s,
"srl %[c2], %[c2], 18 \n\t"
"srl %[c3], %[c3], 18 \n\t"
"srl %[c4], %[c4], 18 \n\t"
- "slt %[cond0], $t4, %[qc1] \n\t"
- "slt %[cond1], $t4, %[qc2] \n\t"
- "slt %[cond2], $t4, %[qc3] \n\t"
- "slt %[cond3], $t4, %[qc4] \n\t"
- "movn %[qc1], $t5, %[cond0] \n\t"
- "movn %[qc2], $t5, %[cond1] \n\t"
- "movn %[qc3], $t5, %[cond2] \n\t"
- "movn %[qc4], $t5, %[cond3] \n\t"
+ "slt %[cond0], %[t6], %[qc1] \n\t"
+ "slt %[cond1], %[t6], %[qc2] \n\t"
+ "slt %[cond2], %[t6], %[qc3] \n\t"
+ "slt %[cond3], %[t6], %[qc4] \n\t"
+ "movn %[qc1], %[t7], %[cond0] \n\t"
+ "movn %[qc2], %[t7], %[cond1] \n\t"
+ "movn %[qc3], %[t7], %[cond2] \n\t"
+ "movn %[qc4], %[t7], %[cond3] \n\t"
".set pop \n\t"
@@ -2000,9 +2026,8 @@ static float get_band_cost_ESC_mips(struct AACEncContext *s,
[cond0]"=&r"(cond0), [cond1]"=&r"(cond1),
[cond2]"=&r"(cond2), [cond3]"=&r"(cond3),
[c1]"=&r"(c1), [c2]"=&r"(c2),
- [c3]"=&r"(c3), [c4]"=&r"(c4)
- :
- : "t4", "t5"
+ [c3]"=&r"(c3), [c4]"=&r"(c4),
+ [t6]"=&r"(t6), [t7]"=&r"(t7)
);
curidx = 17 * qc1;