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/ppc/assembler-ppc.h

Issue 2929843002: PPC/s390: [compiler] Delay allocation of code-embedded heap numbers. (Closed)
Patch Set: missing codegen changes Created 3 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
« no previous file with comments | « no previous file | src/ppc/assembler-ppc.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 (c) 1994-2006 Sun Microsystems Inc. 1 // Copyright (c) 1994-2006 Sun Microsystems Inc.
2 // All Rights Reserved. 2 // All Rights Reserved.
3 // 3 //
4 // Redistribution and use in source and binary forms, with or without 4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions 5 // modification, are permitted provided that the following conditions
6 // are met: 6 // are met:
7 // 7 //
8 // - Redistributions of source code must retain the above copyright notice, 8 // - Redistributions of source code must retain the above copyright notice,
9 // this list of conditions and the following disclaimer. 9 // this list of conditions and the following disclaimer.
10 // 10 //
(...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after
398 // is too small, a fatal error occurs. No deallocation of the buffer is done 398 // is too small, a fatal error occurs. No deallocation of the buffer is done
399 // upon destruction of the assembler. 399 // upon destruction of the assembler.
400 Assembler(Isolate* isolate, void* buffer, int buffer_size) 400 Assembler(Isolate* isolate, void* buffer, int buffer_size)
401 : Assembler(IsolateData(isolate), buffer, buffer_size) {} 401 : Assembler(IsolateData(isolate), buffer, buffer_size) {}
402 Assembler(IsolateData isolate_data, void* buffer, int buffer_size); 402 Assembler(IsolateData isolate_data, void* buffer, int buffer_size);
403 virtual ~Assembler() {} 403 virtual ~Assembler() {}
404 404
405 // GetCode emits any pending (non-emitted) code and fills the descriptor 405 // GetCode emits any pending (non-emitted) code and fills the descriptor
406 // desc. GetCode() is idempotent; it returns the same result if no other 406 // desc. GetCode() is idempotent; it returns the same result if no other
407 // Assembler functions are invoked in between GetCode() calls. 407 // Assembler functions are invoked in between GetCode() calls.
408 void GetCode(CodeDesc* desc); 408 void GetCode(Isolate* isolate, CodeDesc* desc);
409 409
410 // Label operations & relative jumps (PPUM Appendix D) 410 // Label operations & relative jumps (PPUM Appendix D)
411 // 411 //
412 // Takes a branch opcode (cc) and a label (L) and generates 412 // Takes a branch opcode (cc) and a label (L) and generates
413 // either a backward branch or a forward branch and links it 413 // either a backward branch or a forward branch and links it
414 // to the label fixup chain. Usage: 414 // to the label fixup chain. Usage:
415 // 415 //
416 // Label L; // unbound label 416 // Label L; // unbound label
417 // j(cc, &L); // forward branch to unbound label 417 // j(cc, &L); // forward branch to unbound label
418 // bind(&L); // bind label to the current pc 418 // bind(&L); // bind label to the current pc
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
486 // This is for calls and branches within generated code. 486 // This is for calls and branches within generated code.
487 inline static void deserialization_set_special_target_at( 487 inline static void deserialization_set_special_target_at(
488 Isolate* isolate, Address instruction_payload, Code* code, 488 Isolate* isolate, Address instruction_payload, Code* code,
489 Address target); 489 Address target);
490 490
491 // This sets the internal reference at the pc. 491 // This sets the internal reference at the pc.
492 inline static void deserialization_set_target_internal_reference_at( 492 inline static void deserialization_set_target_internal_reference_at(
493 Isolate* isolate, Address pc, Address target, 493 Isolate* isolate, Address pc, Address target,
494 RelocInfo::Mode mode = RelocInfo::INTERNAL_REFERENCE); 494 RelocInfo::Mode mode = RelocInfo::INTERNAL_REFERENCE);
495 495
496 static void set_heap_number(Handle<HeapObject> number, Address pc) {
497 UNIMPLEMENTED();
498 }
499
496 // Size of an instruction. 500 // Size of an instruction.
497 static constexpr int kInstrSize = sizeof(Instr); 501 static constexpr int kInstrSize = sizeof(Instr);
498 502
499 // Here we are patching the address in the LUI/ORI instruction pair. 503 // Here we are patching the address in the LUI/ORI instruction pair.
500 // These values are used in the serialization process and must be zero for 504 // These values are used in the serialization process and must be zero for
501 // PPC platform, as Code, Embedded Object or External-reference pointers 505 // PPC platform, as Code, Embedded Object or External-reference pointers
502 // are split across two consecutive instructions and don't exist separately 506 // are split across two consecutive instructions and don't exist separately
503 // in the code, so the serializer should not step forwards in memory after 507 // in the code, so the serializer should not step forwards in memory after
504 // a target is resolved and written. 508 // a target is resolved and written.
505 static constexpr int kSpecialTargetSize = 0; 509 static constexpr int kSpecialTargetSize = 0;
(...skipping 1051 matching lines...) Expand 10 before | Expand all | Expand 10 after
1557 PatchingAssembler(IsolateData isolate_data, byte* address, int instructions); 1561 PatchingAssembler(IsolateData isolate_data, byte* address, int instructions);
1558 ~PatchingAssembler(); 1562 ~PatchingAssembler();
1559 1563
1560 void FlushICache(Isolate* isolate); 1564 void FlushICache(Isolate* isolate);
1561 }; 1565 };
1562 1566
1563 } // namespace internal 1567 } // namespace internal
1564 } // namespace v8 1568 } // namespace v8
1565 1569
1566 #endif // V8_PPC_ASSEMBLER_PPC_H_ 1570 #endif // V8_PPC_ASSEMBLER_PPC_H_
OLDNEW
« no previous file with comments | « no previous file | src/ppc/assembler-ppc.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698