Home | History | Annotate | Download | only in mips
      1 // Copyright 2011 the V8 project authors. All rights reserved.
      2 // Redistribution and use in source and binary forms, with or without
      3 // modification, are permitted provided that the following conditions are
      4 // met:
      5 //
      6 //     * Redistributions of source code must retain the above copyright
      7 //       notice, this list of conditions and the following disclaimer.
      8 //     * Redistributions in binary form must reproduce the above
      9 //       copyright notice, this list of conditions and the following
     10 //       disclaimer in the documentation and/or other materials provided
     11 //       with the distribution.
     12 //     * Neither the name of Google Inc. nor the names of its
     13 //       contributors may be used to endorse or promote products derived
     14 //       from this software without specific prior written permission.
     15 //
     16 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     17 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     18 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
     19 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     20 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
     21 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
     22 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     23 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     24 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     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.
     27 
     28 #include "v8.h"
     29 
     30 #if defined(V8_TARGET_ARCH_MIPS)
     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"
     41 #include "codegen-inl.h"
     42 #include "compiler.h"
     43 #include "debug.h"
     44 #include "full-codegen.h"
     45 #include "parser.h"
     46 #include "scopes.h"
     47 #include "stub-cache.h"
     48 
     49 #include "mips/code-stubs-mips.h"
     50 
     51 namespace v8 {
     52 namespace internal {
     53 
     54 #define __ ACCESS_MASM(masm_)
     55 
     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) {
     71   UNIMPLEMENTED_MIPS();
     72 }
     73 
     74 
     75 void FullCodeGenerator::ClearAccumulator() {
     76   UNIMPLEMENTED_MIPS();
     77 }
     78 
     79 
     80 void FullCodeGenerator::EmitStackCheck(IterationStatement* stmt) {
     81   UNIMPLEMENTED_MIPS();
     82 }
     83 
     84 
     85 void FullCodeGenerator::EmitReturnSequence() {
     86   UNIMPLEMENTED_MIPS();
     87 }
     88 
     89 
     90 void FullCodeGenerator::EffectContext::Plug(Slot* slot) const {
     91   UNIMPLEMENTED_MIPS();
     92 }
     93 
     94 
     95 void FullCodeGenerator::AccumulatorValueContext::Plug(Slot* slot) const {
     96   UNIMPLEMENTED_MIPS();
     97 }
     98 
     99 
    100 void FullCodeGenerator::StackValueContext::Plug(Slot* slot) const {
    101   UNIMPLEMENTED_MIPS();
    102 }
    103 
    104 
    105 void FullCodeGenerator::TestContext::Plug(Slot* slot) const {
    106   UNIMPLEMENTED_MIPS();
    107 }
    108 
    109 
    110 void FullCodeGenerator::EffectContext::Plug(Heap::RootListIndex index) const {
    111   UNIMPLEMENTED_MIPS();
    112 }
    113 
    114 
    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) {
    242   UNIMPLEMENTED_MIPS();
    243 }
    244 
    245 
    246 MemOperand FullCodeGenerator::EmitSlotSearch(Slot* slot, Register scratch) {
    247   UNIMPLEMENTED_MIPS();
    248   return MemOperand(zero_reg, 0);
    249 }
    250 
    251 
    252 void FullCodeGenerator::Move(Register destination, Slot* source) {
    253   UNIMPLEMENTED_MIPS();
    254 }
    255 
    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 
    265 void FullCodeGenerator::Move(Slot* dst,
    266                              Register src,
    267                              Register scratch1,
    268                              Register scratch2) {
    269   UNIMPLEMENTED_MIPS();
    270 }
    271 
    272 
    273 void FullCodeGenerator::EmitDeclaration(Variable* variable,
    274                                         Variable::Mode mode,
    275                                         FunctionLiteral* function) {
    276   UNIMPLEMENTED_MIPS();
    277 }
    278 
    279 
    280 void FullCodeGenerator::VisitDeclaration(Declaration* decl) {
    281   UNIMPLEMENTED_MIPS();
    282 }
    283 
    284 
    285 void FullCodeGenerator::DeclareGlobals(Handle<FixedArray> pairs) {
    286   UNIMPLEMENTED_MIPS();
    287 }
    288 
    289 
    290 void FullCodeGenerator::VisitSwitchStatement(SwitchStatement* stmt) {
    291   UNIMPLEMENTED_MIPS();
    292 }
    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 
    305 
    306 void FullCodeGenerator::VisitVariableProxy(VariableProxy* expr) {
    307   UNIMPLEMENTED_MIPS();
    308 }
    309 
    310 
    311 MemOperand FullCodeGenerator::ContextSlotOperandCheckExtensions(
    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) {
    324   UNIMPLEMENTED_MIPS();
    325 }
    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 
    340 
    341 void FullCodeGenerator::VisitRegExpLiteral(RegExpLiteral* expr) {
    342   UNIMPLEMENTED_MIPS();
    343 }
    344 
    345 
    346 void FullCodeGenerator::VisitObjectLiteral(ObjectLiteral* expr) {
    347   UNIMPLEMENTED_MIPS();
    348 }
    349 
    350 
    351 void FullCodeGenerator::VisitArrayLiteral(ArrayLiteral* expr) {
    352   UNIMPLEMENTED_MIPS();
    353 }
    354 
    355 
    356 void FullCodeGenerator::VisitAssignment(Assignment* expr) {
    357   UNIMPLEMENTED_MIPS();
    358 }
    359 
    360 
    361 void FullCodeGenerator::EmitNamedPropertyLoad(Property* prop) {
    362   UNIMPLEMENTED_MIPS();
    363 }
    364 
    365 
    366 void FullCodeGenerator::EmitKeyedPropertyLoad(Property* prop) {
    367   UNIMPLEMENTED_MIPS();
    368 }
    369 
    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 
    380 void FullCodeGenerator::EmitBinaryOp(Token::Value op,
    381                                      OverwriteMode mode) {
    382   UNIMPLEMENTED_MIPS();
    383 }
    384 
    385 
    386 void FullCodeGenerator::EmitAssignment(Expression* expr, int bailout_ast_id) {
    387   UNIMPLEMENTED_MIPS();
    388 }
    389 
    390 
    391 void FullCodeGenerator::EmitVariableAssignment(Variable* var,
    392                                                Token::Value op) {
    393   UNIMPLEMENTED_MIPS();
    394 }
    395 
    396 
    397 void FullCodeGenerator::EmitNamedPropertyAssignment(Assignment* expr) {
    398   UNIMPLEMENTED_MIPS();
    399 }
    400 
    401 
    402 void FullCodeGenerator::EmitKeyedPropertyAssignment(Assignment* expr) {
    403   UNIMPLEMENTED_MIPS();
    404 }
    405 
    406 
    407 void FullCodeGenerator::VisitProperty(Property* expr) {
    408   UNIMPLEMENTED_MIPS();
    409 }
    410 
    411 
    412 void FullCodeGenerator::EmitCallWithIC(Call* expr,
    413                                        Handle<Object> name,
    414                                        RelocInfo::Mode mode) {
    415   UNIMPLEMENTED_MIPS();
    416 }
    417 
    418 
    419 void FullCodeGenerator::EmitKeyedCallWithIC(Call* expr,
    420                                             Expression* key,
    421                                             RelocInfo::Mode mode) {
    422   UNIMPLEMENTED_MIPS();
    423 }
    424 
    425 
    426 void FullCodeGenerator::EmitCallWithStub(Call* expr) {
    427   UNIMPLEMENTED_MIPS();
    428 }
    429 
    430 
    431 void FullCodeGenerator::VisitCall(Call* expr) {
    432   UNIMPLEMENTED_MIPS();
    433 }
    434 
    435 
    436 void FullCodeGenerator::VisitCallNew(CallNew* expr) {
    437   UNIMPLEMENTED_MIPS();
    438 }
    439 
    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 
    637 void FullCodeGenerator::VisitCallRuntime(CallRuntime* expr) {
    638   UNIMPLEMENTED_MIPS();
    639 }
    640 
    641 
    642 void FullCodeGenerator::VisitUnaryOperation(UnaryOperation* expr) {
    643   UNIMPLEMENTED_MIPS();
    644 }
    645 
    646 
    647 void FullCodeGenerator::VisitCountOperation(CountOperation* expr) {
    648   UNIMPLEMENTED_MIPS();
    649 }
    650 
    651 
    652 void FullCodeGenerator::VisitForTypeofValue(Expression* expr) {
    653   UNIMPLEMENTED_MIPS();
    654 }
    655 
    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 
    668 void FullCodeGenerator::VisitCompareOperation(CompareOperation* expr) {
    669   UNIMPLEMENTED_MIPS();
    670 }
    671 
    672 
    673 void FullCodeGenerator::VisitCompareToNull(CompareToNull* expr) {
    674   UNIMPLEMENTED_MIPS();
    675 }
    676 
    677 
    678 void FullCodeGenerator::VisitThisFunction(ThisFunction* expr) {
    679   UNIMPLEMENTED_MIPS();
    680 }
    681 
    682 
    683 Register FullCodeGenerator::result_register() {
    684   UNIMPLEMENTED_MIPS();
    685   return v0;
    686 }
    687 
    688 
    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 }
    698 
    699 
    700 void FullCodeGenerator::StoreToFrameField(int frame_offset, Register value) {
    701   UNIMPLEMENTED_MIPS();
    702 }
    703 
    704 
    705 void FullCodeGenerator::LoadContextField(Register dst, int context_index) {
    706   UNIMPLEMENTED_MIPS();
    707 }
    708 
    709 
    710 // ----------------------------------------------------------------------------
    711 // Non-local control flow support.
    712 
    713 void FullCodeGenerator::EnterFinallyBlock() {
    714   UNIMPLEMENTED_MIPS();
    715 }
    716 
    717 
    718 void FullCodeGenerator::ExitFinallyBlock() {
    719   UNIMPLEMENTED_MIPS();
    720 }
    721 
    722 
    723 #undef __
    724 
    725 } }  // namespace v8::internal
    726 
    727 #endif  // V8_TARGET_ARCH_MIPS
    728