| OLD | NEW |
| 1 // Copyright (c) 1994-2006 Sun Microsystems Inc. | 1 // Copyright (c) 1994-2006 Sun Microsystems Inc. |
| 2 // All Rights Reserved. | 2 // All Rights Reserved. |
| 3 // | 3 // |
| 4 // Redistribution and use in source and binary forms, with or without | 4 // Redistribution and use in source and binary forms, with or without |
| 5 // modification, are permitted provided that the following conditions are | 5 // modification, are permitted provided that the following conditions are |
| 6 // met: | 6 // met: |
| 7 // | 7 // |
| 8 // - Redistributions of source code must retain the above copyright notice, | 8 // - Redistributions of source code must retain the above copyright notice, |
| 9 // this list of conditions and the following disclaimer. | 9 // this list of conditions and the following disclaimer. |
| 10 // | 10 // |
| (...skipping 2187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2198 Instr instr = PREF | (rs.rm().code() << kRsShift) | (hint << kRtShift) | 2198 Instr instr = PREF | (rs.rm().code() << kRsShift) | (hint << kRtShift) |
| 2199 | (rs.offset_); | 2199 | (rs.offset_); |
| 2200 emit(instr); | 2200 emit(instr); |
| 2201 } | 2201 } |
| 2202 | 2202 |
| 2203 | 2203 |
| 2204 // --------Coprocessor-instructions---------------- | 2204 // --------Coprocessor-instructions---------------- |
| 2205 | 2205 |
| 2206 // Load, store, move. | 2206 // Load, store, move. |
| 2207 void Assembler::lwc1(FPURegister fd, const MemOperand& src) { | 2207 void Assembler::lwc1(FPURegister fd, const MemOperand& src) { |
| 2208 GenInstrImmediate(LWC1, src.rm(), fd, src.offset_); | 2208 if (is_int16(src.offset_)) { |
| 2209 GenInstrImmediate(LWC1, src.rm(), fd, src.offset_); |
| 2210 } else { // Offset > 16 bits, use multiple instructions to load. |
| 2211 LoadRegPlusOffsetToAt(src); |
| 2212 GenInstrImmediate(LWC1, at, fd, 0); |
| 2213 } |
| 2209 } | 2214 } |
| 2210 | 2215 |
| 2211 | 2216 |
| 2212 void Assembler::ldc1(FPURegister fd, const MemOperand& src) { | 2217 void Assembler::ldc1(FPURegister fd, const MemOperand& src) { |
| 2213 GenInstrImmediate(LDC1, src.rm(), fd, src.offset_); | 2218 if (is_int16(src.offset_)) { |
| 2219 GenInstrImmediate(LDC1, src.rm(), fd, src.offset_); |
| 2220 } else { // Offset > 16 bits, use multiple instructions to load. |
| 2221 LoadRegPlusOffsetToAt(src); |
| 2222 GenInstrImmediate(LDC1, at, fd, 0); |
| 2223 } |
| 2214 } | 2224 } |
| 2215 | 2225 |
| 2216 | 2226 |
| 2217 void Assembler::swc1(FPURegister fd, const MemOperand& src) { | 2227 void Assembler::swc1(FPURegister fd, const MemOperand& src) { |
| 2218 GenInstrImmediate(SWC1, src.rm(), fd, src.offset_); | 2228 if (is_int16(src.offset_)) { |
| 2229 GenInstrImmediate(SWC1, src.rm(), fd, src.offset_); |
| 2230 } else { // Offset > 16 bits, use multiple instructions to load. |
| 2231 LoadRegPlusOffsetToAt(src); |
| 2232 GenInstrImmediate(SWC1, at, fd, 0); |
| 2233 } |
| 2219 } | 2234 } |
| 2220 | 2235 |
| 2221 | 2236 |
| 2222 void Assembler::sdc1(FPURegister fd, const MemOperand& src) { | 2237 void Assembler::sdc1(FPURegister fd, const MemOperand& src) { |
| 2223 GenInstrImmediate(SDC1, src.rm(), fd, src.offset_); | 2238 if (is_int16(src.offset_)) { |
| 2239 GenInstrImmediate(SDC1, src.rm(), fd, src.offset_); |
| 2240 } else { // Offset > 16 bits, use multiple instructions to load. |
| 2241 LoadRegPlusOffsetToAt(src); |
| 2242 GenInstrImmediate(SDC1, at, fd, 0); |
| 2243 } |
| 2224 } | 2244 } |
| 2225 | 2245 |
| 2226 | 2246 |
| 2227 void Assembler::mtc1(Register rt, FPURegister fs) { | 2247 void Assembler::mtc1(Register rt, FPURegister fs) { |
| 2228 GenInstrRegister(COP1, MTC1, rt, fs, f0); | 2248 GenInstrRegister(COP1, MTC1, rt, fs, f0); |
| 2229 } | 2249 } |
| 2230 | 2250 |
| 2231 | 2251 |
| 2232 void Assembler::mthc1(Register rt, FPURegister fs) { | 2252 void Assembler::mthc1(Register rt, FPURegister fs) { |
| 2233 GenInstrRegister(COP1, MTHC1, rt, fs, f0); | 2253 GenInstrRegister(COP1, MTHC1, rt, fs, f0); |
| (...skipping 665 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2899 void Assembler::PopulateConstantPool(ConstantPoolArray* constant_pool) { | 2919 void Assembler::PopulateConstantPool(ConstantPoolArray* constant_pool) { |
| 2900 // No out-of-line constant pool support. | 2920 // No out-of-line constant pool support. |
| 2901 DCHECK(!FLAG_enable_ool_constant_pool); | 2921 DCHECK(!FLAG_enable_ool_constant_pool); |
| 2902 return; | 2922 return; |
| 2903 } | 2923 } |
| 2904 | 2924 |
| 2905 | 2925 |
| 2906 } } // namespace v8::internal | 2926 } } // namespace v8::internal |
| 2907 | 2927 |
| 2908 #endif // V8_TARGET_ARCH_MIPS64 | 2928 #endif // V8_TARGET_ARCH_MIPS64 |
| OLD | NEW |