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

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

Issue 6248004: ARM: Implement DoInstanceOfKnownGlobal stub (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
« 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 216 matching lines...) Expand 10 before | Expand all | Expand 10 after
227 Push(src2, src3, src4, cond); 227 Push(src2, src3, src4, cond);
228 } 228 }
229 } 229 }
230 230
231 // Push and pop the registers that can hold pointers, as defined by the 231 // Push and pop the registers that can hold pointers, as defined by the
232 // RegList constant kSafepointSavedRegisters. 232 // RegList constant kSafepointSavedRegisters.
233 void PushSafepointRegisters(); 233 void PushSafepointRegisters();
234 void PopSafepointRegisters(); 234 void PopSafepointRegisters();
235 void PushSafepointRegistersAndDoubles(); 235 void PushSafepointRegistersAndDoubles();
236 void PopSafepointRegistersAndDoubles(); 236 void PopSafepointRegistersAndDoubles();
237 237 void StoreToSafepointRegisterSlot(Register reg);
238 static int SafepointRegisterStackIndex(int reg_code); 238 static int SafepointRegisterStackIndex(int reg_code);
239 static MemOperand SafepointRegisterSlot(Register reg);
239 240
240 // Load two consecutive registers with two consecutive memory locations. 241 // Load two consecutive registers with two consecutive memory locations.
241 void Ldrd(Register dst1, 242 void Ldrd(Register dst1,
242 Register dst2, 243 Register dst2,
243 const MemOperand& src, 244 const MemOperand& src,
244 Condition cond = al); 245 Condition cond = al);
245 246
246 // Store two consecutive registers to two consecutive memory locations. 247 // Store two consecutive registers to two consecutive memory locations.
247 void Strd(Register src1, 248 void Strd(Register src1,
248 Register src2, 249 Register src2,
(...skipping 520 matching lines...) Expand 10 before | Expand all | Expand 10 after
769 Register scratch2, 770 Register scratch2,
770 Label* failure); 771 Label* failure);
771 772
772 // Check if instance type is sequential ASCII string and jump to label if 773 // Check if instance type is sequential ASCII string and jump to label if
773 // it is not. 774 // it is not.
774 void JumpIfInstanceTypeIsNotSequentialAscii(Register type, 775 void JumpIfInstanceTypeIsNotSequentialAscii(Register type,
775 Register scratch, 776 Register scratch,
776 Label* failure); 777 Label* failure);
777 778
778 779
780 // ---------------------------------------------------------------------------
781 // Patching helpers.
782
783 // Get the location of a relocated constant (its address in the constant pool)
784 // from its load site.
785 void GetRelocatedValueLocation(Register ldr_location,
786 Register result);
787
788
779 private: 789 private:
780 void Jump(intptr_t target, RelocInfo::Mode rmode, Condition cond = al); 790 void Jump(intptr_t target, RelocInfo::Mode rmode, Condition cond = al);
781 void Call(intptr_t target, RelocInfo::Mode rmode, Condition cond = al); 791 void Call(intptr_t target, RelocInfo::Mode rmode, Condition cond = al);
782 792
783 // Helper functions for generating invokes. 793 // Helper functions for generating invokes.
784 void InvokePrologue(const ParameterCount& expected, 794 void InvokePrologue(const ParameterCount& expected,
785 const ParameterCount& actual, 795 const ParameterCount& actual,
786 Handle<Code> code_constant, 796 Handle<Code> code_constant,
787 Register code_reg, 797 Register code_reg,
788 Label* done, 798 Label* done,
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
865 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) 875 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__)
866 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> 876 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm->
867 #else 877 #else
868 #define ACCESS_MASM(masm) masm-> 878 #define ACCESS_MASM(masm) masm->
869 #endif 879 #endif
870 880
871 881
872 } } // namespace v8::internal 882 } } // namespace v8::internal
873 883
874 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_ 884 #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