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

Side by Side Diff: test/cctest/test-macro-assembler-mips64.cc

Issue 2556793003: MIPS[64]: Fix `MIPS: Improve Float(32|64)(Max|Min)`. (Closed)
Patch Set: Modified according comments. Created 4 years 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 unified diff | Download patch
« no previous file with comments | « test/cctest/test-macro-assembler-mips.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 1991 matching lines...) Expand 10 before | Expand all | Expand 10 after
2002 FLOAT_MIN_MAX(Float32Max, a, b, a, done_max_aba, ool_max_aba, max_aba_); 2002 FLOAT_MIN_MAX(Float32Max, a, b, a, done_max_aba, ool_max_aba, max_aba_);
2003 2003
2004 #undef FLOAT_MIN_MAX 2004 #undef FLOAT_MIN_MAX
2005 2005
2006 __ jr(ra); 2006 __ jr(ra);
2007 __ nop(); 2007 __ nop();
2008 2008
2009 // Generate out-of-line cases. 2009 // Generate out-of-line cases.
2010 __ bind(&ool_min_abc); 2010 __ bind(&ool_min_abc);
2011 __ Float32MinOutOfLine(a, b, c); 2011 __ Float32MinOutOfLine(a, b, c);
2012 __ b(&done_min_abc); 2012 __ Branch(&done_min_abc);
2013 2013
2014 __ bind(&ool_min_aab); 2014 __ bind(&ool_min_aab);
2015 __ Float32MinOutOfLine(a, a, b); 2015 __ Float32MinOutOfLine(a, a, b);
2016 __ b(&done_min_aab); 2016 __ Branch(&done_min_aab);
2017 2017
2018 __ bind(&ool_min_aba); 2018 __ bind(&ool_min_aba);
2019 __ Float32MinOutOfLine(a, b, a); 2019 __ Float32MinOutOfLine(a, b, a);
2020 __ b(&done_min_aba); 2020 __ Branch(&done_min_aba);
2021 2021
2022 __ bind(&ool_max_abc); 2022 __ bind(&ool_max_abc);
2023 __ Float32MaxOutOfLine(a, b, c); 2023 __ Float32MaxOutOfLine(a, b, c);
2024 __ b(&done_max_abc); 2024 __ Branch(&done_max_abc);
2025 2025
2026 __ bind(&ool_max_aab); 2026 __ bind(&ool_max_aab);
2027 __ Float32MaxOutOfLine(a, a, b); 2027 __ Float32MaxOutOfLine(a, a, b);
2028 __ b(&done_max_aab); 2028 __ Branch(&done_max_aab);
2029 2029
2030 __ bind(&ool_max_aba); 2030 __ bind(&ool_max_aba);
2031 __ Float32MaxOutOfLine(a, b, a); 2031 __ Float32MaxOutOfLine(a, b, a);
2032 __ b(&done_max_aba); 2032 __ Branch(&done_max_aba);
2033 2033
2034 CodeDesc desc; 2034 CodeDesc desc;
2035 masm->GetCode(&desc); 2035 masm->GetCode(&desc);
2036 Handle<Code> code = masm->isolate()->factory()->NewCode( 2036 Handle<Code> code = masm->isolate()->factory()->NewCode(
2037 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); 2037 desc, Code::ComputeFlags(Code::STUB), Handle<Code>());
2038 #ifdef DEBUG 2038 #ifdef DEBUG
2039 OFStream os(stdout); 2039 OFStream os(stdout);
2040 code->Print(os); 2040 code->Print(os);
2041 #endif 2041 #endif
2042 return FUNCTION_CAST<::F4>(code->entry()); 2042 return FUNCTION_CAST<::F4>(code->entry());
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
2145 FLOAT_MIN_MAX(Float64Max, a, b, a, done_max_aba, ool_max_aba, max_aba_); 2145 FLOAT_MIN_MAX(Float64Max, a, b, a, done_max_aba, ool_max_aba, max_aba_);
2146 2146
2147 #undef FLOAT_MIN_MAX 2147 #undef FLOAT_MIN_MAX
2148 2148
2149 __ jr(ra); 2149 __ jr(ra);
2150 __ nop(); 2150 __ nop();
2151 2151
2152 // Generate out-of-line cases. 2152 // Generate out-of-line cases.
2153 __ bind(&ool_min_abc); 2153 __ bind(&ool_min_abc);
2154 __ Float64MinOutOfLine(a, b, c); 2154 __ Float64MinOutOfLine(a, b, c);
2155 __ b(&done_min_abc); 2155 __ Branch(&done_min_abc);
2156 2156
2157 __ bind(&ool_min_aab); 2157 __ bind(&ool_min_aab);
2158 __ Float64MinOutOfLine(a, a, b); 2158 __ Float64MinOutOfLine(a, a, b);
2159 __ b(&done_min_aab); 2159 __ Branch(&done_min_aab);
2160 2160
2161 __ bind(&ool_min_aba); 2161 __ bind(&ool_min_aba);
2162 __ Float64MinOutOfLine(a, b, a); 2162 __ Float64MinOutOfLine(a, b, a);
2163 __ b(&done_min_aba); 2163 __ Branch(&done_min_aba);
2164 2164
2165 __ bind(&ool_max_abc); 2165 __ bind(&ool_max_abc);
2166 __ Float64MaxOutOfLine(a, b, c); 2166 __ Float64MaxOutOfLine(a, b, c);
2167 __ b(&done_max_abc); 2167 __ Branch(&done_max_abc);
2168 2168
2169 __ bind(&ool_max_aab); 2169 __ bind(&ool_max_aab);
2170 __ Float64MaxOutOfLine(a, a, b); 2170 __ Float64MaxOutOfLine(a, a, b);
2171 __ b(&done_max_aab); 2171 __ Branch(&done_max_aab);
2172 2172
2173 __ bind(&ool_max_aba); 2173 __ bind(&ool_max_aba);
2174 __ Float64MaxOutOfLine(a, b, a); 2174 __ Float64MaxOutOfLine(a, b, a);
2175 __ b(&done_max_aba); 2175 __ Branch(&done_max_aba);
2176 2176
2177 CodeDesc desc; 2177 CodeDesc desc;
2178 masm->GetCode(&desc); 2178 masm->GetCode(&desc);
2179 Handle<Code> code = masm->isolate()->factory()->NewCode( 2179 Handle<Code> code = masm->isolate()->factory()->NewCode(
2180 desc, Code::ComputeFlags(Code::STUB), Handle<Code>()); 2180 desc, Code::ComputeFlags(Code::STUB), Handle<Code>());
2181 #ifdef DEBUG 2181 #ifdef DEBUG
2182 OFStream os(stdout); 2182 OFStream os(stdout);
2183 code->Print(os); 2183 code->Print(os);
2184 #endif 2184 #endif
2185 return FUNCTION_CAST<::F4>(code->entry()); 2185 return FUNCTION_CAST<::F4>(code->entry());
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
2248 2248
2249 CHECK_MINMAX(0.0, nan_a, nan_a, nan_a); 2249 CHECK_MINMAX(0.0, nan_a, nan_a, nan_a);
2250 CHECK_MINMAX(nan_a, 0.0, nan_a, nan_a); 2250 CHECK_MINMAX(nan_a, 0.0, nan_a, nan_a);
2251 CHECK_MINMAX(nan_a, nan_b, nan_a, nan_a); 2251 CHECK_MINMAX(nan_a, nan_b, nan_a, nan_a);
2252 CHECK_MINMAX(nan_b, nan_a, nan_b, nan_b); 2252 CHECK_MINMAX(nan_b, nan_a, nan_b, nan_b);
2253 2253
2254 #undef CHECK_MINMAX 2254 #undef CHECK_MINMAX
2255 } 2255 }
2256 2256
2257 #undef __ 2257 #undef __
OLDNEW
« no previous file with comments | « test/cctest/test-macro-assembler-mips.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698