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

Side by Side Diff: src/gdb-jit.cc

Issue 18014003: Add X32 port into V8 (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Rebased with bleeding_edge Created 6 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
OLDNEW
1 // Copyright 2010 the V8 project authors. All rights reserved. 1 // Copyright 2010 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifdef ENABLE_GDB_JIT_INTERFACE 5 #ifdef ENABLE_GDB_JIT_INTERFACE
6 #include "src/v8.h" 6 #include "src/v8.h"
7 7
8 #include "src/bootstrapper.h" 8 #include "src/bootstrapper.h"
9 #include "src/compiler.h" 9 #include "src/compiler.h"
10 #include "src/frames-inl.h" 10 #include "src/frames-inl.h"
(...skipping 631 matching lines...) Expand 10 before | Expand all | Expand 10 after
642 uint16_t pht_entry_num; 642 uint16_t pht_entry_num;
643 uint16_t sht_entry_size; 643 uint16_t sht_entry_size;
644 uint16_t sht_entry_num; 644 uint16_t sht_entry_num;
645 uint16_t sht_strtab_index; 645 uint16_t sht_strtab_index;
646 }; 646 };
647 647
648 648
649 void WriteHeader(Writer* w) { 649 void WriteHeader(Writer* w) {
650 ASSERT(w->position() == 0); 650 ASSERT(w->position() == 0);
651 Writer::Slot<ELFHeader> header = w->CreateSlotHere<ELFHeader>(); 651 Writer::Slot<ELFHeader> header = w->CreateSlotHere<ELFHeader>();
652 #if V8_TARGET_ARCH_IA32 || V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_X87 652 #if (V8_TARGET_ARCH_IA32 || V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_X87 || \
653 (V8_TARGET_ARCH_X64 && V8_TARGET_ARCH_32_BIT))
653 const uint8_t ident[16] = 654 const uint8_t ident[16] =
654 { 0x7f, 'E', 'L', 'F', 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}; 655 { 0x7f, 'E', 'L', 'F', 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0};
655 #elif V8_TARGET_ARCH_X64 656 #elif V8_TARGET_ARCH_X64 && V8_TARGET_ARCH_64_BIT
656 const uint8_t ident[16] = 657 const uint8_t ident[16] =
657 { 0x7f, 'E', 'L', 'F', 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}; 658 { 0x7f, 'E', 'L', 'F', 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0};
658 #else 659 #else
659 #error Unsupported target architecture. 660 #error Unsupported target architecture.
660 #endif 661 #endif
661 memcpy(header->ident, ident, 16); 662 memcpy(header->ident, ident, 16);
662 header->type = 1; 663 header->type = 1;
663 #if V8_TARGET_ARCH_IA32 || V8_TARGET_ARCH_X87 664 #if V8_TARGET_ARCH_IA32 || V8_TARGET_ARCH_X87
664 header->machine = 3; 665 header->machine = 3;
665 #elif V8_TARGET_ARCH_X64 666 #elif V8_TARGET_ARCH_X64
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
755 value(value), 756 value(value),
756 size(size), 757 size(size),
757 info((binding << 4) | type), 758 info((binding << 4) | type),
758 other(0), 759 other(0),
759 section(section) { 760 section(section) {
760 } 761 }
761 762
762 Binding binding() const { 763 Binding binding() const {
763 return static_cast<Binding>(info >> 4); 764 return static_cast<Binding>(info >> 4);
764 } 765 }
765 #if V8_TARGET_ARCH_IA32 || V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_X87 766 #if (V8_TARGET_ARCH_IA32 || V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_X87 || \
767 (V8_TARGET_ARCH_X64 && V8_TARGET_ARCH_32_BIT))
766 struct SerializedLayout { 768 struct SerializedLayout {
767 SerializedLayout(uint32_t name, 769 SerializedLayout(uint32_t name,
768 uintptr_t value, 770 uintptr_t value,
769 uintptr_t size, 771 uintptr_t size,
770 Binding binding, 772 Binding binding,
771 Type type, 773 Type type,
772 uint16_t section) 774 uint16_t section)
773 : name(name), 775 : name(name),
774 value(value), 776 value(value),
775 size(size), 777 size(size),
776 info((binding << 4) | type), 778 info((binding << 4) | type),
777 other(0), 779 other(0),
778 section(section) { 780 section(section) {
779 } 781 }
780 782
781 uint32_t name; 783 uint32_t name;
782 uintptr_t value; 784 uintptr_t value;
783 uintptr_t size; 785 uintptr_t size;
784 uint8_t info; 786 uint8_t info;
785 uint8_t other; 787 uint8_t other;
786 uint16_t section; 788 uint16_t section;
787 }; 789 };
788 #elif V8_TARGET_ARCH_X64 790 #elif V8_TARGET_ARCH_X64 && V8_TARGET_ARCH_64_BIT
789 struct SerializedLayout { 791 struct SerializedLayout {
790 SerializedLayout(uint32_t name, 792 SerializedLayout(uint32_t name,
791 uintptr_t value, 793 uintptr_t value,
792 uintptr_t size, 794 uintptr_t size,
793 Binding binding, 795 Binding binding,
794 Type type, 796 Type type,
795 uint16_t section) 797 uint16_t section)
796 : name(name), 798 : name(name),
797 info((binding << 4) | type), 799 info((binding << 4) | type),
798 other(0), 800 other(0),
(...skipping 1368 matching lines...) Expand 10 before | Expand all | Expand 10 after
2167 LockGuard<Mutex> lock_guard(mutex.Pointer()); 2169 LockGuard<Mutex> lock_guard(mutex.Pointer());
2168 ASSERT(!IsLineInfoTagged(line_info)); 2170 ASSERT(!IsLineInfoTagged(line_info));
2169 HashMap::Entry* e = GetEntries()->Lookup(code, HashForCodeObject(code), true); 2171 HashMap::Entry* e = GetEntries()->Lookup(code, HashForCodeObject(code), true);
2170 ASSERT(e->value == NULL); 2172 ASSERT(e->value == NULL);
2171 e->value = TagLineInfo(line_info); 2173 e->value = TagLineInfo(line_info);
2172 } 2174 }
2173 2175
2174 2176
2175 } } // namespace v8::internal 2177 } } // namespace v8::internal
2176 #endif 2178 #endif
OLDNEW
« src/base/build_config.h ('K') | « src/execution.h ('k') | src/globals.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698