Ignore:
Timestamp:
Jul 28, 2011, 4:20:25 PM (14 years ago)
Author:
[email protected]
Message:

*_list instructions are only used in one place, where the code is wrong.
https://bugs.webkit.org/show_bug.cgi?id=65348

Reviewed by Darin Adler.

Simply remove the instructions and all users. Speeds up the interpreter
slightly due to code motion, but otherwise has no effect (because none
of the _list instructions are ever used).

  • bytecode/CodeBlock.cpp:

(JSC::isPropertyAccess):
(JSC::CodeBlock::dump):
(JSC::CodeBlock::visitStructures):

  • bytecode/Instruction.h:
  • bytecode/Opcode.h:
  • interpreter/Interpreter.cpp:

(JSC::Interpreter::privateExecute):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/bytecode/CodeBlock.cpp

    r91869 r91952  
    201201        case op_get_by_id_proto:
    202202        case op_get_by_id_chain:
    203         case op_get_by_id_self_list:
    204         case op_get_by_id_proto_list:
    205203        case op_put_by_id_transition:
    206204        case op_put_by_id_replace:
     
    814812            break;
    815813        }
    816         case op_get_by_id_self_list: {
    817             printGetByIdOp(exec, location, it, "get_by_id_self_list");
    818             break;
    819         }
    820814        case op_get_by_id_proto: {
    821815            printGetByIdOp(exec, location, it, "get_by_id_proto");
    822816            break;
    823817        }
    824         case op_get_by_id_proto_list: {
    825             printGetByIdOp(exec, location, it, "op_get_by_id_proto_list");
    826             break;
    827         }
    828818        case op_get_by_id_chain: {
    829819            printGetByIdOp(exec, location, it, "get_by_id_chain");
     
    834824            break;
    835825        }
    836         case op_get_by_id_getter_self_list: {
    837             printGetByIdOp(exec, location, it, "get_by_id_getter_self_list");
    838             break;
    839         }
    840826        case op_get_by_id_getter_proto: {
    841827            printGetByIdOp(exec, location, it, "get_by_id_getter_proto");
    842828            break;
    843829        }
    844         case op_get_by_id_getter_proto_list: {
    845             printGetByIdOp(exec, location, it, "get_by_id_getter_proto_list");
    846             break;
    847         }
    848830        case op_get_by_id_getter_chain: {
    849831            printGetByIdOp(exec, location, it, "get_by_id_getter_chain");
     
    854836            break;
    855837        }
    856         case op_get_by_id_custom_self_list: {
    857             printGetByIdOp(exec, location, it, "get_by_id_custom_self_list");
    858             break;
    859         }
    860838        case op_get_by_id_custom_proto: {
    861839            printGetByIdOp(exec, location, it, "get_by_id_custom_proto");
    862             break;
    863         }
    864         case op_get_by_id_custom_proto_list: {
    865             printGetByIdOp(exec, location, it, "get_by_id_custom_proto_list");
    866840            break;
    867841        }
     
    15071481        return;
    15081482    }
    1509     if ((vPC[0].u.opcode == interpreter->getOpcode(op_get_by_id_proto_list))
    1510         || (vPC[0].u.opcode == interpreter->getOpcode(op_get_by_id_self_list))
    1511         || (vPC[0].u.opcode == interpreter->getOpcode(op_get_by_id_getter_proto_list))
    1512         || (vPC[0].u.opcode == interpreter->getOpcode(op_get_by_id_getter_self_list))
    1513         || (vPC[0].u.opcode == interpreter->getOpcode(op_get_by_id_custom_proto_list))
    1514         || (vPC[0].u.opcode == interpreter->getOpcode(op_get_by_id_custom_self_list))) {
    1515         PolymorphicAccessStructureList* polymorphicStructures = vPC[4].u.polymorphicStructures;
    1516         polymorphicStructures->visitAggregate(visitor, vPC[5].u.operand);
    1517         delete polymorphicStructures;
    1518         return;
    1519     }
    15201483
    15211484    // These instructions don't ref their Structures.
Note: See TracChangeset for help on using the changeset viewer.