Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(338)

Side by Side Diff: src/mips/assembler-mips.h

Issue 1807263003: MIPS: Replace JR/JALR with JIC/JIALC for r6 part 2 (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/full-codegen/mips/full-codegen-mips.cc ('k') | src/mips/macro-assembler-mips.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 510 matching lines...) Expand 10 before | Expand all | Expand 10 after
521 static const int kSpecialTargetSize = 0; 521 static const int kSpecialTargetSize = 0;
522 522
523 // Number of consecutive instructions used to store 32bit constant. This 523 // Number of consecutive instructions used to store 32bit constant. This
524 // constant is used in RelocInfo::target_address_address() function to tell 524 // constant is used in RelocInfo::target_address_address() function to tell
525 // serializer address of the instruction that follows LUI/ORI instruction 525 // serializer address of the instruction that follows LUI/ORI instruction
526 // pair. 526 // pair.
527 static const int kInstructionsFor32BitConstant = 2; 527 static const int kInstructionsFor32BitConstant = 2;
528 528
529 // Distance between the instruction referring to the address of the call 529 // Distance between the instruction referring to the address of the call
530 // target and the return address. 530 // target and the return address.
531 #ifdef _MIPS_ARCH_MIPS32R6
532 static const int kCallTargetAddressOffset = 3 * kInstrSize;
533 #else
531 static const int kCallTargetAddressOffset = 4 * kInstrSize; 534 static const int kCallTargetAddressOffset = 4 * kInstrSize;
535 #endif
532 536
533 // Distance between start of patched debug break slot and the emitted address 537 // Distance between start of patched debug break slot and the emitted address
534 // to jump to. 538 // to jump to.
535 static const int kPatchDebugBreakSlotAddressOffset = 4 * kInstrSize; 539 static const int kPatchDebugBreakSlotAddressOffset = 4 * kInstrSize;
536 540
537 // Difference between address of current opcode and value read from pc 541 // Difference between address of current opcode and value read from pc
538 // register. 542 // register.
539 static const int kPcLoadDelta = 4; 543 static const int kPcLoadDelta = 4;
540 544
545 #ifdef _MIPS_ARCH_MIPS32R6
546 static const int kDebugBreakSlotInstructions = 3;
547 #else
541 static const int kDebugBreakSlotInstructions = 4; 548 static const int kDebugBreakSlotInstructions = 4;
549 #endif
542 static const int kDebugBreakSlotLength = 550 static const int kDebugBreakSlotLength =
543 kDebugBreakSlotInstructions * kInstrSize; 551 kDebugBreakSlotInstructions * kInstrSize;
544 552
545 553
546 // --------------------------------------------------------------------------- 554 // ---------------------------------------------------------------------------
547 // Code generation. 555 // Code generation.
548 556
549 // Insert the smallest number of nop instructions 557 // Insert the smallest number of nop instructions
550 // possible to align the pc offset to a multiple 558 // possible to align the pc offset to a multiple
551 // of m. m must be a power of 2 (>= 4). 559 // of m. m must be a power of 2 (>= 4).
(...skipping 901 matching lines...) Expand 10 before | Expand all | Expand 10 after
1453 public: 1461 public:
1454 explicit EnsureSpace(Assembler* assembler) { 1462 explicit EnsureSpace(Assembler* assembler) {
1455 assembler->CheckBuffer(); 1463 assembler->CheckBuffer();
1456 } 1464 }
1457 }; 1465 };
1458 1466
1459 } // namespace internal 1467 } // namespace internal
1460 } // namespace v8 1468 } // namespace v8
1461 1469
1462 #endif // V8_ARM_ASSEMBLER_MIPS_H_ 1470 #endif // V8_ARM_ASSEMBLER_MIPS_H_
OLDNEW
« no previous file with comments | « src/full-codegen/mips/full-codegen-mips.cc ('k') | src/mips/macro-assembler-mips.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698