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

Side by Side Diff: src/arm/macro-assembler-arm.h

Issue 14109010: ARM: Enable VFP default NaN mode (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Address review comments Created 7 years, 8 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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 442 matching lines...) Expand 10 before | Expand all | Expand 10 after
453 Register dst2, 453 Register dst2,
454 const MemOperand& src, 454 const MemOperand& src,
455 Condition cond = al); 455 Condition cond = al);
456 456
457 // Store two consecutive registers to two consecutive memory locations. 457 // Store two consecutive registers to two consecutive memory locations.
458 void Strd(Register src1, 458 void Strd(Register src1,
459 Register src2, 459 Register src2,
460 const MemOperand& dst, 460 const MemOperand& dst,
461 Condition cond = al); 461 Condition cond = al);
462 462
463 // Ensure that FPSCR contains values needed by JavaScript.
464 // We need the NaNModeControlBit to be sure that operations like
465 // vadd and vsub generate the Canonical NaN (if a NaN must be generated).
466 // In VFP3 it will be always the Canonical NaN.
467 // In VFP2 it will be either the Canonical NaN or the negative version
468 // of the Canonical NaN. It doesn't matter if we have two values. The aim
469 // is to be sure to never generate the hole NaN.
470 void VFPEnsureFPSCRState(Register scratch);
471
472 // If the value is a NaN, canonicalize the value else, do nothing.
473 void VFPCanonicalizeNaN(const DwVfpRegister value,
474 const Condition cond = al);
475
463 // Compare double values and move the result to the normal condition flags. 476 // Compare double values and move the result to the normal condition flags.
464 void VFPCompareAndSetFlags(const DwVfpRegister src1, 477 void VFPCompareAndSetFlags(const DwVfpRegister src1,
465 const DwVfpRegister src2, 478 const DwVfpRegister src2,
466 const Condition cond = al); 479 const Condition cond = al);
467 void VFPCompareAndSetFlags(const DwVfpRegister src1, 480 void VFPCompareAndSetFlags(const DwVfpRegister src1,
468 const double src2, 481 const double src2,
469 const Condition cond = al); 482 const Condition cond = al);
470 483
471 // Compare double values and then load the fpscr flags to a register. 484 // Compare double values and then load the fpscr flags to a register.
472 void VFPCompareAndLoadFlags(const DwVfpRegister src1, 485 void VFPCompareAndLoadFlags(const DwVfpRegister src1,
(...skipping 962 matching lines...) Expand 10 before | Expand all | Expand 10 after
1435 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) 1448 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__)
1436 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> 1449 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm->
1437 #else 1450 #else
1438 #define ACCESS_MASM(masm) masm-> 1451 #define ACCESS_MASM(masm) masm->
1439 #endif 1452 #endif
1440 1453
1441 1454
1442 } } // namespace v8::internal 1455 } } // namespace v8::internal
1443 1456
1444 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_ 1457 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698