Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(588)

Unified Diff: src/mips64/macro-assembler-mips64.cc

Issue 2287333002: MIPS: Fix Neg_s and Neg_d for loongson and r1 (Closed)
Patch Set: Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/mips/macro-assembler-mips.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/mips64/macro-assembler-mips64.cc
diff --git a/src/mips64/macro-assembler-mips64.cc b/src/mips64/macro-assembler-mips64.cc
index 6cf45cce6eda38d1ac7ab49cab3b272df4997471..b0ae09d18481b8b3a4e71f12fd1d66e4f1e3a680 100644
--- a/src/mips64/macro-assembler-mips64.cc
+++ b/src/mips64/macro-assembler-mips64.cc
@@ -1960,7 +1960,11 @@ void MacroAssembler::Ins(Register rt,
}
void MacroAssembler::Neg_s(FPURegister fd, FPURegister fs) {
- if (kArchVariant == kMips64r2) {
+ if (kArchVariant == kMips64r6) {
+ // r6 neg_s changes the sign for NaN-like operands as well.
+ neg_s(fd, fs);
+ } else {
+ DCHECK(kArchVariant == kMips64r2);
Label is_nan, done;
Register scratch1 = t8;
Register scratch2 = t9;
@@ -1977,14 +1981,15 @@ void MacroAssembler::Neg_s(FPURegister fd, FPURegister fs) {
Or(scratch2, scratch2, scratch1);
mtc1(scratch2, fd);
bind(&done);
- } else {
- // r6 neg_s changes the sign for NaN-like operands as well.
- neg_s(fd, fs);
}
}
void MacroAssembler::Neg_d(FPURegister fd, FPURegister fs) {
- if (kArchVariant == kMips64r2) {
+ if (kArchVariant == kMips64r6) {
+ // r6 neg_d changes the sign for NaN-like operands as well.
+ neg_d(fd, fs);
+ } else {
+ DCHECK(kArchVariant == kMips64r2);
Label is_nan, done;
Register scratch1 = t8;
Register scratch2 = t9;
@@ -2001,9 +2006,6 @@ void MacroAssembler::Neg_d(FPURegister fd, FPURegister fs) {
Or(scratch2, scratch2, scratch1);
dmtc1(scratch2, fd);
bind(&done);
- } else {
- // r6 neg_d changes the sign for NaN-like operands as well.
- neg_d(fd, fs);
}
}
« no previous file with comments | « src/mips/macro-assembler-mips.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698