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

Side by Side Diff: src/arm/deoptimizer-arm.cc

Issue 6542047: Basic implementation of incremental marking. (Closed) Base URL: https://v8.googlecode.com/svn/branches/experimental/gc
Patch Set: Created 9 years, 10 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 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 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 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 function->ReplaceCode(function->shared()->code()); 114 function->ReplaceCode(function->shared()->code());
115 115
116 if (FLAG_trace_deopt) { 116 if (FLAG_trace_deopt) {
117 PrintF("[forced deoptimization: "); 117 PrintF("[forced deoptimization: ");
118 function->PrintName(); 118 function->PrintName();
119 PrintF(" / %x]\n", reinterpret_cast<uint32_t>(function)); 119 PrintF(" / %x]\n", reinterpret_cast<uint32_t>(function));
120 } 120 }
121 } 121 }
122 122
123 123
124 void Deoptimizer::PatchStackCheckCodeAt(Address pc_after, 124 void Deoptimizer::PatchStackCheckCodeAt(Code* code,
Erik Corry 2011/02/22 12:27:19 Should we add a TODO to make use of this argument?
Vyacheslav Egorov (Chromium) 2011/02/23 14:31:46 Done.
125 Address pc_after,
125 Code* check_code, 126 Code* check_code,
126 Code* replacement_code) { 127 Code* replacement_code) {
127 const int kInstrSize = Assembler::kInstrSize; 128 const int kInstrSize = Assembler::kInstrSize;
128 // The call of the stack guard check has the following form: 129 // The call of the stack guard check has the following form:
129 // e1 5d 00 0c cmp sp, <limit> 130 // e1 5d 00 0c cmp sp, <limit>
130 // 2a 00 00 01 bcs ok 131 // 2a 00 00 01 bcs ok
131 // e5 9f c? ?? ldr ip, [pc, <stack guard address>] 132 // e5 9f c? ?? ldr ip, [pc, <stack guard address>]
132 // e1 2f ff 3c blx ip 133 // e1 2f ff 3c blx ip
133 ASSERT(Memory::int32_at(pc_after - kInstrSize) == 134 ASSERT(Memory::int32_at(pc_after - kInstrSize) ==
134 (al | B24 | B21 | 15*B16 | 15*B12 | 15*B8 | BLX | ip.code())); 135 (al | B24 | B21 | 15*B16 | 15*B12 | 15*B8 | BLX | ip.code()));
(...skipping 554 matching lines...) Expand 10 before | Expand all | Expand 10 after
689 __ push(ip); 690 __ push(ip);
690 __ b(&done); 691 __ b(&done);
691 ASSERT(masm()->pc_offset() - start == table_entry_size_); 692 ASSERT(masm()->pc_offset() - start == table_entry_size_);
692 } 693 }
693 __ bind(&done); 694 __ bind(&done);
694 } 695 }
695 696
696 #undef __ 697 #undef __
697 698
698 } } // namespace v8::internal 699 } } // namespace v8::internal
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698