OLD | NEW |
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 2577 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2588 __ b(eq, if_false); | 2588 __ b(eq, if_false); |
2589 __ ldr(r2, FieldMemOperand(r2, HeapObject::kMapOffset)); | 2589 __ ldr(r2, FieldMemOperand(r2, HeapObject::kMapOffset)); |
2590 __ ldr(r3, ContextOperand(cp, Context::GLOBAL_INDEX)); | 2590 __ ldr(r3, ContextOperand(cp, Context::GLOBAL_INDEX)); |
2591 __ ldr(r3, FieldMemOperand(r3, GlobalObject::kGlobalContextOffset)); | 2591 __ ldr(r3, FieldMemOperand(r3, GlobalObject::kGlobalContextOffset)); |
2592 __ ldr(r3, ContextOperand(r3, Context::STRING_FUNCTION_PROTOTYPE_MAP_INDEX)); | 2592 __ ldr(r3, ContextOperand(r3, Context::STRING_FUNCTION_PROTOTYPE_MAP_INDEX)); |
2593 __ cmp(r2, r3); | 2593 __ cmp(r2, r3); |
2594 __ b(ne, if_false); | 2594 __ b(ne, if_false); |
2595 | 2595 |
2596 // Set the bit in the map to indicate that it has been checked safe for | 2596 // Set the bit in the map to indicate that it has been checked safe for |
2597 // default valueOf and set true result. | 2597 // default valueOf and set true result. |
2598 __ ldrb(r2, FieldMemOperand(r4, Map::kBitField2Offset)); | 2598 __ ldrb(r2, FieldMemOperand(r1, Map::kBitField2Offset)); |
2599 __ orr(r2, r2, Operand(1 << Map::kStringWrapperSafeForDefaultValueOf)); | 2599 __ orr(r2, r2, Operand(1 << Map::kStringWrapperSafeForDefaultValueOf)); |
2600 __ strb(r2, FieldMemOperand(r4, Map::kBitField2Offset)); | 2600 __ strb(r2, FieldMemOperand(r1, Map::kBitField2Offset)); |
2601 __ jmp(if_true); | 2601 __ jmp(if_true); |
2602 | 2602 |
2603 PrepareForBailoutBeforeSplit(TOS_REG, true, if_true, if_false); | 2603 PrepareForBailoutBeforeSplit(TOS_REG, true, if_true, if_false); |
2604 context()->Plug(if_true, if_false); | 2604 context()->Plug(if_true, if_false); |
2605 } | 2605 } |
2606 | 2606 |
2607 | 2607 |
2608 void FullCodeGenerator::EmitIsFunction(ZoneList<Expression*>* args) { | 2608 void FullCodeGenerator::EmitIsFunction(ZoneList<Expression*>* args) { |
2609 ASSERT(args->length() == 1); | 2609 ASSERT(args->length() == 1); |
2610 | 2610 |
(...skipping 1754 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4365 __ mov(r1, Operand(r1, ASR, 1)); // Un-smi-tag value. | 4365 __ mov(r1, Operand(r1, ASR, 1)); // Un-smi-tag value. |
4366 __ add(pc, r1, Operand(masm_->CodeObject())); | 4366 __ add(pc, r1, Operand(masm_->CodeObject())); |
4367 } | 4367 } |
4368 | 4368 |
4369 | 4369 |
4370 #undef __ | 4370 #undef __ |
4371 | 4371 |
4372 } } // namespace v8::internal | 4372 } } // namespace v8::internal |
4373 | 4373 |
4374 #endif // V8_TARGET_ARCH_ARM | 4374 #endif // V8_TARGET_ARCH_ARM |
OLD | NEW |