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

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

Issue 1830133002: MIPS64: Replace JR/JALR with JIC/JIALC for r6. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 8 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/mips64/full-codegen-mips64.cc ('k') | src/mips64/macro-assembler-mips64.h » ('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 517 matching lines...) Expand 10 before | Expand all | Expand 10 after
528 528
529 // Number of consecutive instructions used to store 32bit/64bit constant. 529 // Number of consecutive instructions used to store 32bit/64bit constant.
530 // This constant was used in RelocInfo::target_address_address() function 530 // This constant was used in RelocInfo::target_address_address() function
531 // to tell serializer address of the instruction that follows 531 // to tell serializer address of the instruction that follows
532 // LUI/ORI instruction pair. 532 // LUI/ORI instruction pair.
533 static const int kInstructionsFor32BitConstant = 2; 533 static const int kInstructionsFor32BitConstant = 2;
534 static const int kInstructionsFor64BitConstant = 4; 534 static const int kInstructionsFor64BitConstant = 4;
535 535
536 // Distance between the instruction referring to the address of the call 536 // Distance between the instruction referring to the address of the call
537 // target and the return address. 537 // target and the return address.
538 #ifdef _MIPS_ARCH_MIPS64R6
539 static const int kCallTargetAddressOffset = 5 * kInstrSize;
540 #else
538 static const int kCallTargetAddressOffset = 6 * kInstrSize; 541 static const int kCallTargetAddressOffset = 6 * kInstrSize;
542 #endif
539 543
540 // Distance between start of patched debug break slot and the emitted address 544 // Distance between start of patched debug break slot and the emitted address
541 // to jump to. 545 // to jump to.
542 static const int kPatchDebugBreakSlotAddressOffset = 6 * kInstrSize; 546 static const int kPatchDebugBreakSlotAddressOffset = 6 * kInstrSize;
543 547
544 // Difference between address of current opcode and value read from pc 548 // Difference between address of current opcode and value read from pc
545 // register. 549 // register.
546 static const int kPcLoadDelta = 4; 550 static const int kPcLoadDelta = 4;
547 551
552 #ifdef _MIPS_ARCH_MIPS64R6
553 static const int kDebugBreakSlotInstructions = 5;
554 #else
548 static const int kDebugBreakSlotInstructions = 6; 555 static const int kDebugBreakSlotInstructions = 6;
556 #endif
549 static const int kDebugBreakSlotLength = 557 static const int kDebugBreakSlotLength =
550 kDebugBreakSlotInstructions * kInstrSize; 558 kDebugBreakSlotInstructions * kInstrSize;
551 559
552 560
553 // --------------------------------------------------------------------------- 561 // ---------------------------------------------------------------------------
554 // Code generation. 562 // Code generation.
555 563
556 // Insert the smallest number of nop instructions 564 // Insert the smallest number of nop instructions
557 // possible to align the pc offset to a multiple 565 // possible to align the pc offset to a multiple
558 // of m. m must be a power of 2 (>= 4). 566 // of m. m must be a power of 2 (>= 4).
(...skipping 944 matching lines...) Expand 10 before | Expand all | Expand 10 after
1503 public: 1511 public:
1504 explicit EnsureSpace(Assembler* assembler) { 1512 explicit EnsureSpace(Assembler* assembler) {
1505 assembler->CheckBuffer(); 1513 assembler->CheckBuffer();
1506 } 1514 }
1507 }; 1515 };
1508 1516
1509 } // namespace internal 1517 } // namespace internal
1510 } // namespace v8 1518 } // namespace v8
1511 1519
1512 #endif // V8_ARM_ASSEMBLER_MIPS_H_ 1520 #endif // V8_ARM_ASSEMBLER_MIPS_H_
OLDNEW
« no previous file with comments | « src/full-codegen/mips64/full-codegen-mips64.cc ('k') | src/mips64/macro-assembler-mips64.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698