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

Side by Side Diff: src/mips/macro-assembler-mips.h

Issue 7239020: MIPS: Long branch implementation and trampoline improvement. (Closed)
Patch Set: Update per comments, refactor buffer-growth-blocking for internal refs. Created 9 years, 5 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 | « src/mips/constants-mips.h ('k') | src/mips/macro-assembler-mips.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 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 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 1087 matching lines...) Expand 10 before | Expand all | Expand 10 after
1098 Label* failure); 1098 Label* failure);
1099 1099
1100 void LoadInstanceDescriptors(Register map, Register descriptors); 1100 void LoadInstanceDescriptors(Register map, Register descriptors);
1101 1101
1102 private: 1102 private:
1103 void CallCFunctionHelper(Register function, 1103 void CallCFunctionHelper(Register function,
1104 ExternalReference function_reference, 1104 ExternalReference function_reference,
1105 Register scratch, 1105 Register scratch,
1106 int num_arguments); 1106 int num_arguments);
1107 1107
1108 void BranchShort(int16_t offset, BranchDelaySlot bdslot = PROTECT);
1109 void BranchShort(int16_t offset, Condition cond, Register rs,
1110 const Operand& rt,
1111 BranchDelaySlot bdslot = PROTECT);
1112 void BranchShort(Label* L, BranchDelaySlot bdslot = PROTECT);
1113 void BranchShort(Label* L, Condition cond, Register rs,
1114 const Operand& rt,
1115 BranchDelaySlot bdslot = PROTECT);
1116 void BranchAndLinkShort(int16_t offset, BranchDelaySlot bdslot = PROTECT);
1117 void BranchAndLinkShort(int16_t offset, Condition cond, Register rs,
1118 const Operand& rt,
1119 BranchDelaySlot bdslot = PROTECT);
1120 void BranchAndLinkShort(Label* L, BranchDelaySlot bdslot = PROTECT);
1121 void BranchAndLinkShort(Label* L, Condition cond, Register rs,
1122 const Operand& rt,
1123 BranchDelaySlot bdslot = PROTECT);
1124 void J(Label* L, BranchDelaySlot bdslot);
1125 void Jr(Label* L, BranchDelaySlot bdslot);
1126 void Jalr(Label* L, BranchDelaySlot bdslot);
1127
1108 void Jump(intptr_t target, RelocInfo::Mode rmode, 1128 void Jump(intptr_t target, RelocInfo::Mode rmode,
1109 BranchDelaySlot bd = PROTECT); 1129 BranchDelaySlot bd = PROTECT);
1110 void Jump(intptr_t target, RelocInfo::Mode rmode, Condition cond = cc_always, 1130 void Jump(intptr_t target, RelocInfo::Mode rmode, Condition cond = cc_always,
1111 Register r1 = zero_reg, const Operand& r2 = Operand(zero_reg), 1131 Register r1 = zero_reg, const Operand& r2 = Operand(zero_reg),
1112 BranchDelaySlot bd = PROTECT); 1132 BranchDelaySlot bd = PROTECT);
1113 void Call(intptr_t target, RelocInfo::Mode rmode, 1133 void Call(intptr_t target, RelocInfo::Mode rmode,
1114 BranchDelaySlot bd = PROTECT); 1134 BranchDelaySlot bd = PROTECT);
1115 void Call(intptr_t target, RelocInfo::Mode rmode, Condition cond = cc_always, 1135 void Call(intptr_t target, RelocInfo::Mode rmode, Condition cond = cc_always,
1116 Register r1 = zero_reg, const Operand& r2 = Operand(zero_reg), 1136 Register r1 = zero_reg, const Operand& r2 = Operand(zero_reg),
1117 BranchDelaySlot bd = PROTECT); 1137 BranchDelaySlot bd = PROTECT);
(...skipping 20 matching lines...) Expand all
1138 Register length, 1158 Register length,
1139 Heap::RootListIndex map_index, 1159 Heap::RootListIndex map_index,
1140 Register scratch1, 1160 Register scratch1,
1141 Register scratch2); 1161 Register scratch2);
1142 1162
1143 // Compute memory operands for safepoint stack slots. 1163 // Compute memory operands for safepoint stack slots.
1144 static int SafepointRegisterStackIndex(int reg_code); 1164 static int SafepointRegisterStackIndex(int reg_code);
1145 MemOperand SafepointRegisterSlot(Register reg); 1165 MemOperand SafepointRegisterSlot(Register reg);
1146 MemOperand SafepointRegistersAndDoublesSlot(Register reg); 1166 MemOperand SafepointRegistersAndDoublesSlot(Register reg);
1147 1167
1168 bool UseAbsoluteCodePointers();
1169
1148 bool generating_stub_; 1170 bool generating_stub_;
1149 bool allow_stub_calls_; 1171 bool allow_stub_calls_;
1150 // This handle will be patched with the code object on installation. 1172 // This handle will be patched with the code object on installation.
1151 Handle<Object> code_object_; 1173 Handle<Object> code_object_;
1152 1174
1153 // Needs access to SafepointRegisterStackIndex for optimized frame 1175 // Needs access to SafepointRegisterStackIndex for optimized frame
1154 // traversal. 1176 // traversal.
1155 friend class OptimizedFrame; 1177 friend class OptimizedFrame;
1156 }; 1178 };
1157 1179
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
1222 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x) 1244 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x)
1223 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) 1245 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__)
1224 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> 1246 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm->
1225 #else 1247 #else
1226 #define ACCESS_MASM(masm) masm-> 1248 #define ACCESS_MASM(masm) masm->
1227 #endif 1249 #endif
1228 1250
1229 } } // namespace v8::internal 1251 } } // namespace v8::internal
1230 1252
1231 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ 1253 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_
OLDNEW
« no previous file with comments | « src/mips/constants-mips.h ('k') | src/mips/macro-assembler-mips.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698