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 2318 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2329 | 2329 |
2330 | 2330 |
2331 void Assembler::dext_(Register rt, Register rs, uint16_t pos, uint16_t size) { | 2331 void Assembler::dext_(Register rt, Register rs, uint16_t pos, uint16_t size) { |
2332 // Should be called via MacroAssembler::Dext. | 2332 // Should be called via MacroAssembler::Dext. |
2333 // Dext instr has 'rt' field as dest, and two uint5: msb, lsb. | 2333 // Dext instr has 'rt' field as dest, and two uint5: msb, lsb. |
2334 DCHECK(kArchVariant == kMips64r2 || kArchVariant == kMips64r6); | 2334 DCHECK(kArchVariant == kMips64r2 || kArchVariant == kMips64r6); |
2335 GenInstrRegister(SPECIAL3, rs, rt, size - 1, pos, DEXT); | 2335 GenInstrRegister(SPECIAL3, rs, rt, size - 1, pos, DEXT); |
2336 } | 2336 } |
2337 | 2337 |
2338 | 2338 |
| 2339 void Assembler::dextm(Register rt, Register rs, uint16_t pos, uint16_t size) { |
| 2340 // Should be called via MacroAssembler::Dextm. |
| 2341 // Dextm instr has 'rt' field as dest, and two uint5: msb, lsb. |
| 2342 DCHECK(kArchVariant == kMips64r2 || kArchVariant == kMips64r6); |
| 2343 GenInstrRegister(SPECIAL3, rs, rt, size - 1 - 32, pos, DEXTM); |
| 2344 } |
| 2345 |
| 2346 |
| 2347 void Assembler::dextu(Register rt, Register rs, uint16_t pos, uint16_t size) { |
| 2348 // Should be called via MacroAssembler::Dextu. |
| 2349 // Dext instr has 'rt' field as dest, and two uint5: msb, lsb. |
| 2350 DCHECK(kArchVariant == kMips64r2 || kArchVariant == kMips64r6); |
| 2351 GenInstrRegister(SPECIAL3, rs, rt, size - 1, pos - 32, DEXTU); |
| 2352 } |
| 2353 |
| 2354 |
2339 void Assembler::bitswap(Register rd, Register rt) { | 2355 void Assembler::bitswap(Register rd, Register rt) { |
2340 DCHECK(kArchVariant == kMips64r6); | 2356 DCHECK(kArchVariant == kMips64r6); |
2341 GenInstrRegister(SPECIAL3, zero_reg, rt, rd, 0, BSHFL); | 2357 GenInstrRegister(SPECIAL3, zero_reg, rt, rd, 0, BSHFL); |
2342 } | 2358 } |
2343 | 2359 |
2344 | 2360 |
2345 void Assembler::dbitswap(Register rd, Register rt) { | 2361 void Assembler::dbitswap(Register rd, Register rt) { |
2346 DCHECK(kArchVariant == kMips64r6); | 2362 DCHECK(kArchVariant == kMips64r6); |
2347 GenInstrRegister(SPECIAL3, zero_reg, rt, rd, 0, DBSHFL); | 2363 GenInstrRegister(SPECIAL3, zero_reg, rt, rd, 0, DBSHFL); |
2348 } | 2364 } |
(...skipping 934 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3283 if (icache_flush_mode != SKIP_ICACHE_FLUSH) { | 3299 if (icache_flush_mode != SKIP_ICACHE_FLUSH) { |
3284 Assembler::FlushICache(isolate, pc, 4 * Assembler::kInstrSize); | 3300 Assembler::FlushICache(isolate, pc, 4 * Assembler::kInstrSize); |
3285 } | 3301 } |
3286 } | 3302 } |
3287 | 3303 |
3288 | 3304 |
3289 } // namespace internal | 3305 } // namespace internal |
3290 } // namespace v8 | 3306 } // namespace v8 |
3291 | 3307 |
3292 #endif // V8_TARGET_ARCH_MIPS64 | 3308 #endif // V8_TARGET_ARCH_MIPS64 |
OLD | NEW |