| 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 232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 243 } | 243 } |
| 244 | 244 |
| 245 | 245 |
| 246 // ----------------------------------------------------------------------------- | 246 // ----------------------------------------------------------------------------- |
| 247 // Specific instructions, constants, and masks. | 247 // Specific instructions, constants, and masks. |
| 248 | 248 |
| 249 static const int kNegOffset = 0x00008000; | 249 static const int kNegOffset = 0x00008000; |
| 250 // addiu(sp, sp, 4) aka Pop() operation or part of Pop(r) | 250 // addiu(sp, sp, 4) aka Pop() operation or part of Pop(r) |
| 251 // operations as post-increment of sp. | 251 // operations as post-increment of sp. |
| 252 const Instr kPopInstruction = ADDIU | (kRegister_sp_Code << kRsShift) | 252 const Instr kPopInstruction = ADDIU | (kRegister_sp_Code << kRsShift) |
| 253 | (kRegister_sp_Code << kRtShift) | (kPointerSize & kImm16Mask); | 253 | (kRegister_sp_Code << kRtShift) |
| 254 | (kPointerSize & kImm16Mask); // NOLINT |
| 254 // addiu(sp, sp, -4) part of Push(r) operation as pre-decrement of sp. | 255 // addiu(sp, sp, -4) part of Push(r) operation as pre-decrement of sp. |
| 255 const Instr kPushInstruction = ADDIU | (kRegister_sp_Code << kRsShift) | 256 const Instr kPushInstruction = ADDIU | (kRegister_sp_Code << kRsShift) |
| 256 | (kRegister_sp_Code << kRtShift) | (-kPointerSize & kImm16Mask); | 257 | (kRegister_sp_Code << kRtShift) |
| 258 | (-kPointerSize & kImm16Mask); // NOLINT |
| 257 // sw(r, MemOperand(sp, 0)) | 259 // sw(r, MemOperand(sp, 0)) |
| 258 const Instr kPushRegPattern = SW | (kRegister_sp_Code << kRsShift) | 260 const Instr kPushRegPattern = SW | (kRegister_sp_Code << kRsShift) |
| 259 | (0 & kImm16Mask); | 261 | (0 & kImm16Mask); // NOLINT |
| 260 // lw(r, MemOperand(sp, 0)) | 262 // lw(r, MemOperand(sp, 0)) |
| 261 const Instr kPopRegPattern = LW | (kRegister_sp_Code << kRsShift) | 263 const Instr kPopRegPattern = LW | (kRegister_sp_Code << kRsShift) |
| 262 | (0 & kImm16Mask); | 264 | (0 & kImm16Mask); // NOLINT |
| 263 | 265 |
| 264 const Instr kLwRegFpOffsetPattern = LW | (kRegister_fp_Code << kRsShift) | 266 const Instr kLwRegFpOffsetPattern = LW | (kRegister_fp_Code << kRsShift) |
| 265 | (0 & kImm16Mask); | 267 | (0 & kImm16Mask); // NOLINT |
| 266 | 268 |
| 267 const Instr kSwRegFpOffsetPattern = SW | (kRegister_fp_Code << kRsShift) | 269 const Instr kSwRegFpOffsetPattern = SW | (kRegister_fp_Code << kRsShift) |
| 268 | (0 & kImm16Mask); | 270 | (0 & kImm16Mask); // NOLINT |
| 269 | 271 |
| 270 const Instr kLwRegFpNegOffsetPattern = LW | (kRegister_fp_Code << kRsShift) | 272 const Instr kLwRegFpNegOffsetPattern = LW | (kRegister_fp_Code << kRsShift) |
| 271 | (kNegOffset & kImm16Mask); | 273 | (kNegOffset & kImm16Mask); // NOLINT |
| 272 | 274 |
| 273 const Instr kSwRegFpNegOffsetPattern = SW | (kRegister_fp_Code << kRsShift) | 275 const Instr kSwRegFpNegOffsetPattern = SW | (kRegister_fp_Code << kRsShift) |
| 274 | (kNegOffset & kImm16Mask); | 276 | (kNegOffset & kImm16Mask); // NOLINT |
| 275 // A mask for the Rt register for push, pop, lw, sw instructions. | 277 // A mask for the Rt register for push, pop, lw, sw instructions. |
| 276 const Instr kRtMask = kRtFieldMask; | 278 const Instr kRtMask = kRtFieldMask; |
| 277 const Instr kLwSwInstrTypeMask = 0xffe00000; | 279 const Instr kLwSwInstrTypeMask = 0xffe00000; |
| 278 const Instr kLwSwInstrArgumentMask = ~kLwSwInstrTypeMask; | 280 const Instr kLwSwInstrArgumentMask = ~kLwSwInstrTypeMask; |
| 279 const Instr kLwSwOffsetMask = kImm16Mask; | 281 const Instr kLwSwOffsetMask = kImm16Mask; |
| 280 | 282 |
| 281 | 283 |
| 282 Assembler::Assembler(Isolate* isolate, void* buffer, int buffer_size) | 284 Assembler::Assembler(Isolate* isolate, void* buffer, int buffer_size) |
| 283 : AssemblerBase(isolate, buffer, buffer_size), | 285 : AssemblerBase(isolate, buffer, buffer_size), |
| 284 recorded_ast_id_(TypeFeedbackId::None()), | 286 recorded_ast_id_(TypeFeedbackId::None()), |
| (...skipping 2027 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2312 void Assembler::PopulateConstantPool(ConstantPoolArray* constant_pool) { | 2314 void Assembler::PopulateConstantPool(ConstantPoolArray* constant_pool) { |
| 2313 // No out-of-line constant pool support. | 2315 // No out-of-line constant pool support. |
| 2314 ASSERT(!FLAG_enable_ool_constant_pool); | 2316 ASSERT(!FLAG_enable_ool_constant_pool); |
| 2315 return; | 2317 return; |
| 2316 } | 2318 } |
| 2317 | 2319 |
| 2318 | 2320 |
| 2319 } } // namespace v8::internal | 2321 } } // namespace v8::internal |
| 2320 | 2322 |
| 2321 #endif // V8_TARGET_ARCH_MIPS | 2323 #endif // V8_TARGET_ARCH_MIPS |
| OLD | NEW |