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

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

Issue 1144373003: MIPS: Implemented PC-relative instructions for R6. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 6 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
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 727 matching lines...) Expand 10 before | Expand all | Expand 10 after
738 // Never use the int16_t b(l)cond version with a branch offset 738 // Never use the int16_t b(l)cond version with a branch offset
739 // instead of using the Label* version. 739 // instead of using the Label* version.
740 740
741 // Jump targets must be in the current 256 MB-aligned region. i.e. 28 bits. 741 // Jump targets must be in the current 256 MB-aligned region. i.e. 28 bits.
742 void j(int64_t target); 742 void j(int64_t target);
743 void jal(int64_t target); 743 void jal(int64_t target);
744 void jalr(Register rs, Register rd = ra); 744 void jalr(Register rs, Register rd = ra);
745 void jr(Register target); 745 void jr(Register target);
746 void j_or_jr(int64_t target, Register rs); 746 void j_or_jr(int64_t target, Register rs);
747 void jal_or_jalr(int64_t target, Register rs); 747 void jal_or_jalr(int64_t target, Register rs);
748 void jic(Register rt, int16_t offset);
749 void jialc(Register rt, int16_t offset);
748 750
749 751
750 // -------Data-processing-instructions--------- 752 // -------Data-processing-instructions---------
751 753
752 // Arithmetic. 754 // Arithmetic.
753 void addu(Register rd, Register rs, Register rt); 755 void addu(Register rd, Register rs, Register rt);
754 void subu(Register rd, Register rs, Register rt); 756 void subu(Register rd, Register rs, Register rt);
755 757
756 void div(Register rs, Register rt); 758 void div(Register rs, Register rt);
757 void divu(Register rs, Register rt); 759 void divu(Register rs, Register rt);
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
840 void swl(Register rd, const MemOperand& rs); 842 void swl(Register rd, const MemOperand& rs);
841 void swr(Register rd, const MemOperand& rs); 843 void swr(Register rd, const MemOperand& rs);
842 void ldl(Register rd, const MemOperand& rs); 844 void ldl(Register rd, const MemOperand& rs);
843 void ldr(Register rd, const MemOperand& rs); 845 void ldr(Register rd, const MemOperand& rs);
844 void sdl(Register rd, const MemOperand& rs); 846 void sdl(Register rd, const MemOperand& rs);
845 void sdr(Register rd, const MemOperand& rs); 847 void sdr(Register rd, const MemOperand& rs);
846 void ld(Register rd, const MemOperand& rs); 848 void ld(Register rd, const MemOperand& rs);
847 void sd(Register rd, const MemOperand& rs); 849 void sd(Register rd, const MemOperand& rs);
848 850
849 851
852 // ---------PC-Relative-instructions-----------
853
854 void addiupc(Register rs, int32_t imm19);
855 void lwpc(Register rs, int32_t offset19);
856 // void lwupc(Register rs, int32_t offset19);
857 void ldpc(Register rs, int32_t offset18);
858 // void auipc(Register rs, int16_t imm16);
859 void aluipc(Register rs, int16_t imm16);
860
861
850 // ----------------Prefetch-------------------- 862 // ----------------Prefetch--------------------
851 863
852 void pref(int32_t hint, const MemOperand& rs); 864 void pref(int32_t hint, const MemOperand& rs);
853 865
854 866
855 // -------------Misc-instructions-------------- 867 // -------------Misc-instructions--------------
856 868
857 // Break / Trap instructions. 869 // Break / Trap instructions.
858 void break_(uint32_t code, bool break_as_stop = false); 870 void break_(uint32_t code, bool break_as_stop = false);
859 void stop(const char* msg, uint32_t code = kMaxStopCode); 871 void stop(const char* msg, uint32_t code = kMaxStopCode);
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
902 void movf_d(FPURegister fd, FPURegister fs, uint16_t cc); 914 void movf_d(FPURegister fd, FPURegister fs, uint16_t cc);
903 void movn_s(FPURegister fd, FPURegister fs, Register rt); 915 void movn_s(FPURegister fd, FPURegister fs, Register rt);
904 void movn_d(FPURegister fd, FPURegister fs, Register rt); 916 void movn_d(FPURegister fd, FPURegister fs, Register rt);
905 // Bit twiddling. 917 // Bit twiddling.
906 void clz(Register rd, Register rs); 918 void clz(Register rd, Register rs);
907 void ins_(Register rt, Register rs, uint16_t pos, uint16_t size); 919 void ins_(Register rt, Register rs, uint16_t pos, uint16_t size);
908 void ext_(Register rt, Register rs, uint16_t pos, uint16_t size); 920 void ext_(Register rt, Register rs, uint16_t pos, uint16_t size);
909 void dext_(Register rt, Register rs, uint16_t pos, uint16_t size); 921 void dext_(Register rt, Register rs, uint16_t pos, uint16_t size);
910 void bitswap(Register rd, Register rt); 922 void bitswap(Register rd, Register rt);
911 void dbitswap(Register rd, Register rt); 923 void dbitswap(Register rd, Register rt);
924 void align(Register rd, Register rs, Register rt, uint8_t bp);
925 void dalign(Register rd, Register rs, Register rt, uint8_t bp);
912 926
913 // --------Coprocessor-instructions---------------- 927 // --------Coprocessor-instructions----------------
914 928
915 // Load, store, and move. 929 // Load, store, and move.
916 void lwc1(FPURegister fd, const MemOperand& src); 930 void lwc1(FPURegister fd, const MemOperand& src);
917 void ldc1(FPURegister fd, const MemOperand& src); 931 void ldc1(FPURegister fd, const MemOperand& src);
918 932
919 void swc1(FPURegister fs, const MemOperand& dst); 933 void swc1(FPURegister fs, const MemOperand& dst);
920 void sdc1(FPURegister fs, const MemOperand& dst); 934 void sdc1(FPURegister fs, const MemOperand& dst);
921 935
(...skipping 452 matching lines...) Expand 10 before | Expand all | Expand 10 after
1374 Register rt, 1388 Register rt,
1375 int32_t j); 1389 int32_t j);
1376 void GenInstrImmediate(Opcode opcode, 1390 void GenInstrImmediate(Opcode opcode,
1377 Register rs, 1391 Register rs,
1378 SecondaryField SF, 1392 SecondaryField SF,
1379 int32_t j); 1393 int32_t j);
1380 void GenInstrImmediate(Opcode opcode, 1394 void GenInstrImmediate(Opcode opcode,
1381 Register r1, 1395 Register r1,
1382 FPURegister r2, 1396 FPURegister r2,
1383 int32_t j); 1397 int32_t j);
1398 void GenInstrImmediate(Opcode opcode, Register rs, int32_t j);
1384 1399
1385 1400
1386 void GenInstrJump(Opcode opcode, 1401 void GenInstrJump(Opcode opcode,
1387 uint32_t address); 1402 uint32_t address);
1388 1403
1389 // Helpers. 1404 // Helpers.
1390 void LoadRegPlusOffsetToAt(const MemOperand& src); 1405 void LoadRegPlusOffsetToAt(const MemOperand& src);
1391 1406
1392 // Labels. 1407 // Labels.
1393 void print(Label* L); 1408 void print(Label* L);
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
1478 class EnsureSpace BASE_EMBEDDED { 1493 class EnsureSpace BASE_EMBEDDED {
1479 public: 1494 public:
1480 explicit EnsureSpace(Assembler* assembler) { 1495 explicit EnsureSpace(Assembler* assembler) {
1481 assembler->CheckBuffer(); 1496 assembler->CheckBuffer();
1482 } 1497 }
1483 }; 1498 };
1484 1499
1485 } } // namespace v8::internal 1500 } } // namespace v8::internal
1486 1501
1487 #endif // V8_ARM_ASSEMBLER_MIPS_H_ 1502 #endif // V8_ARM_ASSEMBLER_MIPS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698