| 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 2170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2181 void Assembler::DoubleAsTwoUInt32(double d, uint32_t* lo, uint32_t* hi) { | 2181 void Assembler::DoubleAsTwoUInt32(double d, uint32_t* lo, uint32_t* hi) { |
| 2182 uint64_t i; | 2182 uint64_t i; |
| 2183 memcpy(&i, &d, 8); | 2183 memcpy(&i, &d, 8); |
| 2184 | 2184 |
| 2185 *lo = i & 0xffffffff; | 2185 *lo = i & 0xffffffff; |
| 2186 *hi = i >> 32; | 2186 *hi = i >> 32; |
| 2187 } | 2187 } |
| 2188 | 2188 |
| 2189 | 2189 |
| 2190 void Assembler::movn_s(FPURegister fd, FPURegister fs, Register rt) { | 2190 void Assembler::movn_s(FPURegister fd, FPURegister fs, Register rt) { |
| 2191 DCHECK(IsMipsArchVariant(kMips32r2)); | 2191 DCHECK(!IsMipsArchVariant(kMips32r6)); |
| 2192 GenInstrRegister(COP1, S, rt, fs, fd, MOVN_C); | 2192 GenInstrRegister(COP1, S, rt, fs, fd, MOVN_C); |
| 2193 } | 2193 } |
| 2194 | 2194 |
| 2195 | 2195 |
| 2196 void Assembler::movn_d(FPURegister fd, FPURegister fs, Register rt) { | 2196 void Assembler::movn_d(FPURegister fd, FPURegister fs, Register rt) { |
| 2197 DCHECK(IsMipsArchVariant(kMips32r2)); | 2197 DCHECK(!IsMipsArchVariant(kMips32r6)); |
| 2198 GenInstrRegister(COP1, D, rt, fs, fd, MOVN_C); | 2198 GenInstrRegister(COP1, D, rt, fs, fd, MOVN_C); |
| 2199 } | 2199 } |
| 2200 | 2200 |
| 2201 | 2201 |
| 2202 void Assembler::sel(SecondaryField fmt, FPURegister fd, FPURegister fs, | 2202 void Assembler::sel(SecondaryField fmt, FPURegister fd, FPURegister fs, |
| 2203 FPURegister ft) { | 2203 FPURegister ft) { |
| 2204 DCHECK(IsMipsArchVariant(kMips32r6)); | 2204 DCHECK(IsMipsArchVariant(kMips32r6)); |
| 2205 DCHECK((fmt == D) || (fmt == S)); | 2205 DCHECK((fmt == D) || (fmt == S)); |
| 2206 | 2206 |
| 2207 GenInstrRegister(COP1, fmt, ft, fs, fd, SEL); | 2207 GenInstrRegister(COP1, fmt, ft, fs, fd, SEL); |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2254 selnez(D, fd, fs, ft); | 2254 selnez(D, fd, fs, ft); |
| 2255 } | 2255 } |
| 2256 | 2256 |
| 2257 | 2257 |
| 2258 void Assembler::selnez_s(FPURegister fd, FPURegister fs, FPURegister ft) { | 2258 void Assembler::selnez_s(FPURegister fd, FPURegister fs, FPURegister ft) { |
| 2259 selnez(S, fd, fs, ft); | 2259 selnez(S, fd, fs, ft); |
| 2260 } | 2260 } |
| 2261 | 2261 |
| 2262 | 2262 |
| 2263 void Assembler::movz_s(FPURegister fd, FPURegister fs, Register rt) { | 2263 void Assembler::movz_s(FPURegister fd, FPURegister fs, Register rt) { |
| 2264 DCHECK(IsMipsArchVariant(kMips32r2)); | 2264 DCHECK(!IsMipsArchVariant(kMips32r6)); |
| 2265 GenInstrRegister(COP1, S, rt, fs, fd, MOVZ_C); | 2265 GenInstrRegister(COP1, S, rt, fs, fd, MOVZ_C); |
| 2266 } | 2266 } |
| 2267 | 2267 |
| 2268 | 2268 |
| 2269 void Assembler::movz_d(FPURegister fd, FPURegister fs, Register rt) { | 2269 void Assembler::movz_d(FPURegister fd, FPURegister fs, Register rt) { |
| 2270 DCHECK(IsMipsArchVariant(kMips32r2)); | 2270 DCHECK(!IsMipsArchVariant(kMips32r6)); |
| 2271 GenInstrRegister(COP1, D, rt, fs, fd, MOVZ_C); | 2271 GenInstrRegister(COP1, D, rt, fs, fd, MOVZ_C); |
| 2272 } | 2272 } |
| 2273 | 2273 |
| 2274 | 2274 |
| 2275 void Assembler::movt_s(FPURegister fd, FPURegister fs, uint16_t cc) { | 2275 void Assembler::movt_s(FPURegister fd, FPURegister fs, uint16_t cc) { |
| 2276 DCHECK(IsMipsArchVariant(kMips32r2)); | 2276 DCHECK(!IsMipsArchVariant(kMips32r6)); |
| 2277 FPURegister ft; | 2277 FPURegister ft; |
| 2278 ft.reg_code = (cc & 0x0007) << 2 | 1; | 2278 ft.reg_code = (cc & 0x0007) << 2 | 1; |
| 2279 GenInstrRegister(COP1, S, ft, fs, fd, MOVF); | 2279 GenInstrRegister(COP1, S, ft, fs, fd, MOVF); |
| 2280 } | 2280 } |
| 2281 | 2281 |
| 2282 | 2282 |
| 2283 void Assembler::movt_d(FPURegister fd, FPURegister fs, uint16_t cc) { | 2283 void Assembler::movt_d(FPURegister fd, FPURegister fs, uint16_t cc) { |
| 2284 DCHECK(IsMipsArchVariant(kMips32r2)); | 2284 DCHECK(!IsMipsArchVariant(kMips32r6)); |
| 2285 FPURegister ft; | 2285 FPURegister ft; |
| 2286 ft.reg_code = (cc & 0x0007) << 2 | 1; | 2286 ft.reg_code = (cc & 0x0007) << 2 | 1; |
| 2287 GenInstrRegister(COP1, D, ft, fs, fd, MOVF); | 2287 GenInstrRegister(COP1, D, ft, fs, fd, MOVF); |
| 2288 } | 2288 } |
| 2289 | 2289 |
| 2290 | 2290 |
| 2291 void Assembler::movf_s(FPURegister fd, FPURegister fs, uint16_t cc) { | 2291 void Assembler::movf_s(FPURegister fd, FPURegister fs, uint16_t cc) { |
| 2292 DCHECK(IsMipsArchVariant(kMips32r2)); | 2292 DCHECK(!IsMipsArchVariant(kMips32r6)); |
| 2293 FPURegister ft; | 2293 FPURegister ft; |
| 2294 ft.reg_code = (cc & 0x0007) << 2 | 0; | 2294 ft.reg_code = (cc & 0x0007) << 2 | 0; |
| 2295 GenInstrRegister(COP1, S, ft, fs, fd, MOVF); | 2295 GenInstrRegister(COP1, S, ft, fs, fd, MOVF); |
| 2296 } | 2296 } |
| 2297 | 2297 |
| 2298 | 2298 |
| 2299 void Assembler::movf_d(FPURegister fd, FPURegister fs, uint16_t cc) { | 2299 void Assembler::movf_d(FPURegister fd, FPURegister fs, uint16_t cc) { |
| 2300 DCHECK(IsMipsArchVariant(kMips32r2)); | 2300 DCHECK(!IsMipsArchVariant(kMips32r6)); |
| 2301 FPURegister ft; | 2301 FPURegister ft; |
| 2302 ft.reg_code = (cc & 0x0007) << 2 | 0; | 2302 ft.reg_code = (cc & 0x0007) << 2 | 0; |
| 2303 GenInstrRegister(COP1, D, ft, fs, fd, MOVF); | 2303 GenInstrRegister(COP1, D, ft, fs, fd, MOVF); |
| 2304 } | 2304 } |
| 2305 | 2305 |
| 2306 | 2306 |
| 2307 // Arithmetic. | 2307 // Arithmetic. |
| 2308 | 2308 |
| 2309 void Assembler::add_s(FPURegister fd, FPURegister fs, FPURegister ft) { | 2309 void Assembler::add_s(FPURegister fd, FPURegister fs, FPURegister ft) { |
| 2310 GenInstrRegister(COP1, S, ft, fs, fd, ADD_S); | 2310 GenInstrRegister(COP1, S, ft, fs, fd, ADD_S); |
| (...skipping 712 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3023 | 3023 |
| 3024 if (icache_flush_mode != SKIP_ICACHE_FLUSH) { | 3024 if (icache_flush_mode != SKIP_ICACHE_FLUSH) { |
| 3025 CpuFeatures::FlushICache(pc, 2 * sizeof(int32_t)); | 3025 CpuFeatures::FlushICache(pc, 2 * sizeof(int32_t)); |
| 3026 } | 3026 } |
| 3027 } | 3027 } |
| 3028 | 3028 |
| 3029 } // namespace internal | 3029 } // namespace internal |
| 3030 } // namespace v8 | 3030 } // namespace v8 |
| 3031 | 3031 |
| 3032 #endif // V8_TARGET_ARCH_MIPS | 3032 #endif // V8_TARGET_ARCH_MIPS |
| OLD | NEW |