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 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
162 COND_TYPED_ARGS) { \ | 162 COND_TYPED_ARGS) { \ |
163 Name(target, COND_ARGS, bd); \ | 163 Name(target, COND_ARGS, bd); \ |
164 } | 164 } |
165 | 165 |
166 #define DECLARE_BRANCH_PROTOTYPES(Name) \ | 166 #define DECLARE_BRANCH_PROTOTYPES(Name) \ |
167 DECLARE_NORELOC_PROTOTYPE(Name, Label*) \ | 167 DECLARE_NORELOC_PROTOTYPE(Name, Label*) \ |
168 DECLARE_NORELOC_PROTOTYPE(Name, int16_t) | 168 DECLARE_NORELOC_PROTOTYPE(Name, int16_t) |
169 | 169 |
170 DECLARE_BRANCH_PROTOTYPES(Branch) | 170 DECLARE_BRANCH_PROTOTYPES(Branch) |
171 DECLARE_BRANCH_PROTOTYPES(BranchAndLink) | 171 DECLARE_BRANCH_PROTOTYPES(BranchAndLink) |
| 172 DECLARE_BRANCH_PROTOTYPES(BranchShort) |
172 | 173 |
173 #undef DECLARE_BRANCH_PROTOTYPES | 174 #undef DECLARE_BRANCH_PROTOTYPES |
174 #undef COND_TYPED_ARGS | 175 #undef COND_TYPED_ARGS |
175 #undef COND_ARGS | 176 #undef COND_ARGS |
176 | 177 |
177 | 178 |
178 // Jump, Call, and Ret pseudo instructions implementing inter-working. | 179 // Jump, Call, and Ret pseudo instructions implementing inter-working. |
179 #define COND_ARGS Condition cond = al, Register rs = zero_reg, \ | 180 #define COND_ARGS Condition cond = al, Register rs = zero_reg, \ |
180 const Operand& rt = Operand(zero_reg), BranchDelaySlot bd = PROTECT | 181 const Operand& rt = Operand(zero_reg), BranchDelaySlot bd = PROTECT |
181 | 182 |
(...skipping 1381 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1563 | 1564 |
1564 // Jumps to found label if a prototype map has dictionary elements. | 1565 // Jumps to found label if a prototype map has dictionary elements. |
1565 void JumpIfDictionaryInPrototypeChain(Register object, Register scratch0, | 1566 void JumpIfDictionaryInPrototypeChain(Register object, Register scratch0, |
1566 Register scratch1, Label* found); | 1567 Register scratch1, Label* found); |
1567 | 1568 |
1568 private: | 1569 private: |
1569 void CallCFunctionHelper(Register function, | 1570 void CallCFunctionHelper(Register function, |
1570 int num_reg_arguments, | 1571 int num_reg_arguments, |
1571 int num_double_arguments); | 1572 int num_double_arguments); |
1572 | 1573 |
1573 void BranchShort(int16_t offset, BranchDelaySlot bdslot = PROTECT); | |
1574 void BranchShort(int16_t offset, Condition cond, Register rs, | |
1575 const Operand& rt, | |
1576 BranchDelaySlot bdslot = PROTECT); | |
1577 void BranchShort(Label* L, BranchDelaySlot bdslot = PROTECT); | |
1578 void BranchShort(Label* L, Condition cond, Register rs, | |
1579 const Operand& rt, | |
1580 BranchDelaySlot bdslot = PROTECT); | |
1581 void BranchAndLinkShort(int16_t offset, BranchDelaySlot bdslot = PROTECT); | 1574 void BranchAndLinkShort(int16_t offset, BranchDelaySlot bdslot = PROTECT); |
1582 void BranchAndLinkShort(int16_t offset, Condition cond, Register rs, | 1575 void BranchAndLinkShort(int16_t offset, Condition cond, Register rs, |
1583 const Operand& rt, | 1576 const Operand& rt, |
1584 BranchDelaySlot bdslot = PROTECT); | 1577 BranchDelaySlot bdslot = PROTECT); |
1585 void BranchAndLinkShort(Label* L, BranchDelaySlot bdslot = PROTECT); | 1578 void BranchAndLinkShort(Label* L, BranchDelaySlot bdslot = PROTECT); |
1586 void BranchAndLinkShort(Label* L, Condition cond, Register rs, | 1579 void BranchAndLinkShort(Label* L, Condition cond, Register rs, |
1587 const Operand& rt, | 1580 const Operand& rt, |
1588 BranchDelaySlot bdslot = PROTECT); | 1581 BranchDelaySlot bdslot = PROTECT); |
1589 void J(Label* L, BranchDelaySlot bdslot); | 1582 void J(Label* L, BranchDelaySlot bdslot); |
1590 void Jr(Label* L, BranchDelaySlot bdslot); | 1583 void Jr(Label* L, BranchDelaySlot bdslot); |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1679 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x) | 1672 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x) |
1680 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) | 1673 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) |
1681 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> | 1674 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> |
1682 #else | 1675 #else |
1683 #define ACCESS_MASM(masm) masm-> | 1676 #define ACCESS_MASM(masm) masm-> |
1684 #endif | 1677 #endif |
1685 | 1678 |
1686 } } // namespace v8::internal | 1679 } } // namespace v8::internal |
1687 | 1680 |
1688 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ | 1681 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ |
OLD | NEW |