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 2294 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2305 | 2305 |
2306 | 2306 |
2307 void Assembler::ins_(Register rt, Register rs, uint16_t pos, uint16_t size) { | 2307 void Assembler::ins_(Register rt, Register rs, uint16_t pos, uint16_t size) { |
2308 // Should be called via MacroAssembler::Ins. | 2308 // Should be called via MacroAssembler::Ins. |
2309 // Ins instr has 'rt' field as dest, and two uint5: msb, lsb. | 2309 // Ins instr has 'rt' field as dest, and two uint5: msb, lsb. |
2310 DCHECK((kArchVariant == kMips64r2) || (kArchVariant == kMips64r6)); | 2310 DCHECK((kArchVariant == kMips64r2) || (kArchVariant == kMips64r6)); |
2311 GenInstrRegister(SPECIAL3, rs, rt, pos + size - 1, pos, INS); | 2311 GenInstrRegister(SPECIAL3, rs, rt, pos + size - 1, pos, INS); |
2312 } | 2312 } |
2313 | 2313 |
2314 | 2314 |
| 2315 void Assembler::dins_(Register rt, Register rs, uint16_t pos, uint16_t size) { |
| 2316 // Should be called via MacroAssembler::Dins. |
| 2317 // Dext instr has 'rt' field as dest, and two uint5: msb, lsb. |
| 2318 DCHECK(kArchVariant == kMips64r2 || kArchVariant == kMips64r6); |
| 2319 GenInstrRegister(SPECIAL3, rs, rt, pos + size - 1, pos, DINS); |
| 2320 } |
| 2321 |
| 2322 |
2315 void Assembler::ext_(Register rt, Register rs, uint16_t pos, uint16_t size) { | 2323 void Assembler::ext_(Register rt, Register rs, uint16_t pos, uint16_t size) { |
2316 // Should be called via MacroAssembler::Ext. | 2324 // Should be called via MacroAssembler::Ext. |
2317 // Ext instr has 'rt' field as dest, and two uint5: msb, lsb. | 2325 // Ext instr has 'rt' field as dest, and two uint5: msb, lsb. |
2318 DCHECK(kArchVariant == kMips64r2 || kArchVariant == kMips64r6); | 2326 DCHECK(kArchVariant == kMips64r2 || kArchVariant == kMips64r6); |
2319 GenInstrRegister(SPECIAL3, rs, rt, size - 1, pos, EXT); | 2327 GenInstrRegister(SPECIAL3, rs, rt, size - 1, pos, EXT); |
2320 } | 2328 } |
2321 | 2329 |
2322 | 2330 |
2323 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) { |
2324 // Should be called via MacroAssembler::Ext. | 2332 // Should be called via MacroAssembler::Dext. |
2325 // 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. |
2326 DCHECK(kArchVariant == kMips64r2 || kArchVariant == kMips64r6); | 2334 DCHECK(kArchVariant == kMips64r2 || kArchVariant == kMips64r6); |
2327 GenInstrRegister(SPECIAL3, rs, rt, size - 1, pos, DEXT); | 2335 GenInstrRegister(SPECIAL3, rs, rt, size - 1, pos, DEXT); |
2328 } | 2336 } |
2329 | 2337 |
2330 | 2338 |
2331 void Assembler::bitswap(Register rd, Register rt) { | 2339 void Assembler::bitswap(Register rd, Register rt) { |
2332 DCHECK(kArchVariant == kMips64r6); | 2340 DCHECK(kArchVariant == kMips64r6); |
2333 GenInstrRegister(SPECIAL3, zero_reg, rt, rd, 0, BSHFL); | 2341 GenInstrRegister(SPECIAL3, zero_reg, rt, rd, 0, BSHFL); |
2334 } | 2342 } |
(...skipping 940 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3275 if (icache_flush_mode != SKIP_ICACHE_FLUSH) { | 3283 if (icache_flush_mode != SKIP_ICACHE_FLUSH) { |
3276 Assembler::FlushICache(isolate, pc, 4 * Assembler::kInstrSize); | 3284 Assembler::FlushICache(isolate, pc, 4 * Assembler::kInstrSize); |
3277 } | 3285 } |
3278 } | 3286 } |
3279 | 3287 |
3280 | 3288 |
3281 } // namespace internal | 3289 } // namespace internal |
3282 } // namespace v8 | 3290 } // namespace v8 |
3283 | 3291 |
3284 #endif // V8_TARGET_ARCH_MIPS64 | 3292 #endif // V8_TARGET_ARCH_MIPS64 |
OLD | NEW |