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

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

Issue 2582973002: S390: Use TM instead of TMLL in case of memory operand. (Closed)
Patch Set: Created 4 years 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
« no previous file with comments | « src/crankshaft/s390/lithium-s390.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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_S390_MACRO_ASSEMBLER_S390_H_ 5 #ifndef V8_S390_MACRO_ASSEMBLER_S390_H_
6 #define V8_S390_MACRO_ASSEMBLER_S390_H_ 6 #define V8_S390_MACRO_ASSEMBLER_S390_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 1534 matching lines...) Expand 10 before | Expand all | Expand 10 after
1545 true); 1545 true);
1546 } 1546 }
1547 } 1547 }
1548 1548
1549 // Untag the source value into destination and jump if source is a smi. 1549 // Untag the source value into destination and jump if source is a smi.
1550 // Souce and destination can be the same register. 1550 // Souce and destination can be the same register.
1551 void UntagAndJumpIfSmi(Register dst, Register src, Label* smi_case); 1551 void UntagAndJumpIfSmi(Register dst, Register src, Label* smi_case);
1552 1552
1553 inline void TestIfSmi(Register value) { tmll(value, Operand(1)); } 1553 inline void TestIfSmi(Register value) { tmll(value, Operand(1)); }
1554 1554
1555 inline void TestIfSmi(MemOperand value) {
1556 if (is_uint12(value.offset())) {
1557 tm(value, Operand(1));
1558 } else if (is_int20(value.offset())) {
1559 tmy(value, Operand(1));
1560 } else {
1561 UNIMPLEMENTED();
JoranSiu 2016/12/19 16:25:33 A bit concerned about this unimplemented path... a
1562 }
1563 }
1564
1555 inline void TestIfPositiveSmi(Register value, Register scratch) { 1565 inline void TestIfPositiveSmi(Register value, Register scratch) {
1556 STATIC_ASSERT((kSmiTagMask | kSmiSignMask) == 1566 STATIC_ASSERT((kSmiTagMask | kSmiSignMask) ==
1557 (intptr_t)(1UL << (kBitsPerPointer - 1) | 1)); 1567 (intptr_t)(1UL << (kBitsPerPointer - 1) | 1));
1558 mov(scratch, Operand(kIntptrSignBit | kSmiTagMask)); 1568 mov(scratch, Operand(kIntptrSignBit | kSmiTagMask));
1559 AndP(scratch, value); 1569 AndP(scratch, value);
1560 } 1570 }
1561 1571
1562 // Jump the register contains a smi. 1572 // Jump the register contains a smi.
1563 inline void JumpIfSmi(Register value, Label* smi_label) { 1573 inline void JumpIfSmi(Register value, Label* smi_label) {
1564 TestIfSmi(value); 1574 TestIfSmi(value);
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
1823 inline MemOperand NativeContextMemOperand() { 1833 inline MemOperand NativeContextMemOperand() {
1824 return ContextMemOperand(cp, Context::NATIVE_CONTEXT_INDEX); 1834 return ContextMemOperand(cp, Context::NATIVE_CONTEXT_INDEX);
1825 } 1835 }
1826 1836
1827 #define ACCESS_MASM(masm) masm-> 1837 #define ACCESS_MASM(masm) masm->
1828 1838
1829 } // namespace internal 1839 } // namespace internal
1830 } // namespace v8 1840 } // namespace v8
1831 1841
1832 #endif // V8_S390_MACRO_ASSEMBLER_S390_H_ 1842 #endif // V8_S390_MACRO_ASSEMBLER_S390_H_
OLDNEW
« no previous file with comments | « src/crankshaft/s390/lithium-s390.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698