Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(233)

Side by Side Diff: src/arm64/macro-assembler-arm64.h

Issue 2424433002: [ic] Delete old KeyedLoadIC code (Closed)
Patch Set: fix failing test Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/arm64/code-stubs-arm64.cc ('k') | src/arm64/macro-assembler-arm64.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ 5 #ifndef V8_ARM64_MACRO_ASSEMBLER_ARM64_H_
6 #define V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ 6 #define V8_ARM64_MACRO_ASSEMBLER_ARM64_H_
7 7
8 #include <vector> 8 #include <vector>
9 9
10 #include "src/arm64/assembler-arm64.h" 10 #include "src/arm64/assembler-arm64.h"
(...skipping 1558 matching lines...) Expand 10 before | Expand all | Expand 10 after
1569 Label* fall_through); 1569 Label* fall_through);
1570 1570
1571 // Test the bits of register defined by bit_pattern, and branch to 1571 // Test the bits of register defined by bit_pattern, and branch to
1572 // if_any_set, if_all_clear or fall_through accordingly. 1572 // if_any_set, if_all_clear or fall_through accordingly.
1573 void TestAndSplit(const Register& reg, 1573 void TestAndSplit(const Register& reg,
1574 uint64_t bit_pattern, 1574 uint64_t bit_pattern,
1575 Label* if_all_clear, 1575 Label* if_all_clear,
1576 Label* if_any_set, 1576 Label* if_any_set,
1577 Label* fall_through); 1577 Label* fall_through);
1578 1578
1579 // Check if a map for a JSObject indicates that the object has fast elements.
1580 // Jump to the specified label if it does not.
1581 void CheckFastElements(Register map, Register scratch, Label* fail);
1582
1583 // Check if a map for a JSObject indicates that the object can have both smi 1579 // Check if a map for a JSObject indicates that the object can have both smi
1584 // and HeapObject elements. Jump to the specified label if it does not. 1580 // and HeapObject elements. Jump to the specified label if it does not.
1585 void CheckFastObjectElements(Register map, Register scratch, Label* fail); 1581 void CheckFastObjectElements(Register map, Register scratch, Label* fail);
1586 1582
1587 // Check to see if number can be stored as a double in FastDoubleElements. 1583 // Check to see if number can be stored as a double in FastDoubleElements.
1588 // If it can, store it at the index specified by key_reg in the array, 1584 // If it can, store it at the index specified by key_reg in the array,
1589 // otherwise jump to fail. 1585 // otherwise jump to fail.
1590 void StoreNumberToDoubleElements(Register value_reg, 1586 void StoreNumberToDoubleElements(Register value_reg,
1591 Register key_reg, 1587 Register key_reg,
1592 Register elements_reg, 1588 Register elements_reg,
(...skipping 22 matching lines...) Expand all
1615 // is left untouched, whereas both scratch registers are clobbered. 1611 // is left untouched, whereas both scratch registers are clobbered.
1616 void CheckAccessGlobalProxy(Register holder_reg, 1612 void CheckAccessGlobalProxy(Register holder_reg,
1617 Register scratch1, 1613 Register scratch1,
1618 Register scratch2, 1614 Register scratch2,
1619 Label* miss); 1615 Label* miss);
1620 1616
1621 // Hash the interger value in 'key' register. 1617 // Hash the interger value in 'key' register.
1622 // It uses the same algorithm as ComputeIntegerHash in utils.h. 1618 // It uses the same algorithm as ComputeIntegerHash in utils.h.
1623 void GetNumberHash(Register key, Register scratch); 1619 void GetNumberHash(Register key, Register scratch);
1624 1620
1625 // Load value from the dictionary.
1626 //
1627 // elements - holds the slow-case elements of the receiver on entry.
1628 // Unchanged unless 'result' is the same register.
1629 //
1630 // key - holds the smi key on entry.
1631 // Unchanged unless 'result' is the same register.
1632 //
1633 // result - holds the result on exit if the load succeeded.
1634 // Allowed to be the same as 'key' or 'result'.
1635 // Unchanged on bailout so 'key' or 'result' can be used
1636 // in further computation.
1637 void LoadFromNumberDictionary(Label* miss,
1638 Register elements,
1639 Register key,
1640 Register result,
1641 Register scratch0,
1642 Register scratch1,
1643 Register scratch2,
1644 Register scratch3);
1645
1646 // --------------------------------------------------------------------------- 1621 // ---------------------------------------------------------------------------
1647 // Frames. 1622 // Frames.
1648 1623
1649 // Load the type feedback vector from a JavaScript frame. 1624 // Load the type feedback vector from a JavaScript frame.
1650 void EmitLoadTypeFeedbackVector(Register vector); 1625 void EmitLoadTypeFeedbackVector(Register vector);
1651 1626
1652 // Activation support. 1627 // Activation support.
1653 void EnterFrame(StackFrame::Type type); 1628 void EnterFrame(StackFrame::Type type);
1654 void EnterFrame(StackFrame::Type type, bool load_constant_pool_pointer_reg); 1629 void EnterFrame(StackFrame::Type type, bool load_constant_pool_pointer_reg);
1655 void LeaveFrame(StackFrame::Type type); 1630 void LeaveFrame(StackFrame::Type type);
(...skipping 664 matching lines...) Expand 10 before | Expand all | Expand 10 after
2320 class RegisterBits : public BitField<unsigned, 0, 5> {}; 2295 class RegisterBits : public BitField<unsigned, 0, 5> {};
2321 class DeltaBits : public BitField<uint32_t, 5, 32-5> {}; 2296 class DeltaBits : public BitField<uint32_t, 5, 32-5> {};
2322 }; 2297 };
2323 2298
2324 } // namespace internal 2299 } // namespace internal
2325 } // namespace v8 2300 } // namespace v8
2326 2301
2327 #define ACCESS_MASM(masm) masm-> 2302 #define ACCESS_MASM(masm) masm->
2328 2303
2329 #endif // V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ 2304 #endif // V8_ARM64_MACRO_ASSEMBLER_ARM64_H_
OLDNEW
« no previous file with comments | « src/arm64/code-stubs-arm64.cc ('k') | src/arm64/macro-assembler-arm64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698