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

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

Issue 27133: - Pass the knowledge whether the old GC is compacting to the GC prologue and ... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 11 years, 9 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 2006-2008 the V8 project authors. All rights reserved. 1 // Copyright 2006-2008 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 25 matching lines...) Expand all
36 36
37 // Give alias names to registers 37 // Give alias names to registers
38 Register cp = { 8 }; // JavaScript context pointer 38 Register cp = { 8 }; // JavaScript context pointer
39 Register pp = { 10 }; // parameter pointer 39 Register pp = { 10 }; // parameter pointer
40 40
41 41
42 MacroAssembler::MacroAssembler(void* buffer, int size) 42 MacroAssembler::MacroAssembler(void* buffer, int size)
43 : Assembler(buffer, size), 43 : Assembler(buffer, size),
44 unresolved_(0), 44 unresolved_(0),
45 generating_stub_(false), 45 generating_stub_(false),
46 allow_stub_calls_(true) { 46 allow_stub_calls_(true),
47 code_object_(Heap::undefined_value()) {
47 } 48 }
48 49
49 50
50 // We always generate arm code, never thumb code, even if V8 is compiled to 51 // We always generate arm code, never thumb code, even if V8 is compiled to
51 // thumb, so we require inter-working support 52 // thumb, so we require inter-working support
52 #if defined(__thumb__) && !defined(__THUMB_INTERWORK__) 53 #if defined(__thumb__) && !defined(__THUMB_INTERWORK__)
53 #error "flag -mthumb-interwork missing" 54 #error "flag -mthumb-interwork missing"
54 #endif 55 #endif
55 56
56 57
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
263 264
264 bind(&done); 265 bind(&done);
265 } 266 }
266 267
267 268
268 void MacroAssembler::EnterFrame(StackFrame::Type type) { 269 void MacroAssembler::EnterFrame(StackFrame::Type type) {
269 // r0-r3: preserved 270 // r0-r3: preserved
270 stm(db_w, sp, cp.bit() | fp.bit() | lr.bit()); 271 stm(db_w, sp, cp.bit() | fp.bit() | lr.bit());
271 mov(ip, Operand(Smi::FromInt(type))); 272 mov(ip, Operand(Smi::FromInt(type)));
272 push(ip); 273 push(ip);
273 mov(ip, Operand(0)); 274 mov(ip, Operand(CodeObject()));
274 push(ip); // Push an empty code cache slot. 275 push(ip);
275 add(fp, sp, Operand(3 * kPointerSize)); // Adjust FP to point to saved FP. 276 add(fp, sp, Operand(3 * kPointerSize)); // Adjust FP to point to saved FP.
276 } 277 }
277 278
278 279
279 void MacroAssembler::LeaveFrame(StackFrame::Type type) { 280 void MacroAssembler::LeaveFrame(StackFrame::Type type) {
280 // r0: preserved 281 // r0: preserved
281 // r1: preserved 282 // r1: preserved
282 // r2: preserved 283 // r2: preserved
283 284
284 // Drop the execution stack down to the frame pointer and restore 285 // Drop the execution stack down to the frame pointer and restore
(...skipping 641 matching lines...) Expand 10 before | Expand all | Expand 10 after
926 #endif 927 #endif
927 mov(r0, Operand(p0)); 928 mov(r0, Operand(p0));
928 push(r0); 929 push(r0);
929 mov(r0, Operand(Smi::FromInt(p1 - p0))); 930 mov(r0, Operand(Smi::FromInt(p1 - p0)));
930 push(r0); 931 push(r0);
931 CallRuntime(Runtime::kAbort, 2); 932 CallRuntime(Runtime::kAbort, 2);
932 // will not return here 933 // will not return here
933 } 934 }
934 935
935 } } // namespace v8::internal 936 } } // namespace v8::internal
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698