| Index: runtime/vm/assembler_x64.h
|
| ===================================================================
|
| --- runtime/vm/assembler_x64.h (revision 40903)
|
| +++ runtime/vm/assembler_x64.h (working copy)
|
| @@ -185,6 +185,9 @@
|
| }
|
| }
|
|
|
| + // This addressing mode does not exist.
|
| + Address(Register base, Register r);
|
| +
|
| Address(Register index, ScaleFactor scale, int32_t disp) {
|
| ASSERT(index != RSP); // Illegal addressing mode.
|
| SetModRM(0, RSP);
|
| @@ -192,6 +195,9 @@
|
| SetDisp32(disp);
|
| }
|
|
|
| + // This addressing mode does not exist.
|
| + Address(Register index, ScaleFactor scale, Register r);
|
| +
|
| Address(Register base, Register index, ScaleFactor scale, int32_t disp) {
|
| ASSERT(index != RSP); // Illegal addressing mode.
|
| if ((disp == 0) && ((base & 7) != RBP)) {
|
| @@ -208,6 +214,9 @@
|
| }
|
| }
|
|
|
| + // This addressing mode does not exist.
|
| + Address(Register base, Register index, ScaleFactor scale, Register r);
|
| +
|
| Address(const Address& other) : Operand(other) { }
|
|
|
| Address& operator=(const Address& other) {
|
| @@ -219,6 +228,9 @@
|
| return Address(base, disp, true);
|
| }
|
|
|
| + // This addressing mode does not exist.
|
| + static Address AddressBaseImm32(Register base, Register r);
|
| +
|
| private:
|
| Address(Register base, int32_t disp, bool fixed) {
|
| ASSERT(fixed);
|
| @@ -236,9 +248,15 @@
|
| FieldAddress(Register base, int32_t disp)
|
| : Address(base, disp - kHeapObjectTag) { }
|
|
|
| + // This addressing mode does not exist.
|
| + FieldAddress(Register base, Register r);
|
| +
|
| FieldAddress(Register base, Register index, ScaleFactor scale, int32_t disp)
|
| : Address(base, index, scale, disp - kHeapObjectTag) { }
|
|
|
| + // This addressing mode does not exist.
|
| + FieldAddress(Register base, Register index, ScaleFactor scale, Register r);
|
| +
|
| FieldAddress(const FieldAddress& other) : Address(other) { }
|
|
|
| FieldAddress& operator=(const FieldAddress& other) {
|
|
|