OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 6797 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6808 __ Branch(&miss, ne, a2, Operand(known_map_)); | 6808 __ Branch(&miss, ne, a2, Operand(known_map_)); |
6809 __ Branch(&miss, ne, a3, Operand(known_map_)); | 6809 __ Branch(&miss, ne, a3, Operand(known_map_)); |
6810 | 6810 |
6811 __ Ret(USE_DELAY_SLOT); | 6811 __ Ret(USE_DELAY_SLOT); |
6812 __ subu(v0, a0, a1); | 6812 __ subu(v0, a0, a1); |
6813 | 6813 |
6814 __ bind(&miss); | 6814 __ bind(&miss); |
6815 GenerateMiss(masm); | 6815 GenerateMiss(masm); |
6816 } | 6816 } |
6817 | 6817 |
| 6818 |
6818 void ICCompareStub::GenerateMiss(MacroAssembler* masm) { | 6819 void ICCompareStub::GenerateMiss(MacroAssembler* masm) { |
6819 { | 6820 { |
6820 // Call the runtime system in a fresh internal frame. | 6821 // Call the runtime system in a fresh internal frame. |
6821 ExternalReference miss = | 6822 ExternalReference miss = |
6822 ExternalReference(IC_Utility(IC::kCompareIC_Miss), masm->isolate()); | 6823 ExternalReference(IC_Utility(IC::kCompareIC_Miss), masm->isolate()); |
6823 FrameScope scope(masm, StackFrame::INTERNAL); | 6824 FrameScope scope(masm, StackFrame::INTERNAL); |
6824 __ Push(a1, a0); | 6825 __ Push(a1, a0); |
6825 __ push(ra); | 6826 __ push(ra); |
6826 __ Push(a1, a0); | 6827 __ Push(a1, a0); |
6827 __ li(t0, Operand(Smi::FromInt(op_))); | 6828 __ li(t0, Operand(Smi::FromInt(op_))); |
(...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7138 __ Ret(USE_DELAY_SLOT); | 7139 __ Ret(USE_DELAY_SLOT); |
7139 __ mov(result, zero_reg); | 7140 __ mov(result, zero_reg); |
7140 } | 7141 } |
7141 | 7142 |
7142 | 7143 |
7143 struct AheadOfTimeWriteBarrierStubList { | 7144 struct AheadOfTimeWriteBarrierStubList { |
7144 Register object, value, address; | 7145 Register object, value, address; |
7145 RememberedSetAction action; | 7146 RememberedSetAction action; |
7146 }; | 7147 }; |
7147 | 7148 |
| 7149 |
7148 #define REG(Name) { kRegister_ ## Name ## _Code } | 7150 #define REG(Name) { kRegister_ ## Name ## _Code } |
7149 | 7151 |
7150 static const AheadOfTimeWriteBarrierStubList kAheadOfTime[] = { | 7152 static const AheadOfTimeWriteBarrierStubList kAheadOfTime[] = { |
7151 // Used in RegExpExecStub. | 7153 // Used in RegExpExecStub. |
7152 { REG(s2), REG(s0), REG(t3), EMIT_REMEMBERED_SET }, | 7154 { REG(s2), REG(s0), REG(t3), EMIT_REMEMBERED_SET }, |
7153 // Used in CompileArrayPushCall. | 7155 // Used in CompileArrayPushCall. |
7154 // Also used in StoreIC::GenerateNormal via GenerateDictionaryStore. | 7156 // Also used in StoreIC::GenerateNormal via GenerateDictionaryStore. |
7155 // Also used in KeyedStoreIC::GenerateGeneric. | 7157 // Also used in KeyedStoreIC::GenerateGeneric. |
7156 { REG(a3), REG(t0), REG(t1), EMIT_REMEMBERED_SET }, | 7158 { REG(a3), REG(t0), REG(t1), EMIT_REMEMBERED_SET }, |
7157 // Used in CompileStoreGlobal. | 7159 // Used in CompileStoreGlobal. |
(...skipping 691 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7849 __ bind(&fast_elements_case); | 7851 __ bind(&fast_elements_case); |
7850 GenerateCase(masm, FAST_ELEMENTS); | 7852 GenerateCase(masm, FAST_ELEMENTS); |
7851 } | 7853 } |
7852 | 7854 |
7853 | 7855 |
7854 #undef __ | 7856 #undef __ |
7855 | 7857 |
7856 } } // namespace v8::internal | 7858 } } // namespace v8::internal |
7857 | 7859 |
7858 #endif // V8_TARGET_ARCH_MIPS | 7860 #endif // V8_TARGET_ARCH_MIPS |
OLD | NEW |