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

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

Issue 140060: Enable code generation for array literals.... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 11 years, 6 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/x64/macro-assembler-x64.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2009 the V8 project authors. All rights reserved. 1 // Copyright 2009 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 27 matching lines...) Expand all
38 38
39 MacroAssembler::MacroAssembler(void* buffer, int size) 39 MacroAssembler::MacroAssembler(void* buffer, int size)
40 : Assembler(buffer, size), 40 : Assembler(buffer, size),
41 unresolved_(0), 41 unresolved_(0),
42 generating_stub_(false), 42 generating_stub_(false),
43 allow_stub_calls_(true), 43 allow_stub_calls_(true),
44 code_object_(Heap::undefined_value()) { 44 code_object_(Heap::undefined_value()) {
45 } 45 }
46 46
47 47
48 // TODO(x64): For now, the write barrier is disabled on x64 and we
49 // therefore generate no code. This should be fixed when the write
50 // barrier is enabled.
51 void MacroAssembler::RecordWrite(Register object, int offset,
52 Register value, Register scratch) {
53 }
54
55
48 void MacroAssembler::Assert(Condition cc, const char* msg) { 56 void MacroAssembler::Assert(Condition cc, const char* msg) {
49 if (FLAG_debug_code) Check(cc, msg); 57 if (FLAG_debug_code) Check(cc, msg);
50 } 58 }
51 59
52 60
53 void MacroAssembler::Check(Condition cc, const char* msg) { 61 void MacroAssembler::Check(Condition cc, const char* msg) {
54 Label L; 62 Label L;
55 j(cc, &L); 63 j(cc, &L);
56 Abort(msg); 64 Abort(msg);
57 // will not return here 65 // will not return here
(...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after
343 // Link this handler. 351 // Link this handler.
344 movq(Operand(kScratchRegister, 0), rsp); 352 movq(Operand(kScratchRegister, 0), rsp);
345 } 353 }
346 354
347 355
348 void MacroAssembler::Ret() { 356 void MacroAssembler::Ret() {
349 ret(0); 357 ret(0);
350 } 358 }
351 359
352 360
361 void MacroAssembler::CmpHeapObject(Register heap_object_reg,
362 Handle<Object> heap_object) {
363 ASSERT(heap_object->IsHeapObject());
364 movq(kScratchRegister, heap_object, RelocInfo::EMBEDDED_OBJECT);
365 cmpq(heap_object_reg, kScratchRegister);
366 }
367
368
369 void MacroAssembler::PushHeapObject(Handle<Object> heap_object) {
370 ASSERT(heap_object->IsHeapObject());
371 movq(kScratchRegister, heap_object, RelocInfo::EMBEDDED_OBJECT);
372 push(kScratchRegister);
373 }
374
375
353 void MacroAssembler::CmpObjectType(Register heap_object, 376 void MacroAssembler::CmpObjectType(Register heap_object,
354 InstanceType type, 377 InstanceType type,
355 Register map) { 378 Register map) {
356 movq(map, FieldOperand(heap_object, HeapObject::kMapOffset)); 379 movq(map, FieldOperand(heap_object, HeapObject::kMapOffset));
357 CmpInstanceType(map, type); 380 CmpInstanceType(map, type);
358 } 381 }
359 382
360 383
361 void MacroAssembler::CmpInstanceType(Register map, InstanceType type) { 384 void MacroAssembler::CmpInstanceType(Register map, InstanceType type) {
362 cmpb(FieldOperand(map, Map::kInstanceTypeOffset), 385 cmpb(FieldOperand(map, Map::kInstanceTypeOffset),
(...skipping 369 matching lines...) Expand 10 before | Expand all | Expand 10 after
732 push(rcx); 755 push(rcx);
733 756
734 // Clear the top frame. 757 // Clear the top frame.
735 ExternalReference c_entry_fp_address(Top::k_c_entry_fp_address); 758 ExternalReference c_entry_fp_address(Top::k_c_entry_fp_address);
736 movq(kScratchRegister, c_entry_fp_address); 759 movq(kScratchRegister, c_entry_fp_address);
737 movq(Operand(kScratchRegister, 0), Immediate(0)); 760 movq(Operand(kScratchRegister, 0), Immediate(0));
738 } 761 }
739 762
740 763
741 } } // namespace v8::internal 764 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/x64/macro-assembler-x64.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698