| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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_X64_MACRO_ASSEMBLER_X64_H_ | 5 #ifndef V8_X64_MACRO_ASSEMBLER_X64_H_ |
| 6 #define V8_X64_MACRO_ASSEMBLER_X64_H_ | 6 #define V8_X64_MACRO_ASSEMBLER_X64_H_ |
| 7 | 7 |
| 8 #include "src/assembler.h" | 8 #include "src/assembler.h" |
| 9 #include "src/bailout-reason.h" | 9 #include "src/bailout-reason.h" |
| 10 #include "src/base/flags.h" | 10 #include "src/base/flags.h" |
| (...skipping 1303 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1314 AllocationFlags flags); | 1314 AllocationFlags flags); |
| 1315 | 1315 |
| 1316 // Allocate a heap number in new space with undefined value. Returns | 1316 // Allocate a heap number in new space with undefined value. Returns |
| 1317 // tagged pointer in result register, or jumps to gc_required if new | 1317 // tagged pointer in result register, or jumps to gc_required if new |
| 1318 // space is full. | 1318 // space is full. |
| 1319 void AllocateHeapNumber(Register result, | 1319 void AllocateHeapNumber(Register result, |
| 1320 Register scratch, | 1320 Register scratch, |
| 1321 Label* gc_required, | 1321 Label* gc_required, |
| 1322 MutableMode mode = IMMUTABLE); | 1322 MutableMode mode = IMMUTABLE); |
| 1323 | 1323 |
| 1324 // Allocate a sequential string. All the header fields of the string object | |
| 1325 // are initialized. | |
| 1326 void AllocateTwoByteString(Register result, | |
| 1327 Register length, | |
| 1328 Register scratch1, | |
| 1329 Register scratch2, | |
| 1330 Register scratch3, | |
| 1331 Label* gc_required); | |
| 1332 void AllocateOneByteString(Register result, Register length, | |
| 1333 Register scratch1, Register scratch2, | |
| 1334 Register scratch3, Label* gc_required); | |
| 1335 | |
| 1336 // Allocate a raw cons string object. Only the map field of the result is | |
| 1337 // initialized. | |
| 1338 void AllocateTwoByteConsString(Register result, | |
| 1339 Register scratch1, | |
| 1340 Register scratch2, | |
| 1341 Label* gc_required); | |
| 1342 void AllocateOneByteConsString(Register result, Register scratch1, | |
| 1343 Register scratch2, Label* gc_required); | |
| 1344 | |
| 1345 // Allocate a raw sliced string object. Only the map field of the result is | |
| 1346 // initialized. | |
| 1347 void AllocateTwoByteSlicedString(Register result, | |
| 1348 Register scratch1, | |
| 1349 Register scratch2, | |
| 1350 Label* gc_required); | |
| 1351 void AllocateOneByteSlicedString(Register result, Register scratch1, | |
| 1352 Register scratch2, Label* gc_required); | |
| 1353 | |
| 1354 // Allocate and initialize a JSValue wrapper with the specified {constructor} | 1324 // Allocate and initialize a JSValue wrapper with the specified {constructor} |
| 1355 // and {value}. | 1325 // and {value}. |
| 1356 void AllocateJSValue(Register result, Register constructor, Register value, | 1326 void AllocateJSValue(Register result, Register constructor, Register value, |
| 1357 Register scratch, Label* gc_required); | 1327 Register scratch, Label* gc_required); |
| 1358 | 1328 |
| 1359 // --------------------------------------------------------------------------- | 1329 // --------------------------------------------------------------------------- |
| 1360 // Support functions. | 1330 // Support functions. |
| 1361 | 1331 |
| 1362 // Check if result is zero and op is negative. | 1332 // Check if result is zero and op is negative. |
| 1363 void NegativeZeroTest(Register result, Register op, Label* then_label); | 1333 void NegativeZeroTest(Register result, Register op, Label* then_label); |
| (...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1712 inline Operand StackOperandForReturnAddress(int32_t disp) { | 1682 inline Operand StackOperandForReturnAddress(int32_t disp) { |
| 1713 return Operand(rsp, disp); | 1683 return Operand(rsp, disp); |
| 1714 } | 1684 } |
| 1715 | 1685 |
| 1716 #define ACCESS_MASM(masm) masm-> | 1686 #define ACCESS_MASM(masm) masm-> |
| 1717 | 1687 |
| 1718 } // namespace internal | 1688 } // namespace internal |
| 1719 } // namespace v8 | 1689 } // namespace v8 |
| 1720 | 1690 |
| 1721 #endif // V8_X64_MACRO_ASSEMBLER_X64_H_ | 1691 #endif // V8_X64_MACRO_ASSEMBLER_X64_H_ |
| OLD | NEW |