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

Side by Side Diff: src/ia32/assembler-ia32.h

Issue 990963003: [turbofan] Unify Math.floor / Math.ceil optimization. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 9 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 unified diff | Download patch
« no previous file with comments | « src/hydrogen.cc ('k') | src/ia32/lithium-codegen-ia32.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 1994-2006 Sun Microsystems Inc. 1 // Copyright (c) 1994-2006 Sun Microsystems Inc.
2 // All Rights Reserved. 2 // All Rights Reserved.
3 // 3 //
4 // Redistribution and use in source and binary forms, with or without 4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions are 5 // modification, are permitted provided that the following conditions are
6 // met: 6 // met:
7 // 7 //
8 // - Redistributions of source code must retain the above copyright notice, 8 // - Redistributions of source code must retain the above copyright notice,
9 // this list of conditions and the following disclaimer. 9 // this list of conditions and the following disclaimer.
10 // 10 //
(...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after
273 case greater_equal: 273 case greater_equal:
274 return less_equal; 274 return less_equal;
275 case less_equal: 275 case less_equal:
276 return greater_equal; 276 return greater_equal;
277 default: 277 default:
278 return cc; 278 return cc;
279 } 279 }
280 } 280 }
281 281
282 282
283 enum RoundingMode {
284 kRoundToNearest = 0x0,
285 kRoundDown = 0x1,
286 kRoundUp = 0x2,
287 kRoundToZero = 0x3
288 };
289
290
283 // ----------------------------------------------------------------------------- 291 // -----------------------------------------------------------------------------
284 // Machine instruction Immediates 292 // Machine instruction Immediates
285 293
286 class Immediate BASE_EMBEDDED { 294 class Immediate BASE_EMBEDDED {
287 public: 295 public:
288 inline explicit Immediate(int x); 296 inline explicit Immediate(int x);
289 inline explicit Immediate(const ExternalReference& ext); 297 inline explicit Immediate(const ExternalReference& ext);
290 inline explicit Immediate(Handle<Object> handle); 298 inline explicit Immediate(Handle<Object> handle);
291 inline explicit Immediate(Smi* value); 299 inline explicit Immediate(Smi* value);
292 inline explicit Immediate(Address addr); 300 inline explicit Immediate(Address addr);
(...skipping 703 matching lines...) Expand 10 before | Expand all | Expand 10 after
996 void xorpd(XMMRegister dst, XMMRegister src); 1004 void xorpd(XMMRegister dst, XMMRegister src);
997 void sqrtsd(XMMRegister dst, XMMRegister src) { sqrtsd(dst, Operand(src)); } 1005 void sqrtsd(XMMRegister dst, XMMRegister src) { sqrtsd(dst, Operand(src)); }
998 void sqrtsd(XMMRegister dst, const Operand& src); 1006 void sqrtsd(XMMRegister dst, const Operand& src);
999 1007
1000 void andpd(XMMRegister dst, XMMRegister src); 1008 void andpd(XMMRegister dst, XMMRegister src);
1001 void orpd(XMMRegister dst, XMMRegister src); 1009 void orpd(XMMRegister dst, XMMRegister src);
1002 1010
1003 void ucomisd(XMMRegister dst, XMMRegister src) { ucomisd(dst, Operand(src)); } 1011 void ucomisd(XMMRegister dst, XMMRegister src) { ucomisd(dst, Operand(src)); }
1004 void ucomisd(XMMRegister dst, const Operand& src); 1012 void ucomisd(XMMRegister dst, const Operand& src);
1005 1013
1006 enum RoundingMode {
1007 kRoundToNearest = 0x0,
1008 kRoundDown = 0x1,
1009 kRoundUp = 0x2,
1010 kRoundToZero = 0x3
1011 };
1012
1013 void roundsd(XMMRegister dst, XMMRegister src, RoundingMode mode); 1014 void roundsd(XMMRegister dst, XMMRegister src, RoundingMode mode);
1014 1015
1015 void movmskpd(Register dst, XMMRegister src); 1016 void movmskpd(Register dst, XMMRegister src);
1016 void movmskps(Register dst, XMMRegister src); 1017 void movmskps(Register dst, XMMRegister src);
1017 1018
1018 void cmpltsd(XMMRegister dst, XMMRegister src); 1019 void cmpltsd(XMMRegister dst, XMMRegister src);
1019 void pcmpeqd(XMMRegister dst, XMMRegister src); 1020 void pcmpeqd(XMMRegister dst, XMMRegister src);
1020 1021
1021 void punpckldq(XMMRegister dst, XMMRegister src); 1022 void punpckldq(XMMRegister dst, XMMRegister src);
1022 void punpckhdq(XMMRegister dst, XMMRegister src); 1023 void punpckhdq(XMMRegister dst, XMMRegister src);
(...skipping 393 matching lines...) Expand 10 before | Expand all | Expand 10 after
1416 private: 1417 private:
1417 Assembler* assembler_; 1418 Assembler* assembler_;
1418 #ifdef DEBUG 1419 #ifdef DEBUG
1419 int space_before_; 1420 int space_before_;
1420 #endif 1421 #endif
1421 }; 1422 };
1422 1423
1423 } } // namespace v8::internal 1424 } } // namespace v8::internal
1424 1425
1425 #endif // V8_IA32_ASSEMBLER_IA32_H_ 1426 #endif // V8_IA32_ASSEMBLER_IA32_H_
OLDNEW
« no previous file with comments | « src/hydrogen.cc ('k') | src/ia32/lithium-codegen-ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698