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 #include <assert.h> // For assert | 5 #include <assert.h> // For assert |
6 #include <limits.h> // For LONG_MIN, LONG_MAX. | 6 #include <limits.h> // For LONG_MIN, LONG_MAX. |
7 | 7 |
8 #if V8_TARGET_ARCH_S390 | 8 #if V8_TARGET_ARCH_S390 |
9 | 9 |
10 #include "src/base/bits.h" | 10 #include "src/base/bits.h" |
(...skipping 5053 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
5064 if (use_RXform) { | 5064 if (use_RXform) { |
5065 l(dst, mem); | 5065 l(dst, mem); |
5066 } else if (use_RXYform) { | 5066 } else if (use_RXYform) { |
5067 ly(dst, mem); | 5067 ly(dst, mem); |
5068 } else { | 5068 } else { |
5069 ly(dst, MemOperand(base, scratch)); | 5069 ly(dst, MemOperand(base, scratch)); |
5070 } | 5070 } |
5071 #endif | 5071 #endif |
5072 } | 5072 } |
5073 | 5073 |
5074 void MacroAssembler::LoadLogicalHalfWordP(Register dst, const MemOperand& mem) { | |
5075 #if V8_TARGET_ARCH_S390X | |
5076 llgh(dst, mem); | |
5077 #else | |
5078 llh(dst, mem); | |
5079 #endif | |
5080 } | |
5081 | |
5082 void MacroAssembler::LoadLogicalHalfWordP(Register dst, Register src) { | |
5083 #if V8_TARGET_ARCH_S390X | |
5084 llghr(dst, src); | |
5085 #else | |
5086 llhr(dst, src); | |
5087 #endif | |
5088 } | |
5089 | |
5074 void MacroAssembler::LoadB(Register dst, const MemOperand& mem) { | 5090 void MacroAssembler::LoadB(Register dst, const MemOperand& mem) { |
5075 #if V8_TARGET_ARCH_S390X | 5091 #if V8_TARGET_ARCH_S390X |
5076 lgb(dst, mem); | 5092 lgb(dst, mem); |
5077 #else | 5093 #else |
5078 lb(dst, mem); | 5094 lb(dst, mem); |
5079 #endif | 5095 #endif |
5080 } | 5096 } |
5081 | 5097 |
5082 void MacroAssembler::LoadB(Register dst, Register src) { | 5098 void MacroAssembler::LoadB(Register dst, Register src) { |
5083 #if V8_TARGET_ARCH_S390X | 5099 #if V8_TARGET_ARCH_S390X |
5084 lgbr(dst, src); | 5100 lgbr(dst, src); |
5085 #else | 5101 #else |
5086 lbr(dst, src); | 5102 lbr(dst, src); |
5087 #endif | 5103 #endif |
5088 } | 5104 } |
5089 | 5105 |
5090 void MacroAssembler::LoadlB(Register dst, const MemOperand& mem) { | 5106 void MacroAssembler::LoadlB(Register dst, const MemOperand& mem) { |
5091 #if V8_TARGET_ARCH_S390X | 5107 #if V8_TARGET_ARCH_S390X |
5092 llgc(dst, mem); | 5108 llgc(dst, mem); |
5093 #else | 5109 #else |
5094 llc(dst, mem); | 5110 llc(dst, mem); |
5095 #endif | 5111 #endif |
5096 } | 5112 } |
5097 | 5113 |
5114 void MacroAssembler::LoadReversedWordP(Register dst, const MemOperand& mem) { | |
JoranSiu
2016/06/16 21:05:16
Should these be better named as LoadLogicalReverse
| |
5115 lrv(dst, mem); | |
5116 LoadlW(dst, dst); | |
5117 } | |
5118 | |
5119 | |
5120 void MacroAssembler::LoadReversedHalfWordP(Register dst, | |
5121 const MemOperand& mem) { | |
5122 lrvh(dst, mem); | |
5123 LoadLogicalHalfWordP(dst, dst); | |
5124 } | |
5125 | |
5126 | |
5098 // Load And Test (Reg <- Reg) | 5127 // Load And Test (Reg <- Reg) |
5099 void MacroAssembler::LoadAndTest32(Register dst, Register src) { | 5128 void MacroAssembler::LoadAndTest32(Register dst, Register src) { |
5100 ltr(dst, src); | 5129 ltr(dst, src); |
5101 } | 5130 } |
5102 | 5131 |
5103 // Load And Test | 5132 // Load And Test |
5104 // (Register dst(ptr) = Register src (32 | 32->64)) | 5133 // (Register dst(ptr) = Register src (32 | 32->64)) |
5105 // src is treated as a 32-bit signed integer, which is sign extended to | 5134 // src is treated as a 32-bit signed integer, which is sign extended to |
5106 // 64-bit if necessary. | 5135 // 64-bit if necessary. |
5107 void MacroAssembler::LoadAndTestP_ExtendSrc(Register dst, Register src) { | 5136 void MacroAssembler::LoadAndTestP_ExtendSrc(Register dst, Register src) { |
(...skipping 418 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
5526 } | 5555 } |
5527 if (mag.shift > 0) ShiftRightArith(result, result, Operand(mag.shift)); | 5556 if (mag.shift > 0) ShiftRightArith(result, result, Operand(mag.shift)); |
5528 ExtractBit(r0, dividend, 31); | 5557 ExtractBit(r0, dividend, 31); |
5529 AddP(result, r0); | 5558 AddP(result, r0); |
5530 } | 5559 } |
5531 | 5560 |
5532 } // namespace internal | 5561 } // namespace internal |
5533 } // namespace v8 | 5562 } // namespace v8 |
5534 | 5563 |
5535 #endif // V8_TARGET_ARCH_S390 | 5564 #endif // V8_TARGET_ARCH_S390 |
OLD | NEW |