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 978 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
989 // ---------- S t a t e -------------- | 989 // ---------- S t a t e -------------- |
990 // -- r0 : value | 990 // -- r0 : value |
991 // -- r1 : key | 991 // -- r1 : key |
992 // -- r2 : receiver | 992 // -- r2 : receiver |
993 // -- lr : return address | 993 // -- lr : return address |
994 // ----------------------------------- | 994 // ----------------------------------- |
995 Label slow, notin; | 995 Label slow, notin; |
996 MemOperand mapped_location = | 996 MemOperand mapped_location = |
997 GenerateMappedArgumentsLookup(masm, r2, r1, r3, r4, r5, ¬in, &slow); | 997 GenerateMappedArgumentsLookup(masm, r2, r1, r3, r4, r5, ¬in, &slow); |
998 __ str(r0, mapped_location); | 998 __ str(r0, mapped_location); |
| 999 __ add(r6, r3, r5); |
| 1000 __ RecordWrite(r3, r6, r9); |
999 __ Ret(); | 1001 __ Ret(); |
1000 __ bind(¬in); | 1002 __ bind(¬in); |
1001 // The unmapped lookup expects that the parameter map is in r3. | 1003 // The unmapped lookup expects that the parameter map is in r3. |
1002 MemOperand unmapped_location = | 1004 MemOperand unmapped_location = |
1003 GenerateUnmappedArgumentsLookup(masm, r1, r3, r4, &slow); | 1005 GenerateUnmappedArgumentsLookup(masm, r1, r3, r4, &slow); |
1004 __ str(r0, unmapped_location); | 1006 __ str(r0, unmapped_location); |
| 1007 __ add(r6, r3, r4); |
| 1008 __ RecordWrite(r3, r6, r9); |
1005 __ Ret(); | 1009 __ Ret(); |
1006 __ bind(&slow); | 1010 __ bind(&slow); |
1007 GenerateMiss(masm, false); | 1011 GenerateMiss(masm, false); |
1008 } | 1012 } |
1009 | 1013 |
1010 | 1014 |
1011 void KeyedCallIC::GenerateNonStrictArguments(MacroAssembler* masm, | 1015 void KeyedCallIC::GenerateNonStrictArguments(MacroAssembler* masm, |
1012 int argc) { | 1016 int argc) { |
1013 // ----------- S t a t e ------------- | 1017 // ----------- S t a t e ------------- |
1014 // -- r2 : name | 1018 // -- r2 : name |
(...skipping 689 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1704 Register reg = Assembler::GetRn(instr_at_patch); | 1708 Register reg = Assembler::GetRn(instr_at_patch); |
1705 patcher.masm()->tst(reg, Operand(kSmiTagMask)); | 1709 patcher.masm()->tst(reg, Operand(kSmiTagMask)); |
1706 patcher.EmitCondition(eq); | 1710 patcher.EmitCondition(eq); |
1707 } | 1711 } |
1708 } | 1712 } |
1709 | 1713 |
1710 | 1714 |
1711 } } // namespace v8::internal | 1715 } } // namespace v8::internal |
1712 | 1716 |
1713 #endif // V8_TARGET_ARCH_ARM | 1717 #endif // V8_TARGET_ARCH_ARM |
OLD | NEW |