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 |