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

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

Issue 5988003: Implement inlining of instanceof tests on ARM. (Closed) Base URL: https://v8.googlecode.com/svn/trunk
Patch Set: Added missing spaces. Created 10 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 | Annotate | Revision Log
« no previous file with comments | « src/arm/lithium-codegen-arm.cc ('k') | src/arm/macro-assembler-arm.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 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 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 void Jump(Handle<Code> code, RelocInfo::Mode rmode, Condition cond = al); 89 void Jump(Handle<Code> code, RelocInfo::Mode rmode, Condition cond = al);
90 void Call(Register target, Condition cond = al); 90 void Call(Register target, Condition cond = al);
91 void Call(byte* target, RelocInfo::Mode rmode, Condition cond = al); 91 void Call(byte* target, RelocInfo::Mode rmode, Condition cond = al);
92 void Call(Handle<Code> code, RelocInfo::Mode rmode, Condition cond = al); 92 void Call(Handle<Code> code, RelocInfo::Mode rmode, Condition cond = al);
93 void Ret(Condition cond = al); 93 void Ret(Condition cond = al);
94 94
95 // Emit code to discard a non-negative number of pointer-sized elements 95 // Emit code to discard a non-negative number of pointer-sized elements
96 // from the stack, clobbering only the sp register. 96 // from the stack, clobbering only the sp register.
97 void Drop(int count, Condition cond = al); 97 void Drop(int count, Condition cond = al);
98 98
99 void Ret(int drop, Condition cond = al);
99 100
100 // Swap two registers. If the scratch register is omitted then a slightly 101 // Swap two registers. If the scratch register is omitted then a slightly
101 // less efficient form using xor instead of mov is emitted. 102 // less efficient form using xor instead of mov is emitted.
102 void Swap(Register reg1, 103 void Swap(Register reg1,
103 Register reg2, 104 Register reg2,
104 Register scratch = no_reg, 105 Register scratch = no_reg,
105 Condition cond = al); 106 Condition cond = al);
106 107
107 108
108 void And(Register dst, Register src1, const Operand& src2, 109 void And(Register dst, Register src1, const Operand& src2,
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
291 // Invoke the JavaScript function in the given register. Changes the 292 // Invoke the JavaScript function in the given register. Changes the
292 // current context to the context in the function before invoking. 293 // current context to the context in the function before invoking.
293 void InvokeFunction(Register function, 294 void InvokeFunction(Register function,
294 const ParameterCount& actual, 295 const ParameterCount& actual,
295 InvokeFlag flag); 296 InvokeFlag flag);
296 297
297 void InvokeFunction(JSFunction* function, 298 void InvokeFunction(JSFunction* function,
298 const ParameterCount& actual, 299 const ParameterCount& actual,
299 InvokeFlag flag); 300 InvokeFlag flag);
300 301
302 void IsObjectJSObjectType(Register heap_object,
303 Register map,
304 Register scratch,
305 Label* fail);
306
307 void IsInstanceJSObjectType(Register map,
308 Register scratch,
309 Label* fail);
310
311 void IsObjectJSStringType(Register object,
312 Register scratch,
313 Label* fail);
301 314
302 #ifdef ENABLE_DEBUGGER_SUPPORT 315 #ifdef ENABLE_DEBUGGER_SUPPORT
303 // --------------------------------------------------------------------------- 316 // ---------------------------------------------------------------------------
304 // Debugger Support 317 // Debugger Support
305 318
306 void DebugBreak(); 319 void DebugBreak();
307 #endif 320 #endif
308 321
309 // --------------------------------------------------------------------------- 322 // ---------------------------------------------------------------------------
310 // Exception handling 323 // Exception handling
(...skipping 495 matching lines...) Expand 10 before | Expand all | Expand 10 after
806 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) 819 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__)
807 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> 820 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm->
808 #else 821 #else
809 #define ACCESS_MASM(masm) masm-> 822 #define ACCESS_MASM(masm) masm->
810 #endif 823 #endif
811 824
812 825
813 } } // namespace v8::internal 826 } } // namespace v8::internal
814 827
815 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_ 828 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_
OLDNEW
« no previous file with comments | « src/arm/lithium-codegen-arm.cc ('k') | src/arm/macro-assembler-arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698