Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(484)

Side by Side Diff: src/mips/macro-assembler-mips.h

Issue 153983002: MIPS: Fixes for patch sites if long branches are emitted. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/mips/lithium-codegen-mips.cc ('k') | src/mips/macro-assembler-mips.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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_
OLDNEW
« no previous file with comments | « src/mips/lithium-codegen-mips.cc ('k') | src/mips/macro-assembler-mips.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698