| OLD | NEW |
| 1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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_PPC_MACRO_ASSEMBLER_PPC_H_ | 5 #ifndef V8_PPC_MACRO_ASSEMBLER_PPC_H_ |
| 6 #define V8_PPC_MACRO_ASSEMBLER_PPC_H_ | 6 #define V8_PPC_MACRO_ASSEMBLER_PPC_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/frames.h" | 10 #include "src/frames.h" |
| (...skipping 686 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 697 // |temp| holds |result|'s map when done, and |temp2| its instance type. | 697 // |temp| holds |result|'s map when done, and |temp2| its instance type. |
| 698 void GetMapConstructor(Register result, Register map, Register temp, | 698 void GetMapConstructor(Register result, Register map, Register temp, |
| 699 Register temp2); | 699 Register temp2); |
| 700 | 700 |
| 701 // Try to get function prototype of a function and puts the value in | 701 // Try to get function prototype of a function and puts the value in |
| 702 // the result register. Checks that the function really is a | 702 // the result register. Checks that the function really is a |
| 703 // function and jumps to the miss label if the fast checks fail. The | 703 // function and jumps to the miss label if the fast checks fail. The |
| 704 // function register will be untouched; the other registers may be | 704 // function register will be untouched; the other registers may be |
| 705 // clobbered. | 705 // clobbered. |
| 706 void TryGetFunctionPrototype(Register function, Register result, | 706 void TryGetFunctionPrototype(Register function, Register result, |
| 707 Register scratch, Label* miss, | 707 Register scratch, Label* miss); |
| 708 bool miss_on_bound_function = false); | |
| 709 | 708 |
| 710 // Compare object type for heap object. heap_object contains a non-Smi | 709 // Compare object type for heap object. heap_object contains a non-Smi |
| 711 // whose object type should be compared with the given type. This both | 710 // whose object type should be compared with the given type. This both |
| 712 // sets the flags and leaves the object type in the type_reg register. | 711 // sets the flags and leaves the object type in the type_reg register. |
| 713 // It leaves the map in the map register (unless the type_reg and map register | 712 // It leaves the map in the map register (unless the type_reg and map register |
| 714 // are the same register). It leaves the heap object in the heap_object | 713 // are the same register). It leaves the heap object in the heap_object |
| 715 // register unless the heap_object register is the same register as one of the | 714 // register unless the heap_object register is the same register as one of the |
| 716 // other registers. | 715 // other registers. |
| 717 // Type_reg can be no_reg. In that case ip is used. | 716 // Type_reg can be no_reg. In that case ip is used. |
| 718 void CompareObjectType(Register heap_object, Register map, Register type_reg, | 717 void CompareObjectType(Register heap_object, Register map, Register type_reg, |
| (...skipping 651 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1370 void EmitSeqStringSetCharCheck(Register string, Register index, | 1369 void EmitSeqStringSetCharCheck(Register string, Register index, |
| 1371 Register value, uint32_t encoding_mask); | 1370 Register value, uint32_t encoding_mask); |
| 1372 | 1371 |
| 1373 // --------------------------------------------------------------------------- | 1372 // --------------------------------------------------------------------------- |
| 1374 // Patching helpers. | 1373 // Patching helpers. |
| 1375 | 1374 |
| 1376 // Decode offset from constant pool load instruction(s). | 1375 // Decode offset from constant pool load instruction(s). |
| 1377 // Caller must place the instruction word at <location> in <result>. | 1376 // Caller must place the instruction word at <location> in <result>. |
| 1378 void DecodeConstantPoolOffset(Register result, Register location); | 1377 void DecodeConstantPoolOffset(Register result, Register location); |
| 1379 | 1378 |
| 1380 // Retrieve/patch the relocated value (lis/ori pair or constant pool load). | |
| 1381 void GetRelocatedValue(Register location, Register result, Register scratch); | |
| 1382 void SetRelocatedValue(Register location, Register scratch, | |
| 1383 Register new_value); | |
| 1384 | |
| 1385 void ClampUint8(Register output_reg, Register input_reg); | 1379 void ClampUint8(Register output_reg, Register input_reg); |
| 1386 | 1380 |
| 1387 // Saturate a value into 8-bit unsigned integer | 1381 // Saturate a value into 8-bit unsigned integer |
| 1388 // if input_value < 0, output_value is 0 | 1382 // if input_value < 0, output_value is 0 |
| 1389 // if input_value > 255, output_value is 255 | 1383 // if input_value > 255, output_value is 255 |
| 1390 // otherwise output_value is the (int)input_value (round to nearest) | 1384 // otherwise output_value is the (int)input_value (round to nearest) |
| 1391 void ClampDoubleToUint8(Register result_reg, DoubleRegister input_reg, | 1385 void ClampDoubleToUint8(Register result_reg, DoubleRegister input_reg, |
| 1392 DoubleRegister temp_double_reg); | 1386 DoubleRegister temp_double_reg); |
| 1393 | 1387 |
| 1394 | 1388 |
| (...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1579 #define ACCESS_MASM(masm) \ | 1573 #define ACCESS_MASM(masm) \ |
| 1580 masm->stop(__FILE_LINE__); \ | 1574 masm->stop(__FILE_LINE__); \ |
| 1581 masm-> | 1575 masm-> |
| 1582 #else | 1576 #else |
| 1583 #define ACCESS_MASM(masm) masm-> | 1577 #define ACCESS_MASM(masm) masm-> |
| 1584 #endif | 1578 #endif |
| 1585 } | 1579 } |
| 1586 } // namespace v8::internal | 1580 } // namespace v8::internal |
| 1587 | 1581 |
| 1588 #endif // V8_PPC_MACRO_ASSEMBLER_PPC_H_ | 1582 #endif // V8_PPC_MACRO_ASSEMBLER_PPC_H_ |
| OLD | NEW |