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 |