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

Side by Side Diff: src/assembler.cc

Issue 422063005: Contribution of PowerPC port. (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 4 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 (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 are 5 // modification, are permitted provided that the following conditions are
6 // met: 6 // 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 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 #include "src/token.h" 57 #include "src/token.h"
58 58
59 #if V8_TARGET_ARCH_IA32 59 #if V8_TARGET_ARCH_IA32
60 #include "src/ia32/assembler-ia32-inl.h" // NOLINT 60 #include "src/ia32/assembler-ia32-inl.h" // NOLINT
61 #elif V8_TARGET_ARCH_X64 61 #elif V8_TARGET_ARCH_X64
62 #include "src/x64/assembler-x64-inl.h" // NOLINT 62 #include "src/x64/assembler-x64-inl.h" // NOLINT
63 #elif V8_TARGET_ARCH_ARM64 63 #elif V8_TARGET_ARCH_ARM64
64 #include "src/arm64/assembler-arm64-inl.h" // NOLINT 64 #include "src/arm64/assembler-arm64-inl.h" // NOLINT
65 #elif V8_TARGET_ARCH_ARM 65 #elif V8_TARGET_ARCH_ARM
66 #include "src/arm/assembler-arm-inl.h" // NOLINT 66 #include "src/arm/assembler-arm-inl.h" // NOLINT
67 #elif V8_TARGET_ARCH_PPC
68 #include "src/ppc/assembler-ppc-inl.h" // NOLINT
67 #elif V8_TARGET_ARCH_MIPS 69 #elif V8_TARGET_ARCH_MIPS
68 #include "src/mips/assembler-mips-inl.h" // NOLINT 70 #include "src/mips/assembler-mips-inl.h" // NOLINT
69 #elif V8_TARGET_ARCH_MIPS64 71 #elif V8_TARGET_ARCH_MIPS64
70 #include "src/mips64/assembler-mips64-inl.h" // NOLINT 72 #include "src/mips64/assembler-mips64-inl.h" // NOLINT
71 #elif V8_TARGET_ARCH_X87 73 #elif V8_TARGET_ARCH_X87
72 #include "src/x87/assembler-x87-inl.h" // NOLINT 74 #include "src/x87/assembler-x87-inl.h" // NOLINT
73 #else 75 #else
74 #error "Unknown architecture." 76 #error "Unknown architecture."
75 #endif 77 #endif
76 78
77 // Include native regexp-macro-assembler. 79 // Include native regexp-macro-assembler.
78 #ifndef V8_INTERPRETED_REGEXP 80 #ifndef V8_INTERPRETED_REGEXP
79 #if V8_TARGET_ARCH_IA32 81 #if V8_TARGET_ARCH_IA32
80 #include "src/ia32/regexp-macro-assembler-ia32.h" // NOLINT 82 #include "src/ia32/regexp-macro-assembler-ia32.h" // NOLINT
81 #elif V8_TARGET_ARCH_X64 83 #elif V8_TARGET_ARCH_X64
82 #include "src/x64/regexp-macro-assembler-x64.h" // NOLINT 84 #include "src/x64/regexp-macro-assembler-x64.h" // NOLINT
83 #elif V8_TARGET_ARCH_ARM64 85 #elif V8_TARGET_ARCH_ARM64
84 #include "src/arm64/regexp-macro-assembler-arm64.h" // NOLINT 86 #include "src/arm64/regexp-macro-assembler-arm64.h" // NOLINT
85 #elif V8_TARGET_ARCH_ARM 87 #elif V8_TARGET_ARCH_ARM
86 #include "src/arm/regexp-macro-assembler-arm.h" // NOLINT 88 #include "src/arm/regexp-macro-assembler-arm.h" // NOLINT
89 #elif V8_TARGET_ARCH_PPC
90 #include "src/ppc/regexp-macro-assembler-ppc.h" // NOLINT
87 #elif V8_TARGET_ARCH_MIPS 91 #elif V8_TARGET_ARCH_MIPS
88 #include "src/mips/regexp-macro-assembler-mips.h" // NOLINT 92 #include "src/mips/regexp-macro-assembler-mips.h" // NOLINT
89 #elif V8_TARGET_ARCH_MIPS64 93 #elif V8_TARGET_ARCH_MIPS64
90 #include "src/mips64/regexp-macro-assembler-mips64.h" // NOLINT 94 #include "src/mips64/regexp-macro-assembler-mips64.h" // NOLINT
91 #elif V8_TARGET_ARCH_X87 95 #elif V8_TARGET_ARCH_X87
92 #include "src/x87/regexp-macro-assembler-x87.h" // NOLINT 96 #include "src/x87/regexp-macro-assembler-x87.h" // NOLINT
93 #else // Unknown architecture. 97 #else // Unknown architecture.
94 #error "Unknown architecture." 98 #error "Unknown architecture."
95 #endif // Target architecture. 99 #endif // Target architecture.
96 #endif // V8_INTERPRETED_REGEXP 100 #endif // V8_INTERPRETED_REGEXP
(...skipping 881 matching lines...) Expand 10 before | Expand all | Expand 10 after
978 Isolate* isolate = NULL) 982 Isolate* isolate = NULL)
979 : address_(Redirect(isolate, fun->address(), type)) {} 983 : address_(Redirect(isolate, fun->address(), type)) {}
980 984
981 985
982 ExternalReference::ExternalReference(Builtins::Name name, Isolate* isolate) 986 ExternalReference::ExternalReference(Builtins::Name name, Isolate* isolate)
983 : address_(isolate->builtins()->builtin_address(name)) {} 987 : address_(isolate->builtins()->builtin_address(name)) {}
984 988
985 989
986 ExternalReference::ExternalReference(Runtime::FunctionId id, 990 ExternalReference::ExternalReference(Runtime::FunctionId id,
987 Isolate* isolate) 991 Isolate* isolate)
992 #if V8_TARGET_ARCH_PPC64
danno 2014/07/29 13:24:07 Again, why the #ifdef? It seems like on most platf
andrew_low 2014/07/30 13:27:04 This is related to running the simulator version o
993 : address_(Redirect(isolate, Runtime::FunctionForId(id)->entry,
994 (Runtime::FunctionForId(id)->result_size == 2) ?
995 BUILTIN_OBJECTPAIR_CALL : BUILTIN_CALL)) {}
996 #else
988 : address_(Redirect(isolate, Runtime::FunctionForId(id)->entry)) {} 997 : address_(Redirect(isolate, Runtime::FunctionForId(id)->entry)) {}
998 #endif
989 999
990 1000
991 ExternalReference::ExternalReference(const Runtime::Function* f, 1001 ExternalReference::ExternalReference(const Runtime::Function* f,
992 Isolate* isolate) 1002 Isolate* isolate)
1003 #if V8_TARGET_ARCH_PPC64
1004 : address_(Redirect(isolate, f->entry,
1005 ((f->result_size == 2) ?
1006 BUILTIN_OBJECTPAIR_CALL : BUILTIN_CALL))) {}
1007 #else
993 : address_(Redirect(isolate, f->entry)) {} 1008 : address_(Redirect(isolate, f->entry)) {}
1009 #endif
994 1010
995 1011
996 ExternalReference ExternalReference::isolate_address(Isolate* isolate) { 1012 ExternalReference ExternalReference::isolate_address(Isolate* isolate) {
997 return ExternalReference(isolate); 1013 return ExternalReference(isolate);
998 } 1014 }
999 1015
1000 1016
1001 ExternalReference::ExternalReference(const IC_Utility& ic_utility, 1017 ExternalReference::ExternalReference(const IC_Utility& ic_utility,
1002 Isolate* isolate) 1018 Isolate* isolate)
1003 : address_(Redirect(isolate, ic_utility.address())) {} 1019 : address_(Redirect(isolate, ic_utility.address())) {}
(...skipping 331 matching lines...) Expand 10 before | Expand all | Expand 10 after
1335 Isolate* isolate) { 1351 Isolate* isolate) {
1336 Address function; 1352 Address function;
1337 #if V8_TARGET_ARCH_X64 1353 #if V8_TARGET_ARCH_X64
1338 function = FUNCTION_ADDR(RegExpMacroAssemblerX64::CheckStackGuardState); 1354 function = FUNCTION_ADDR(RegExpMacroAssemblerX64::CheckStackGuardState);
1339 #elif V8_TARGET_ARCH_IA32 1355 #elif V8_TARGET_ARCH_IA32
1340 function = FUNCTION_ADDR(RegExpMacroAssemblerIA32::CheckStackGuardState); 1356 function = FUNCTION_ADDR(RegExpMacroAssemblerIA32::CheckStackGuardState);
1341 #elif V8_TARGET_ARCH_ARM64 1357 #elif V8_TARGET_ARCH_ARM64
1342 function = FUNCTION_ADDR(RegExpMacroAssemblerARM64::CheckStackGuardState); 1358 function = FUNCTION_ADDR(RegExpMacroAssemblerARM64::CheckStackGuardState);
1343 #elif V8_TARGET_ARCH_ARM 1359 #elif V8_TARGET_ARCH_ARM
1344 function = FUNCTION_ADDR(RegExpMacroAssemblerARM::CheckStackGuardState); 1360 function = FUNCTION_ADDR(RegExpMacroAssemblerARM::CheckStackGuardState);
1361 #elif V8_TARGET_ARCH_PPC
1362 function = FUNCTION_ADDR(RegExpMacroAssemblerPPC::CheckStackGuardState);
1345 #elif V8_TARGET_ARCH_MIPS 1363 #elif V8_TARGET_ARCH_MIPS
1346 function = FUNCTION_ADDR(RegExpMacroAssemblerMIPS::CheckStackGuardState); 1364 function = FUNCTION_ADDR(RegExpMacroAssemblerMIPS::CheckStackGuardState);
1347 #elif V8_TARGET_ARCH_MIPS64 1365 #elif V8_TARGET_ARCH_MIPS64
1348 function = FUNCTION_ADDR(RegExpMacroAssemblerMIPS::CheckStackGuardState); 1366 function = FUNCTION_ADDR(RegExpMacroAssemblerMIPS::CheckStackGuardState);
1349 #elif V8_TARGET_ARCH_X87 1367 #elif V8_TARGET_ARCH_X87
1350 function = FUNCTION_ADDR(RegExpMacroAssemblerX87::CheckStackGuardState); 1368 function = FUNCTION_ADDR(RegExpMacroAssemblerX87::CheckStackGuardState);
1351 #else 1369 #else
1352 UNREACHABLE(); 1370 UNREACHABLE();
1353 #endif 1371 #endif
1354 return ExternalReference(Redirect(isolate, function)); 1372 return ExternalReference(Redirect(isolate, function));
(...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after
1646 r2 = r2 - ad; 1664 r2 = r2 - ad;
1647 } 1665 }
1648 delta = ad - r2; 1666 delta = ad - r2;
1649 } while (q1 < delta || (q1 == delta && r1 == 0)); 1667 } while (q1 < delta || (q1 == delta && r1 == 0));
1650 int32_t mul = static_cast<int32_t>(q2 + 1); 1668 int32_t mul = static_cast<int32_t>(q2 + 1);
1651 multiplier_ = (d < 0) ? -mul : mul; 1669 multiplier_ = (d < 0) ? -mul : mul;
1652 shift_ = p - 32; 1670 shift_ = p - 32;
1653 } 1671 }
1654 1672
1655 } } // namespace v8::internal 1673 } } // namespace v8::internal
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698