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

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

Issue 6117003: ARM: Add instruction VFPCompareAndSetFlags to macro assembler (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 9 years, 11 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 2010 the V8 project authors. All rights reserved. 1 // Copyright 2010 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 225 matching lines...) Expand 10 before | Expand all | Expand 10 after
236 Register dst2, 236 Register dst2,
237 const MemOperand& src, 237 const MemOperand& src,
238 Condition cond = al); 238 Condition cond = al);
239 239
240 // Store two consecutive registers to two consecutive memory locations. 240 // Store two consecutive registers to two consecutive memory locations.
241 void Strd(Register src1, 241 void Strd(Register src1,
242 Register src2, 242 Register src2,
243 const MemOperand& dst, 243 const MemOperand& dst,
244 Condition cond = al); 244 Condition cond = al);
245 245
246 // Clear FPSCR bits. 246 // Clear specified FPSCR bits.
247 void ClearFPSCRBits(uint32_t bits_to_clear, Register scratch); 247 void ClearFPSCRBits(const uint32_t bits_to_clear,
248 const Register scratch,
249 const Condition cond = al);
250
251 // Compare double values and move the result to the normal condition flags.
252 // To include NaN check the scratch register is required. In that case the
253 // overflow bit will be set is any of the operands is a NaN indicating
254 // unordered result of the comparison. If no scratch register is supplied the
255 // value if the overflow bit is undefined.
256 void VFPCompareAndSetFlags(const DwVfpRegister src1,
257 const DwVfpRegister src2,
258 const Register scratch = no_reg,
259 const Condition cond = al);
260 void VFPCompareAndSetFlags(const DwVfpRegister src1,
261 const double src2,
262 const Register scratch = no_reg,
263 const Condition cond = al);
264
265 // Compare double values and then load the fpscr flags to a register.
266 void VFPCompareAndLoadFlags(const DwVfpRegister src1,
267 const DwVfpRegister src2,
268 const Register fpscr_flags,
269 const Condition cond = al);
270 void VFPCompareAndLoadFlags(const DwVfpRegister src1,
271 const double src2,
272 const Register fpscr_flags,
273 const Condition cond = al);
274
248 275
249 // --------------------------------------------------------------------------- 276 // ---------------------------------------------------------------------------
250 // Activation frames 277 // Activation frames
251 278
252 void EnterInternalFrame() { EnterFrame(StackFrame::INTERNAL); } 279 void EnterInternalFrame() { EnterFrame(StackFrame::INTERNAL); }
253 void LeaveInternalFrame() { LeaveFrame(StackFrame::INTERNAL); } 280 void LeaveInternalFrame() { LeaveFrame(StackFrame::INTERNAL); }
254 281
255 void EnterConstructFrame() { EnterFrame(StackFrame::CONSTRUCT); } 282 void EnterConstructFrame() { EnterFrame(StackFrame::CONSTRUCT); }
256 void LeaveConstructFrame() { LeaveFrame(StackFrame::CONSTRUCT); } 283 void LeaveConstructFrame() { LeaveFrame(StackFrame::CONSTRUCT); }
257 284
(...skipping 565 matching lines...) Expand 10 before | Expand all | Expand 10 after
823 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) 850 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__)
824 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> 851 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm->
825 #else 852 #else
826 #define ACCESS_MASM(masm) masm-> 853 #define ACCESS_MASM(masm) masm->
827 #endif 854 #endif
828 855
829 856
830 } } // namespace v8::internal 857 } } // namespace v8::internal
831 858
832 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_ 859 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698