| OLD | NEW |
| 1 // Copyright 2009 the V8 project authors. All rights reserved. | 1 // Copyright 2009 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 964 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 975 receiver.Unuse(); | 975 receiver.Unuse(); |
| 976 return RawCallCodeObject(ic, RelocInfo::CODE_TARGET); | 976 return RawCallCodeObject(ic, RelocInfo::CODE_TARGET); |
| 977 } | 977 } |
| 978 | 978 |
| 979 | 979 |
| 980 Result VirtualFrame::CallKeyedStoreIC() { | 980 Result VirtualFrame::CallKeyedStoreIC() { |
| 981 // Value, key, and receiver are on the top of the frame. The IC | 981 // Value, key, and receiver are on the top of the frame. The IC |
| 982 // expects value in eax and key and receiver on the stack. It does | 982 // expects value in eax and key and receiver on the stack. It does |
| 983 // not drop the key and receiver. | 983 // not drop the key and receiver. |
| 984 Handle<Code> ic(Builtins::builtin(Builtins::KeyedStoreIC_Initialize)); | 984 Handle<Code> ic(Builtins::builtin(Builtins::KeyedStoreIC_Initialize)); |
| 985 // TODO(1222589): Make the IC grab the values from the stack. | |
| 986 Result value = Pop(); | 985 Result value = Pop(); |
| 987 PrepareForCall(2, 0); // Two stack args, neither callee-dropped. | 986 PrepareForCall(2, 0); // Two stack args, neither callee-dropped. |
| 988 value.ToRegister(eax); | 987 value.ToRegister(eax); |
| 989 value.Unuse(); | 988 value.Unuse(); |
| 990 return RawCallCodeObject(ic, RelocInfo::CODE_TARGET); | 989 return RawCallCodeObject(ic, RelocInfo::CODE_TARGET); |
| 991 } | 990 } |
| 992 | 991 |
| 993 | 992 |
| 994 Result VirtualFrame::CallCallIC(RelocInfo::Mode mode, | 993 Result VirtualFrame::CallCallIC(RelocInfo::Mode mode, |
| 995 int arg_count, | 994 int arg_count, |
| (...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1156 ASSERT(stack_pointer_ == element_count() - 1); | 1155 ASSERT(stack_pointer_ == element_count() - 1); |
| 1157 elements_.Add(FrameElement::MemoryElement(info)); | 1156 elements_.Add(FrameElement::MemoryElement(info)); |
| 1158 stack_pointer_++; | 1157 stack_pointer_++; |
| 1159 __ push(immediate); | 1158 __ push(immediate); |
| 1160 } | 1159 } |
| 1161 | 1160 |
| 1162 | 1161 |
| 1163 #undef __ | 1162 #undef __ |
| 1164 | 1163 |
| 1165 } } // namespace v8::internal | 1164 } } // namespace v8::internal |
| OLD | NEW |