Chromium Code Reviews| 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 |