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 830 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
841 // from the stack, clobbering only the rsp register. | 841 // from the stack, clobbering only the rsp register. |
842 void Drop(int stack_elements); | 842 void Drop(int stack_elements); |
843 | 843 |
844 void Call(Label* target) { call(target); } | 844 void Call(Label* target) { call(target); } |
845 void Push(Register src) { push(src); } | 845 void Push(Register src) { push(src); } |
846 void Pop(Register dst) { pop(dst); } | 846 void Pop(Register dst) { pop(dst); } |
847 void PushReturnAddressFrom(Register src) { push(src); } | 847 void PushReturnAddressFrom(Register src) { push(src); } |
848 void PopReturnAddressTo(Register dst) { pop(dst); } | 848 void PopReturnAddressTo(Register dst) { pop(dst); } |
849 void MoveDouble(Register dst, const Operand& src) { movq(dst, src); } | 849 void MoveDouble(Register dst, const Operand& src) { movq(dst, src); } |
850 void MoveDouble(const Operand& dst, Register src) { movq(dst, src); } | 850 void MoveDouble(const Operand& dst, Register src) { movq(dst, src); } |
| 851 // Use Set macro instruction if the value might be in the range of |
| 852 // int32_t or uint32_t. |
| 853 void MoveInteger64(Register dst, int64_t value) { movq(dst, value); } |
851 void Move(Register dst, ExternalReference ext) { | 854 void Move(Register dst, ExternalReference ext) { |
852 movq(dst, reinterpret_cast<Address>(ext.address()), | 855 movq(dst, reinterpret_cast<Address>(ext.address()), |
853 RelocInfo::EXTERNAL_REFERENCE); | 856 RelocInfo::EXTERNAL_REFERENCE); |
854 } | 857 } |
855 | 858 |
856 // Control Flow | 859 // Control Flow |
857 void Jump(Address destination, RelocInfo::Mode rmode); | 860 void Jump(Address destination, RelocInfo::Mode rmode); |
858 void Jump(ExternalReference ext); | 861 void Jump(ExternalReference ext); |
859 void Jump(Handle<Code> code_object, RelocInfo::Mode rmode); | 862 void Jump(Handle<Code> code_object, RelocInfo::Mode rmode); |
860 | 863 |
(...skipping 752 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1613 masm->popfq(); \ | 1616 masm->popfq(); \ |
1614 } \ | 1617 } \ |
1615 masm-> | 1618 masm-> |
1616 #else | 1619 #else |
1617 #define ACCESS_MASM(masm) masm-> | 1620 #define ACCESS_MASM(masm) masm-> |
1618 #endif | 1621 #endif |
1619 | 1622 |
1620 } } // namespace v8::internal | 1623 } } // namespace v8::internal |
1621 | 1624 |
1622 #endif // V8_X64_MACRO_ASSEMBLER_X64_H_ | 1625 #endif // V8_X64_MACRO_ASSEMBLER_X64_H_ |
OLD | NEW |