OLD | NEW |
1 // Copyright 2010 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 |
11 // with the distribution. | 11 // with the distribution. |
(...skipping 10 matching lines...) Expand all Loading... |
22 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 22 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
23 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 23 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
24 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 24 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
25 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 25 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
26 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 26 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
27 | 27 |
28 #include "v8.h" | 28 #include "v8.h" |
29 | 29 |
30 #if defined(V8_TARGET_ARCH_MIPS) | 30 #if defined(V8_TARGET_ARCH_MIPS) |
31 | 31 |
| 32 // Note on Mips implementation: |
| 33 // |
| 34 // The result_register() for mips is the 'v0' register, which is defined |
| 35 // by the ABI to contain function return values. However, the first |
| 36 // parameter to a function is defined to be 'a0'. So there are many |
| 37 // places where we have to move a previous result in v0 to a0 for the |
| 38 // next call: mov(a0, v0). This is not needed on the other architectures. |
| 39 |
| 40 #include "code-stubs.h" |
32 #include "codegen-inl.h" | 41 #include "codegen-inl.h" |
33 #include "compiler.h" | 42 #include "compiler.h" |
34 #include "debug.h" | 43 #include "debug.h" |
35 #include "full-codegen.h" | 44 #include "full-codegen.h" |
36 #include "parser.h" | 45 #include "parser.h" |
| 46 #include "scopes.h" |
| 47 #include "stub-cache.h" |
| 48 |
| 49 #include "mips/code-stubs-mips.h" |
37 | 50 |
38 namespace v8 { | 51 namespace v8 { |
39 namespace internal { | 52 namespace internal { |
40 | 53 |
41 #define __ ACCESS_MASM(masm_) | 54 #define __ ACCESS_MASM(masm_) |
42 | 55 |
43 void FullCodeGenerator::Generate(CompilationInfo* info, Mode mode) { | 56 // Generate code for a JS function. On entry to the function the receiver |
| 57 // and arguments have been pushed on the stack left to right. The actual |
| 58 // argument count matches the formal parameter count expected by the |
| 59 // function. |
| 60 // |
| 61 // The live registers are: |
| 62 // o a1: the JS function object being called (ie, ourselves) |
| 63 // o cp: our context |
| 64 // o fp: our caller's frame pointer |
| 65 // o sp: stack pointer |
| 66 // o ra: return address |
| 67 // |
| 68 // The function builds a JS frame. Please see JavaScriptFrameConstants in |
| 69 // frames-mips.h for its layout. |
| 70 void FullCodeGenerator::Generate(CompilationInfo* info) { |
44 UNIMPLEMENTED_MIPS(); | 71 UNIMPLEMENTED_MIPS(); |
45 } | 72 } |
46 | 73 |
| 74 |
| 75 void FullCodeGenerator::ClearAccumulator() { |
| 76 UNIMPLEMENTED_MIPS(); |
| 77 } |
| 78 |
| 79 |
| 80 void FullCodeGenerator::EmitStackCheck(IterationStatement* stmt) { |
| 81 UNIMPLEMENTED_MIPS(); |
| 82 } |
| 83 |
47 | 84 |
48 void FullCodeGenerator::EmitReturnSequence() { | 85 void FullCodeGenerator::EmitReturnSequence() { |
49 UNIMPLEMENTED_MIPS(); | 86 UNIMPLEMENTED_MIPS(); |
50 } | 87 } |
51 | 88 |
52 | 89 |
53 void FullCodeGenerator::Apply(Expression::Context context, Register reg) { | 90 void FullCodeGenerator::EffectContext::Plug(Slot* slot) const { |
54 UNIMPLEMENTED_MIPS(); | 91 UNIMPLEMENTED_MIPS(); |
55 } | 92 } |
56 | 93 |
57 | 94 |
58 void FullCodeGenerator::Apply(Expression::Context context, Slot* slot) { | 95 void FullCodeGenerator::AccumulatorValueContext::Plug(Slot* slot) const { |
59 UNIMPLEMENTED_MIPS(); | |
60 } | |
61 | |
62 void FullCodeGenerator::Apply(Expression::Context context, Literal* lit) { | |
63 UNIMPLEMENTED_MIPS(); | 96 UNIMPLEMENTED_MIPS(); |
64 } | 97 } |
65 | 98 |
66 | 99 |
67 void FullCodeGenerator::ApplyTOS(Expression::Context context) { | 100 void FullCodeGenerator::StackValueContext::Plug(Slot* slot) const { |
68 UNIMPLEMENTED_MIPS(); | 101 UNIMPLEMENTED_MIPS(); |
69 } | 102 } |
70 | 103 |
71 | 104 |
72 void FullCodeGenerator::DropAndApply(int count, | 105 void FullCodeGenerator::TestContext::Plug(Slot* slot) const { |
73 Expression::Context context, | |
74 Register reg) { | |
75 UNIMPLEMENTED_MIPS(); | 106 UNIMPLEMENTED_MIPS(); |
76 } | 107 } |
77 | 108 |
78 | 109 |
79 void FullCodeGenerator::Apply(Expression::Context context, | 110 void FullCodeGenerator::EffectContext::Plug(Heap::RootListIndex index) const { |
80 Label* materialize_true, | |
81 Label* materialize_false) { | |
82 UNIMPLEMENTED_MIPS(); | 111 UNIMPLEMENTED_MIPS(); |
83 } | 112 } |
84 | 113 |
85 | 114 |
86 void FullCodeGenerator::DoTest(Expression::Context context) { | 115 void FullCodeGenerator::AccumulatorValueContext::Plug( |
| 116 Heap::RootListIndex index) const { |
| 117 UNIMPLEMENTED_MIPS(); |
| 118 } |
| 119 |
| 120 |
| 121 void FullCodeGenerator::StackValueContext::Plug( |
| 122 Heap::RootListIndex index) const { |
| 123 UNIMPLEMENTED_MIPS(); |
| 124 } |
| 125 |
| 126 |
| 127 void FullCodeGenerator::TestContext::Plug(Heap::RootListIndex index) const { |
| 128 UNIMPLEMENTED_MIPS(); |
| 129 } |
| 130 |
| 131 |
| 132 void FullCodeGenerator::EffectContext::Plug(Handle<Object> lit) const { |
| 133 UNIMPLEMENTED_MIPS(); |
| 134 } |
| 135 |
| 136 |
| 137 void FullCodeGenerator::AccumulatorValueContext::Plug( |
| 138 Handle<Object> lit) const { |
| 139 UNIMPLEMENTED_MIPS(); |
| 140 } |
| 141 |
| 142 |
| 143 void FullCodeGenerator::StackValueContext::Plug(Handle<Object> lit) const { |
| 144 UNIMPLEMENTED_MIPS(); |
| 145 } |
| 146 |
| 147 |
| 148 void FullCodeGenerator::TestContext::Plug(Handle<Object> lit) const { |
| 149 UNIMPLEMENTED_MIPS(); |
| 150 } |
| 151 |
| 152 |
| 153 void FullCodeGenerator::EffectContext::DropAndPlug(int count, |
| 154 Register reg) const { |
| 155 UNIMPLEMENTED_MIPS(); |
| 156 } |
| 157 |
| 158 |
| 159 void FullCodeGenerator::AccumulatorValueContext::DropAndPlug( |
| 160 int count, |
| 161 Register reg) const { |
| 162 UNIMPLEMENTED_MIPS(); |
| 163 } |
| 164 |
| 165 |
| 166 void FullCodeGenerator::StackValueContext::DropAndPlug(int count, |
| 167 Register reg) const { |
| 168 UNIMPLEMENTED_MIPS(); |
| 169 } |
| 170 |
| 171 |
| 172 void FullCodeGenerator::TestContext::DropAndPlug(int count, |
| 173 Register reg) const { |
| 174 UNIMPLEMENTED_MIPS(); |
| 175 } |
| 176 |
| 177 |
| 178 void FullCodeGenerator::EffectContext::Plug(Label* materialize_true, |
| 179 Label* materialize_false) const { |
| 180 UNIMPLEMENTED_MIPS(); |
| 181 } |
| 182 |
| 183 |
| 184 void FullCodeGenerator::AccumulatorValueContext::Plug( |
| 185 Label* materialize_true, |
| 186 Label* materialize_false) const { |
| 187 UNIMPLEMENTED_MIPS(); |
| 188 } |
| 189 |
| 190 |
| 191 void FullCodeGenerator::StackValueContext::Plug( |
| 192 Label* materialize_true, |
| 193 Label* materialize_false) const { |
| 194 UNIMPLEMENTED_MIPS(); |
| 195 } |
| 196 |
| 197 |
| 198 void FullCodeGenerator::TestContext::Plug(Label* materialize_true, |
| 199 Label* materialize_false) const { |
| 200 UNIMPLEMENTED_MIPS(); |
| 201 } |
| 202 |
| 203 |
| 204 void FullCodeGenerator::EffectContext::Plug(bool flag) const { |
| 205 UNIMPLEMENTED_MIPS(); |
| 206 } |
| 207 |
| 208 |
| 209 void FullCodeGenerator::AccumulatorValueContext::Plug(bool flag) const { |
| 210 UNIMPLEMENTED_MIPS(); |
| 211 } |
| 212 |
| 213 |
| 214 void FullCodeGenerator::StackValueContext::Plug(bool flag) const { |
| 215 UNIMPLEMENTED_MIPS(); |
| 216 } |
| 217 |
| 218 |
| 219 void FullCodeGenerator::TestContext::Plug(bool flag) const { |
| 220 UNIMPLEMENTED_MIPS(); |
| 221 } |
| 222 |
| 223 |
| 224 void FullCodeGenerator::DoTest(Label* if_true, |
| 225 Label* if_false, |
| 226 Label* fall_through) { |
| 227 UNIMPLEMENTED_MIPS(); |
| 228 } |
| 229 |
| 230 |
| 231 // Original prototype for mips, needs arch-indep change. Leave out for now. |
| 232 // void FullCodeGenerator::Split(Condition cc, |
| 233 // Register lhs, |
| 234 // const Operand& rhs, |
| 235 // Label* if_true, |
| 236 // Label* if_false, |
| 237 // Label* fall_through) { |
| 238 void FullCodeGenerator::Split(Condition cc, |
| 239 Label* if_true, |
| 240 Label* if_false, |
| 241 Label* fall_through) { |
87 UNIMPLEMENTED_MIPS(); | 242 UNIMPLEMENTED_MIPS(); |
88 } | 243 } |
89 | 244 |
90 | 245 |
91 MemOperand FullCodeGenerator::EmitSlotSearch(Slot* slot, Register scratch) { | 246 MemOperand FullCodeGenerator::EmitSlotSearch(Slot* slot, Register scratch) { |
92 UNIMPLEMENTED_MIPS(); | 247 UNIMPLEMENTED_MIPS(); |
93 return MemOperand(zero_reg, 0); // UNIMPLEMENTED RETURN | 248 return MemOperand(zero_reg, 0); |
94 } | 249 } |
95 | 250 |
96 | 251 |
97 void FullCodeGenerator::Move(Register destination, Slot* source) { | 252 void FullCodeGenerator::Move(Register destination, Slot* source) { |
98 UNIMPLEMENTED_MIPS(); | 253 UNIMPLEMENTED_MIPS(); |
99 } | 254 } |
100 | 255 |
101 | 256 |
| 257 void FullCodeGenerator::PrepareForBailoutBeforeSplit(State state, |
| 258 bool should_normalize, |
| 259 Label* if_true, |
| 260 Label* if_false) { |
| 261 UNIMPLEMENTED_MIPS(); |
| 262 } |
| 263 |
| 264 |
102 void FullCodeGenerator::Move(Slot* dst, | 265 void FullCodeGenerator::Move(Slot* dst, |
103 Register src, | 266 Register src, |
104 Register scratch1, | 267 Register scratch1, |
105 Register scratch2) { | 268 Register scratch2) { |
106 UNIMPLEMENTED_MIPS(); | 269 UNIMPLEMENTED_MIPS(); |
107 } | 270 } |
108 | 271 |
109 | 272 |
| 273 void FullCodeGenerator::EmitDeclaration(Variable* variable, |
| 274 Variable::Mode mode, |
| 275 FunctionLiteral* function) { |
| 276 UNIMPLEMENTED_MIPS(); |
| 277 } |
| 278 |
| 279 |
110 void FullCodeGenerator::VisitDeclaration(Declaration* decl) { | 280 void FullCodeGenerator::VisitDeclaration(Declaration* decl) { |
111 UNIMPLEMENTED_MIPS(); | 281 UNIMPLEMENTED_MIPS(); |
112 } | 282 } |
113 | 283 |
114 | 284 |
115 void FullCodeGenerator::DeclareGlobals(Handle<FixedArray> pairs) { | 285 void FullCodeGenerator::DeclareGlobals(Handle<FixedArray> pairs) { |
116 UNIMPLEMENTED_MIPS(); | 286 UNIMPLEMENTED_MIPS(); |
117 } | 287 } |
118 | 288 |
119 | 289 |
120 void FullCodeGenerator::VisitFunctionLiteral(FunctionLiteral* expr) { | 290 void FullCodeGenerator::VisitSwitchStatement(SwitchStatement* stmt) { |
121 UNIMPLEMENTED_MIPS(); | 291 UNIMPLEMENTED_MIPS(); |
122 } | 292 } |
123 | 293 |
| 294 |
| 295 void FullCodeGenerator::VisitForInStatement(ForInStatement* stmt) { |
| 296 UNIMPLEMENTED_MIPS(); |
| 297 } |
| 298 |
| 299 |
| 300 void FullCodeGenerator::EmitNewClosure(Handle<SharedFunctionInfo> info, |
| 301 bool pretenure) { |
| 302 UNIMPLEMENTED_MIPS(); |
| 303 } |
| 304 |
124 | 305 |
125 void FullCodeGenerator::VisitVariableProxy(VariableProxy* expr) { | 306 void FullCodeGenerator::VisitVariableProxy(VariableProxy* expr) { |
126 UNIMPLEMENTED_MIPS(); | 307 UNIMPLEMENTED_MIPS(); |
127 } | 308 } |
128 | 309 |
129 | 310 |
130 void FullCodeGenerator::EmitVariableLoad(Variable* var, | 311 MemOperand FullCodeGenerator::ContextSlotOperandCheckExtensions( |
131 Expression::Context context) { | 312 Slot* slot, |
| 313 Label* slow) { |
| 314 UNIMPLEMENTED_MIPS(); |
| 315 return MemOperand(zero_reg, 0); |
| 316 } |
| 317 |
| 318 |
| 319 void FullCodeGenerator::EmitDynamicLoadFromSlotFastCase( |
| 320 Slot* slot, |
| 321 TypeofState typeof_state, |
| 322 Label* slow, |
| 323 Label* done) { |
132 UNIMPLEMENTED_MIPS(); | 324 UNIMPLEMENTED_MIPS(); |
133 } | 325 } |
134 | 326 |
| 327 |
| 328 void FullCodeGenerator::EmitLoadGlobalSlotCheckExtensions( |
| 329 Slot* slot, |
| 330 TypeofState typeof_state, |
| 331 Label* slow) { |
| 332 UNIMPLEMENTED_MIPS(); |
| 333 } |
| 334 |
| 335 |
| 336 void FullCodeGenerator::EmitVariableLoad(Variable* var) { |
| 337 UNIMPLEMENTED_MIPS(); |
| 338 } |
| 339 |
135 | 340 |
136 void FullCodeGenerator::VisitRegExpLiteral(RegExpLiteral* expr) { | 341 void FullCodeGenerator::VisitRegExpLiteral(RegExpLiteral* expr) { |
137 UNIMPLEMENTED_MIPS(); | 342 UNIMPLEMENTED_MIPS(); |
138 } | 343 } |
139 | 344 |
140 | 345 |
141 void FullCodeGenerator::VisitObjectLiteral(ObjectLiteral* expr) { | 346 void FullCodeGenerator::VisitObjectLiteral(ObjectLiteral* expr) { |
142 UNIMPLEMENTED_MIPS(); | 347 UNIMPLEMENTED_MIPS(); |
143 } | 348 } |
144 | 349 |
(...skipping 11 matching lines...) Expand all Loading... |
156 void FullCodeGenerator::EmitNamedPropertyLoad(Property* prop) { | 361 void FullCodeGenerator::EmitNamedPropertyLoad(Property* prop) { |
157 UNIMPLEMENTED_MIPS(); | 362 UNIMPLEMENTED_MIPS(); |
158 } | 363 } |
159 | 364 |
160 | 365 |
161 void FullCodeGenerator::EmitKeyedPropertyLoad(Property* prop) { | 366 void FullCodeGenerator::EmitKeyedPropertyLoad(Property* prop) { |
162 UNIMPLEMENTED_MIPS(); | 367 UNIMPLEMENTED_MIPS(); |
163 } | 368 } |
164 | 369 |
165 | 370 |
| 371 void FullCodeGenerator::EmitInlineSmiBinaryOp(Expression* expr, |
| 372 Token::Value op, |
| 373 OverwriteMode mode, |
| 374 Expression* left, |
| 375 Expression* right) { |
| 376 UNIMPLEMENTED_MIPS(); |
| 377 } |
| 378 |
| 379 |
166 void FullCodeGenerator::EmitBinaryOp(Token::Value op, | 380 void FullCodeGenerator::EmitBinaryOp(Token::Value op, |
167 Expression::Context context) { | 381 OverwriteMode mode) { |
| 382 UNIMPLEMENTED_MIPS(); |
| 383 } |
| 384 |
| 385 |
| 386 void FullCodeGenerator::EmitAssignment(Expression* expr, int bailout_ast_id) { |
168 UNIMPLEMENTED_MIPS(); | 387 UNIMPLEMENTED_MIPS(); |
169 } | 388 } |
170 | 389 |
171 | 390 |
172 void FullCodeGenerator::EmitVariableAssignment(Variable* var, | 391 void FullCodeGenerator::EmitVariableAssignment(Variable* var, |
173 Expression::Context context) { | 392 Token::Value op) { |
174 UNIMPLEMENTED_MIPS(); | 393 UNIMPLEMENTED_MIPS(); |
175 } | 394 } |
176 | 395 |
177 | 396 |
178 void FullCodeGenerator::EmitNamedPropertyAssignment(Assignment* expr) { | 397 void FullCodeGenerator::EmitNamedPropertyAssignment(Assignment* expr) { |
179 UNIMPLEMENTED_MIPS(); | 398 UNIMPLEMENTED_MIPS(); |
180 } | 399 } |
181 | 400 |
182 | 401 |
183 void FullCodeGenerator::EmitKeyedPropertyAssignment(Assignment* expr) { | 402 void FullCodeGenerator::EmitKeyedPropertyAssignment(Assignment* expr) { |
184 UNIMPLEMENTED_MIPS(); | 403 UNIMPLEMENTED_MIPS(); |
185 } | 404 } |
186 | 405 |
187 | 406 |
188 void FullCodeGenerator::VisitProperty(Property* expr) { | 407 void FullCodeGenerator::VisitProperty(Property* expr) { |
189 UNIMPLEMENTED_MIPS(); | 408 UNIMPLEMENTED_MIPS(); |
190 } | 409 } |
191 | 410 |
| 411 |
192 void FullCodeGenerator::EmitCallWithIC(Call* expr, | 412 void FullCodeGenerator::EmitCallWithIC(Call* expr, |
193 Handle<Object> ignored, | 413 Handle<Object> name, |
194 RelocInfo::Mode mode) { | 414 RelocInfo::Mode mode) { |
195 UNIMPLEMENTED_MIPS(); | 415 UNIMPLEMENTED_MIPS(); |
196 } | 416 } |
197 | 417 |
198 | 418 |
| 419 void FullCodeGenerator::EmitKeyedCallWithIC(Call* expr, |
| 420 Expression* key, |
| 421 RelocInfo::Mode mode) { |
| 422 UNIMPLEMENTED_MIPS(); |
| 423 } |
| 424 |
| 425 |
199 void FullCodeGenerator::EmitCallWithStub(Call* expr) { | 426 void FullCodeGenerator::EmitCallWithStub(Call* expr) { |
200 UNIMPLEMENTED_MIPS(); | 427 UNIMPLEMENTED_MIPS(); |
201 } | 428 } |
202 | 429 |
203 | 430 |
204 void FullCodeGenerator::VisitCall(Call* expr) { | 431 void FullCodeGenerator::VisitCall(Call* expr) { |
205 UNIMPLEMENTED_MIPS(); | 432 UNIMPLEMENTED_MIPS(); |
206 } | 433 } |
207 | 434 |
208 | 435 |
209 void FullCodeGenerator::VisitCallNew(CallNew* expr) { | 436 void FullCodeGenerator::VisitCallNew(CallNew* expr) { |
210 UNIMPLEMENTED_MIPS(); | 437 UNIMPLEMENTED_MIPS(); |
211 } | 438 } |
212 | 439 |
213 | 440 |
| 441 void FullCodeGenerator::EmitIsSmi(ZoneList<Expression*>* args) { |
| 442 UNIMPLEMENTED_MIPS(); |
| 443 } |
| 444 |
| 445 |
| 446 void FullCodeGenerator::EmitIsNonNegativeSmi(ZoneList<Expression*>* args) { |
| 447 UNIMPLEMENTED_MIPS(); |
| 448 } |
| 449 |
| 450 |
| 451 void FullCodeGenerator::EmitIsObject(ZoneList<Expression*>* args) { |
| 452 UNIMPLEMENTED_MIPS(); |
| 453 } |
| 454 |
| 455 |
| 456 void FullCodeGenerator::EmitIsSpecObject(ZoneList<Expression*>* args) { |
| 457 UNIMPLEMENTED_MIPS(); |
| 458 } |
| 459 |
| 460 |
| 461 void FullCodeGenerator::EmitIsUndetectableObject(ZoneList<Expression*>* args) { |
| 462 UNIMPLEMENTED_MIPS(); |
| 463 } |
| 464 |
| 465 |
| 466 void FullCodeGenerator::EmitIsStringWrapperSafeForDefaultValueOf( |
| 467 ZoneList<Expression*>* args) { |
| 468 UNIMPLEMENTED_MIPS(); |
| 469 } |
| 470 |
| 471 |
| 472 void FullCodeGenerator::EmitIsFunction(ZoneList<Expression*>* args) { |
| 473 UNIMPLEMENTED_MIPS(); |
| 474 } |
| 475 |
| 476 |
| 477 void FullCodeGenerator::EmitIsArray(ZoneList<Expression*>* args) { |
| 478 UNIMPLEMENTED_MIPS(); |
| 479 } |
| 480 |
| 481 |
| 482 void FullCodeGenerator::EmitIsRegExp(ZoneList<Expression*>* args) { |
| 483 UNIMPLEMENTED_MIPS(); |
| 484 } |
| 485 |
| 486 |
| 487 void FullCodeGenerator::EmitIsConstructCall(ZoneList<Expression*>* args) { |
| 488 UNIMPLEMENTED_MIPS(); |
| 489 } |
| 490 |
| 491 |
| 492 void FullCodeGenerator::EmitObjectEquals(ZoneList<Expression*>* args) { |
| 493 UNIMPLEMENTED_MIPS(); |
| 494 } |
| 495 |
| 496 |
| 497 void FullCodeGenerator::EmitArguments(ZoneList<Expression*>* args) { |
| 498 UNIMPLEMENTED_MIPS(); |
| 499 } |
| 500 |
| 501 |
| 502 void FullCodeGenerator::EmitArgumentsLength(ZoneList<Expression*>* args) { |
| 503 UNIMPLEMENTED_MIPS(); |
| 504 } |
| 505 |
| 506 |
| 507 void FullCodeGenerator::EmitClassOf(ZoneList<Expression*>* args) { |
| 508 UNIMPLEMENTED_MIPS(); |
| 509 } |
| 510 |
| 511 |
| 512 void FullCodeGenerator::EmitLog(ZoneList<Expression*>* args) { |
| 513 UNIMPLEMENTED_MIPS(); |
| 514 } |
| 515 |
| 516 |
| 517 void FullCodeGenerator::EmitRandomHeapNumber(ZoneList<Expression*>* args) { |
| 518 UNIMPLEMENTED_MIPS(); |
| 519 } |
| 520 |
| 521 |
| 522 void FullCodeGenerator::EmitSubString(ZoneList<Expression*>* args) { |
| 523 UNIMPLEMENTED_MIPS(); |
| 524 } |
| 525 |
| 526 |
| 527 void FullCodeGenerator::EmitRegExpExec(ZoneList<Expression*>* args) { |
| 528 UNIMPLEMENTED_MIPS(); |
| 529 } |
| 530 |
| 531 |
| 532 void FullCodeGenerator::EmitValueOf(ZoneList<Expression*>* args) { |
| 533 UNIMPLEMENTED_MIPS(); |
| 534 } |
| 535 |
| 536 |
| 537 void FullCodeGenerator::EmitMathPow(ZoneList<Expression*>* args) { |
| 538 UNIMPLEMENTED_MIPS(); |
| 539 } |
| 540 |
| 541 |
| 542 void FullCodeGenerator::EmitSetValueOf(ZoneList<Expression*>* args) { |
| 543 UNIMPLEMENTED_MIPS(); |
| 544 } |
| 545 |
| 546 |
| 547 void FullCodeGenerator::EmitNumberToString(ZoneList<Expression*>* args) { |
| 548 UNIMPLEMENTED_MIPS(); |
| 549 } |
| 550 |
| 551 |
| 552 void FullCodeGenerator::EmitStringCharFromCode(ZoneList<Expression*>* args) { |
| 553 UNIMPLEMENTED_MIPS(); |
| 554 } |
| 555 |
| 556 |
| 557 void FullCodeGenerator::EmitStringCharCodeAt(ZoneList<Expression*>* args) { |
| 558 UNIMPLEMENTED_MIPS(); |
| 559 } |
| 560 |
| 561 |
| 562 void FullCodeGenerator::EmitStringCharAt(ZoneList<Expression*>* args) { |
| 563 UNIMPLEMENTED_MIPS(); |
| 564 } |
| 565 |
| 566 |
| 567 void FullCodeGenerator::EmitStringAdd(ZoneList<Expression*>* args) { |
| 568 UNIMPLEMENTED_MIPS(); |
| 569 } |
| 570 |
| 571 |
| 572 void FullCodeGenerator::EmitStringCompare(ZoneList<Expression*>* args) { |
| 573 UNIMPLEMENTED_MIPS(); |
| 574 } |
| 575 |
| 576 |
| 577 void FullCodeGenerator::EmitMathSin(ZoneList<Expression*>* args) { |
| 578 UNIMPLEMENTED_MIPS(); |
| 579 } |
| 580 |
| 581 |
| 582 void FullCodeGenerator::EmitMathCos(ZoneList<Expression*>* args) { |
| 583 UNIMPLEMENTED_MIPS(); |
| 584 } |
| 585 |
| 586 |
| 587 void FullCodeGenerator::EmitMathSqrt(ZoneList<Expression*>* args) { |
| 588 UNIMPLEMENTED_MIPS(); |
| 589 } |
| 590 |
| 591 |
| 592 void FullCodeGenerator::EmitMathLog(ZoneList<Expression*>* args) { |
| 593 UNIMPLEMENTED_MIPS(); |
| 594 } |
| 595 |
| 596 |
| 597 void FullCodeGenerator::EmitCallFunction(ZoneList<Expression*>* args) { |
| 598 UNIMPLEMENTED_MIPS(); |
| 599 } |
| 600 |
| 601 |
| 602 void FullCodeGenerator::EmitRegExpConstructResult(ZoneList<Expression*>* args) { |
| 603 UNIMPLEMENTED_MIPS(); |
| 604 } |
| 605 |
| 606 |
| 607 void FullCodeGenerator::EmitSwapElements(ZoneList<Expression*>* args) { |
| 608 UNIMPLEMENTED_MIPS(); |
| 609 } |
| 610 |
| 611 |
| 612 void FullCodeGenerator::EmitGetFromCache(ZoneList<Expression*>* args) { |
| 613 UNIMPLEMENTED_MIPS(); |
| 614 } |
| 615 |
| 616 |
| 617 void FullCodeGenerator::EmitIsRegExpEquivalent(ZoneList<Expression*>* args) { |
| 618 UNIMPLEMENTED_MIPS(); |
| 619 } |
| 620 |
| 621 |
| 622 void FullCodeGenerator::EmitHasCachedArrayIndex(ZoneList<Expression*>* args) { |
| 623 UNIMPLEMENTED_MIPS(); |
| 624 } |
| 625 |
| 626 |
| 627 void FullCodeGenerator::EmitGetCachedArrayIndex(ZoneList<Expression*>* args) { |
| 628 UNIMPLEMENTED_MIPS(); |
| 629 } |
| 630 |
| 631 |
| 632 void FullCodeGenerator::EmitFastAsciiArrayJoin(ZoneList<Expression*>* args) { |
| 633 UNIMPLEMENTED_MIPS(); |
| 634 } |
| 635 |
| 636 |
214 void FullCodeGenerator::VisitCallRuntime(CallRuntime* expr) { | 637 void FullCodeGenerator::VisitCallRuntime(CallRuntime* expr) { |
215 UNIMPLEMENTED_MIPS(); | 638 UNIMPLEMENTED_MIPS(); |
216 } | 639 } |
217 | 640 |
218 | 641 |
219 void FullCodeGenerator::VisitUnaryOperation(UnaryOperation* expr) { | 642 void FullCodeGenerator::VisitUnaryOperation(UnaryOperation* expr) { |
220 UNIMPLEMENTED_MIPS(); | 643 UNIMPLEMENTED_MIPS(); |
221 } | 644 } |
222 | 645 |
223 | 646 |
224 void FullCodeGenerator::VisitCountOperation(CountOperation* expr) { | 647 void FullCodeGenerator::VisitCountOperation(CountOperation* expr) { |
225 UNIMPLEMENTED_MIPS(); | 648 UNIMPLEMENTED_MIPS(); |
226 } | 649 } |
227 | 650 |
228 | 651 |
229 void FullCodeGenerator::VisitBinaryOperation(BinaryOperation* expr) { | 652 void FullCodeGenerator::VisitForTypeofValue(Expression* expr) { |
230 UNIMPLEMENTED_MIPS(); | 653 UNIMPLEMENTED_MIPS(); |
231 } | 654 } |
232 | 655 |
233 | 656 |
| 657 bool FullCodeGenerator::TryLiteralCompare(Token::Value op, |
| 658 Expression* left, |
| 659 Expression* right, |
| 660 Label* if_true, |
| 661 Label* if_false, |
| 662 Label* fall_through) { |
| 663 UNIMPLEMENTED_MIPS(); |
| 664 return false; |
| 665 } |
| 666 |
| 667 |
234 void FullCodeGenerator::VisitCompareOperation(CompareOperation* expr) { | 668 void FullCodeGenerator::VisitCompareOperation(CompareOperation* expr) { |
235 UNIMPLEMENTED_MIPS(); | 669 UNIMPLEMENTED_MIPS(); |
236 } | 670 } |
237 | 671 |
238 | 672 |
| 673 void FullCodeGenerator::VisitCompareToNull(CompareToNull* expr) { |
| 674 UNIMPLEMENTED_MIPS(); |
| 675 } |
| 676 |
| 677 |
239 void FullCodeGenerator::VisitThisFunction(ThisFunction* expr) { | 678 void FullCodeGenerator::VisitThisFunction(ThisFunction* expr) { |
240 UNIMPLEMENTED_MIPS(); | 679 UNIMPLEMENTED_MIPS(); |
241 } | 680 } |
242 | 681 |
243 | 682 |
244 Register FullCodeGenerator::result_register() { return v0; } | 683 Register FullCodeGenerator::result_register() { |
| 684 UNIMPLEMENTED_MIPS(); |
| 685 return v0; |
| 686 } |
245 | 687 |
246 | 688 |
247 Register FullCodeGenerator::context_register() { return cp; } | 689 Register FullCodeGenerator::context_register() { |
| 690 UNIMPLEMENTED_MIPS(); |
| 691 return cp; |
| 692 } |
| 693 |
| 694 |
| 695 void FullCodeGenerator::EmitCallIC(Handle<Code> ic, RelocInfo::Mode mode) { |
| 696 UNIMPLEMENTED_MIPS(); |
| 697 } |
248 | 698 |
249 | 699 |
250 void FullCodeGenerator::StoreToFrameField(int frame_offset, Register value) { | 700 void FullCodeGenerator::StoreToFrameField(int frame_offset, Register value) { |
251 UNIMPLEMENTED_MIPS(); | 701 UNIMPLEMENTED_MIPS(); |
252 } | 702 } |
253 | 703 |
254 | 704 |
255 void FullCodeGenerator::LoadContextField(Register dst, int context_index) { | 705 void FullCodeGenerator::LoadContextField(Register dst, int context_index) { |
256 UNIMPLEMENTED_MIPS(); | 706 UNIMPLEMENTED_MIPS(); |
257 } | 707 } |
(...skipping 10 matching lines...) Expand all Loading... |
268 void FullCodeGenerator::ExitFinallyBlock() { | 718 void FullCodeGenerator::ExitFinallyBlock() { |
269 UNIMPLEMENTED_MIPS(); | 719 UNIMPLEMENTED_MIPS(); |
270 } | 720 } |
271 | 721 |
272 | 722 |
273 #undef __ | 723 #undef __ |
274 | 724 |
275 } } // namespace v8::internal | 725 } } // namespace v8::internal |
276 | 726 |
277 #endif // V8_TARGET_ARCH_MIPS | 727 #endif // V8_TARGET_ARCH_MIPS |
OLD | NEW |