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

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

Issue 2775413002: PPC: Declare X format assembler function with opcode list macro (Closed)
Patch Set: Created 3 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/crankshaft/ppc/lithium-codegen-ppc.cc ('k') | src/ppc/assembler-ppc.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 5 // modification, are permitted provided that the following conditions
6 // are met: 6 // are 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 534 matching lines...) Expand 10 before | Expand all | Expand 10 after
545 // FIXED_SEQUENCE 545 // FIXED_SEQUENCE
546 static constexpr int kDebugBreakSlotInstructions = 546 static constexpr int kDebugBreakSlotInstructions =
547 kMovInstructionsNoConstantPool + 2; 547 kMovInstructionsNoConstantPool + 2;
548 static constexpr int kDebugBreakSlotLength = 548 static constexpr int kDebugBreakSlotLength =
549 kDebugBreakSlotInstructions * kInstrSize; 549 kDebugBreakSlotInstructions * kInstrSize;
550 550
551 static inline int encode_crbit(const CRegister& cr, enum CRBit crbit) { 551 static inline int encode_crbit(const CRegister& cr, enum CRBit crbit) {
552 return ((cr.code() * CRWIDTH) + crbit); 552 return ((cr.code() * CRWIDTH) + crbit);
553 } 553 }
554 554
555 #define DECLARE_PPC_X_INSTRUCTIONS_A_FORM(name, instr_name, instr_value) \
556 inline void name(const Register rt, const Register ra, \
557 const Register rb, const RCBit rc = LeaveRC) { \
558 x_form(instr_name, rt, ra, rb, rc); \
559 }
560
561 #define DECLARE_PPC_X_INSTRUCTIONS_B_FORM(name, instr_name, instr_value) \
562 inline void name(const Register ra, const Register rs, \
563 const Register rb, const RCBit rc = LeaveRC) { \
564 x_form(instr_name, rs, ra, rb, rc); \
565 }
566
567 #define DECLARE_PPC_X_INSTRUCTIONS_C_FORM(name, instr_name, instr_value) \
568 inline void name(const Register dst, const Register src, \
569 const RCBit rc = LeaveRC) { \
570 x_form(instr_name, src, dst, r0, rc); \
571 }
572
573 #define DECLARE_PPC_X_INSTRUCTIONS_D_FORM(name, instr_name, instr_value) \
574 template <class R> \
575 inline void name(const R rt, const Register ra, \
576 const Register rb, const RCBit rc = LeaveRC) { \
577 DCHECK(!ra.is(r0)); \
578 x_form(instr_name, rt.code(), ra.code(), rb.code(), rc); \
579 } \
580 template <class R> \
581 inline void name(const R dst, const MemOperand& src) { \
582 name(dst, src.ra(), src.rb()); \
583 }
584
585 #define DECLARE_PPC_X_INSTRUCTIONS_E_FORM(name, instr_name, instr_value) \
586 inline void name(const Register dst, const Register src, \
587 const int sh, const RCBit rc = LeaveRC) { \
588 x_form(instr_name, src.code(), dst.code(), sh, rc); \
589 }
590
591 #define DECLARE_PPC_X_INSTRUCTIONS_F_FORM(name, instr_name, instr_value) \
592 inline void name(const Register src1, const Register src2, \
593 const CRegister cr = cr7, const RCBit rc = LeaveRC) { \
594 x_form(instr_name, cr, src1, src2, rc); \
595 } \
596 inline void name##w(const Register src1, const Register src2, \
597 const CRegister cr = cr7, const RCBit rc = LeaveRC) { \
598 x_form(instr_name, cr.code() * B2, src1.code(), src2.code(), LeaveRC); \
599 }
600
601 inline void x_form(Instr instr, int f1, int f2, int f3, int rc) {
602 emit(instr | f1 * B21 | f2 * B16 | f3 * B11 | rc);
603 }
604 inline void x_form(Instr instr, Register rs, Register ra, Register rb,
605 RCBit rc) {
606 emit(instr | rs.code() * B21 | ra.code() * B16 | rb.code() * B11 | rc);
607 }
608 inline void x_form(Instr instr, CRegister cr, Register s1, Register s2,
609 RCBit rc) {
610 #if V8_TARGET_ARCH_PPC64
611 int L = 1;
612 #else
613 int L = 0;
614 #endif
615 emit(instr | cr.code() * B23 | L * B21 | s1.code() * B16 |
616 s2.code() * B11 | rc);
617 }
618
619 PPC_X_OPCODE_A_FORM_LIST(DECLARE_PPC_X_INSTRUCTIONS_A_FORM)
620 PPC_X_OPCODE_B_FORM_LIST(DECLARE_PPC_X_INSTRUCTIONS_B_FORM)
621 PPC_X_OPCODE_C_FORM_LIST(DECLARE_PPC_X_INSTRUCTIONS_C_FORM)
622 PPC_X_OPCODE_D_FORM_LIST(DECLARE_PPC_X_INSTRUCTIONS_D_FORM)
623 PPC_X_OPCODE_E_FORM_LIST(DECLARE_PPC_X_INSTRUCTIONS_E_FORM)
624 PPC_X_OPCODE_F_FORM_LIST(DECLARE_PPC_X_INSTRUCTIONS_F_FORM)
625
626 inline void notx(Register dst, Register src, RCBit rc = LeaveRC) {
627 nor(dst, src, src, rc);
628 }
629 inline void lwax(Register rt, const MemOperand& src) {
630 #if V8_TARGET_ARCH_PPC64
631 Register ra = src.ra();
632 Register rb = src.rb();
633 DCHECK(!ra.is(r0));
634 x_form(LWAX, rt, ra, rb, LeaveRC);
635 #else
636 lwzx(rt, src);
637 #endif
638 }
639 inline void extsw(Register rs, Register ra, RCBit rc = LeaveRC) {
640 #if V8_TARGET_ARCH_PPC64
641 emit(EXT2 | EXTSW | ra.code() * B21 | rs.code() * B16 | rc);
642 #else
643 // nop on 32-bit
644 DCHECK(rs.is(ra) && rc == LeaveRC);
645 #endif
646 }
647
648 #undef DECLARE_PPC_X_INSTRUCTIONS_A_FORM
649 #undef DECLARE_PPC_X_INSTRUCTIONS_B_FORM
650 #undef DECLARE_PPC_X_INSTRUCTIONS_C_FORM
651 #undef DECLARE_PPC_X_INSTRUCTIONS_D_FORM
652 #undef DECLARE_PPC_X_INSTRUCTIONS_E_FORM
653 #undef DECLARE_PPC_X_INSTRUCTIONS_F_FORM
654
555 #define DECLARE_PPC_XX3_INSTRUCTIONS(name, instr_name, instr_value) \ 655 #define DECLARE_PPC_XX3_INSTRUCTIONS(name, instr_name, instr_value) \
556 inline void name(const DoubleRegister rt, const DoubleRegister ra, \ 656 inline void name(const DoubleRegister rt, const DoubleRegister ra, \
557 const DoubleRegister rb) { \ 657 const DoubleRegister rb) { \
558 xx3_form(instr_name, rt, ra, rb); \ 658 xx3_form(instr_name, rt, ra, rb); \
559 } 659 }
560 660
561 inline void xx3_form(Instr instr, DoubleRegister t, DoubleRegister a, 661 inline void xx3_form(Instr instr, DoubleRegister t, DoubleRegister a,
562 DoubleRegister b) { 662 DoubleRegister b) {
563 int AX = ((a.code() & 0x20) >> 5) & 0x1; 663 int AX = ((a.code() & 0x20) >> 5) & 0x1;
564 int BX = ((b.code() & 0x20) >> 5) & 0x1; 664 int BX = ((b.code() & 0x20) >> 5) & 0x1;
(...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after
842 void mullw(Register dst, Register src1, Register src2, OEBit o = LeaveOE, 942 void mullw(Register dst, Register src1, Register src2, OEBit o = LeaveOE,
843 RCBit r = LeaveRC); 943 RCBit r = LeaveRC);
844 944
845 void mulhw(Register dst, Register src1, Register src2, RCBit r = LeaveRC); 945 void mulhw(Register dst, Register src1, Register src2, RCBit r = LeaveRC);
846 void mulhwu(Register dst, Register src1, Register src2, RCBit r = LeaveRC); 946 void mulhwu(Register dst, Register src1, Register src2, RCBit r = LeaveRC);
847 947
848 void divw(Register dst, Register src1, Register src2, OEBit o = LeaveOE, 948 void divw(Register dst, Register src1, Register src2, OEBit o = LeaveOE,
849 RCBit r = LeaveRC); 949 RCBit r = LeaveRC);
850 void divwu(Register dst, Register src1, Register src2, OEBit o = LeaveOE, 950 void divwu(Register dst, Register src1, Register src2, OEBit o = LeaveOE,
851 RCBit r = LeaveRC); 951 RCBit r = LeaveRC);
852 void modsw(Register rt, Register ra, Register rb);
853 void moduw(Register rt, Register ra, Register rb);
854 952
855 void addi(Register dst, Register src, const Operand& imm); 953 void addi(Register dst, Register src, const Operand& imm);
856 void addis(Register dst, Register src, const Operand& imm); 954 void addis(Register dst, Register src, const Operand& imm);
857 void addic(Register dst, Register src, const Operand& imm); 955 void addic(Register dst, Register src, const Operand& imm);
858 956
859 void and_(Register dst, Register src1, Register src2, RCBit rc = LeaveRC);
860 void andc(Register dst, Register src1, Register src2, RCBit rc = LeaveRC);
861 void andi(Register ra, Register rs, const Operand& imm); 957 void andi(Register ra, Register rs, const Operand& imm);
862 void andis(Register ra, Register rs, const Operand& imm); 958 void andis(Register ra, Register rs, const Operand& imm);
863 void nor(Register dst, Register src1, Register src2, RCBit r = LeaveRC);
864 void notx(Register dst, Register src, RCBit r = LeaveRC);
865 void ori(Register dst, Register src, const Operand& imm); 959 void ori(Register dst, Register src, const Operand& imm);
866 void oris(Register dst, Register src, const Operand& imm); 960 void oris(Register dst, Register src, const Operand& imm);
867 void orx(Register dst, Register src1, Register src2, RCBit rc = LeaveRC);
868 void orc(Register dst, Register src1, Register src2, RCBit rc = LeaveRC);
869 void xori(Register dst, Register src, const Operand& imm); 961 void xori(Register dst, Register src, const Operand& imm);
870 void xoris(Register ra, Register rs, const Operand& imm); 962 void xoris(Register ra, Register rs, const Operand& imm);
871 void xor_(Register dst, Register src1, Register src2, RCBit rc = LeaveRC);
872 void cmpi(Register src1, const Operand& src2, CRegister cr = cr7); 963 void cmpi(Register src1, const Operand& src2, CRegister cr = cr7);
873 void cmpli(Register src1, const Operand& src2, CRegister cr = cr7); 964 void cmpli(Register src1, const Operand& src2, CRegister cr = cr7);
874 void cmpwi(Register src1, const Operand& src2, CRegister cr = cr7); 965 void cmpwi(Register src1, const Operand& src2, CRegister cr = cr7);
875 void cmplwi(Register src1, const Operand& src2, CRegister cr = cr7); 966 void cmplwi(Register src1, const Operand& src2, CRegister cr = cr7);
876 void li(Register dst, const Operand& src); 967 void li(Register dst, const Operand& src);
877 void lis(Register dst, const Operand& imm); 968 void lis(Register dst, const Operand& imm);
878 void mr(Register dst, Register src); 969 void mr(Register dst, Register src);
879 970
880 void lbz(Register dst, const MemOperand& src); 971 void lbz(Register dst, const MemOperand& src);
881 void lbzx(Register dst, const MemOperand& src);
882 void lbzux(Register dst, const MemOperand& src);
883 void lhz(Register dst, const MemOperand& src); 972 void lhz(Register dst, const MemOperand& src);
884 void lhzx(Register dst, const MemOperand& src);
885 void lhzux(Register dst, const MemOperand& src);
886 void lha(Register dst, const MemOperand& src); 973 void lha(Register dst, const MemOperand& src);
887 void lhax(Register dst, const MemOperand& src);
888 void lwz(Register dst, const MemOperand& src); 974 void lwz(Register dst, const MemOperand& src);
889 void lwzu(Register dst, const MemOperand& src); 975 void lwzu(Register dst, const MemOperand& src);
890 void lwzx(Register dst, const MemOperand& src);
891 void lwzux(Register dst, const MemOperand& src);
892 void lwa(Register dst, const MemOperand& src); 976 void lwa(Register dst, const MemOperand& src);
893 void lwax(Register dst, const MemOperand& src);
894 void ldbrx(Register dst, const MemOperand& src);
895 void lwbrx(Register dst, const MemOperand& src);
896 void lhbrx(Register dst, const MemOperand& src);
897 void stb(Register dst, const MemOperand& src); 977 void stb(Register dst, const MemOperand& src);
898 void stbx(Register dst, const MemOperand& src);
899 void stbux(Register dst, const MemOperand& src);
900 void sth(Register dst, const MemOperand& src); 978 void sth(Register dst, const MemOperand& src);
901 void sthx(Register dst, const MemOperand& src);
902 void sthux(Register dst, const MemOperand& src);
903 void stw(Register dst, const MemOperand& src); 979 void stw(Register dst, const MemOperand& src);
904 void stwu(Register dst, const MemOperand& src); 980 void stwu(Register dst, const MemOperand& src);
905 void stwx(Register rs, const MemOperand& src);
906 void stwux(Register rs, const MemOperand& src);
907
908 void extsb(Register rs, Register ra, RCBit r = LeaveRC);
909 void extsh(Register rs, Register ra, RCBit r = LeaveRC);
910 void extsw(Register rs, Register ra, RCBit r = LeaveRC);
911 981
912 void neg(Register rt, Register ra, OEBit o = LeaveOE, RCBit c = LeaveRC); 982 void neg(Register rt, Register ra, OEBit o = LeaveOE, RCBit c = LeaveRC);
913 983
914 #if V8_TARGET_ARCH_PPC64 984 #if V8_TARGET_ARCH_PPC64
915 void ld(Register rd, const MemOperand& src); 985 void ld(Register rd, const MemOperand& src);
916 void ldx(Register rd, const MemOperand& src);
917 void ldu(Register rd, const MemOperand& src); 986 void ldu(Register rd, const MemOperand& src);
918 void ldux(Register rd, const MemOperand& src);
919 void std(Register rs, const MemOperand& src); 987 void std(Register rs, const MemOperand& src);
920 void stdx(Register rs, const MemOperand& src);
921 void stdu(Register rs, const MemOperand& src); 988 void stdu(Register rs, const MemOperand& src);
922 void stdux(Register rs, const MemOperand& src);
923 void rldic(Register dst, Register src, int sh, int mb, RCBit r = LeaveRC); 989 void rldic(Register dst, Register src, int sh, int mb, RCBit r = LeaveRC);
924 void rldicl(Register dst, Register src, int sh, int mb, RCBit r = LeaveRC); 990 void rldicl(Register dst, Register src, int sh, int mb, RCBit r = LeaveRC);
925 void rldcl(Register ra, Register rs, Register rb, int mb, RCBit r = LeaveRC); 991 void rldcl(Register ra, Register rs, Register rb, int mb, RCBit r = LeaveRC);
926 void rldicr(Register dst, Register src, int sh, int me, RCBit r = LeaveRC); 992 void rldicr(Register dst, Register src, int sh, int me, RCBit r = LeaveRC);
927 void rldimi(Register dst, Register src, int sh, int mb, RCBit r = LeaveRC); 993 void rldimi(Register dst, Register src, int sh, int mb, RCBit r = LeaveRC);
928 void sldi(Register dst, Register src, const Operand& val, RCBit rc = LeaveRC); 994 void sldi(Register dst, Register src, const Operand& val, RCBit rc = LeaveRC);
929 void srdi(Register dst, Register src, const Operand& val, RCBit rc = LeaveRC); 995 void srdi(Register dst, Register src, const Operand& val, RCBit rc = LeaveRC);
930 void clrrdi(Register dst, Register src, const Operand& val, 996 void clrrdi(Register dst, Register src, const Operand& val,
931 RCBit rc = LeaveRC); 997 RCBit rc = LeaveRC);
932 void clrldi(Register dst, Register src, const Operand& val, 998 void clrldi(Register dst, Register src, const Operand& val,
933 RCBit rc = LeaveRC); 999 RCBit rc = LeaveRC);
934 void sradi(Register ra, Register rs, int sh, RCBit r = LeaveRC); 1000 void sradi(Register ra, Register rs, int sh, RCBit r = LeaveRC);
935 void srd(Register dst, Register src1, Register src2, RCBit r = LeaveRC);
936 void sld(Register dst, Register src1, Register src2, RCBit r = LeaveRC);
937 void srad(Register dst, Register src1, Register src2, RCBit r = LeaveRC);
938 void rotld(Register ra, Register rs, Register rb, RCBit r = LeaveRC); 1001 void rotld(Register ra, Register rs, Register rb, RCBit r = LeaveRC);
939 void rotldi(Register ra, Register rs, int sh, RCBit r = LeaveRC); 1002 void rotldi(Register ra, Register rs, int sh, RCBit r = LeaveRC);
940 void rotrdi(Register ra, Register rs, int sh, RCBit r = LeaveRC); 1003 void rotrdi(Register ra, Register rs, int sh, RCBit r = LeaveRC);
941 void cntlzd_(Register dst, Register src, RCBit rc = LeaveRC);
942 void popcntd(Register dst, Register src);
943 void mulld(Register dst, Register src1, Register src2, OEBit o = LeaveOE, 1004 void mulld(Register dst, Register src1, Register src2, OEBit o = LeaveOE,
944 RCBit r = LeaveRC); 1005 RCBit r = LeaveRC);
945 void divd(Register dst, Register src1, Register src2, OEBit o = LeaveOE, 1006 void divd(Register dst, Register src1, Register src2, OEBit o = LeaveOE,
946 RCBit r = LeaveRC); 1007 RCBit r = LeaveRC);
947 void divdu(Register dst, Register src1, Register src2, OEBit o = LeaveOE, 1008 void divdu(Register dst, Register src1, Register src2, OEBit o = LeaveOE,
948 RCBit r = LeaveRC); 1009 RCBit r = LeaveRC);
949 void modsd(Register rt, Register ra, Register rb);
950 void modud(Register rt, Register ra, Register rb);
951 #endif 1010 #endif
952 1011
953 void rlwinm(Register ra, Register rs, int sh, int mb, int me, 1012 void rlwinm(Register ra, Register rs, int sh, int mb, int me,
954 RCBit rc = LeaveRC); 1013 RCBit rc = LeaveRC);
955 void rlwimi(Register ra, Register rs, int sh, int mb, int me, 1014 void rlwimi(Register ra, Register rs, int sh, int mb, int me,
956 RCBit rc = LeaveRC); 1015 RCBit rc = LeaveRC);
957 void rlwnm(Register ra, Register rs, Register rb, int mb, int me, 1016 void rlwnm(Register ra, Register rs, Register rb, int mb, int me,
958 RCBit rc = LeaveRC); 1017 RCBit rc = LeaveRC);
959 void slwi(Register dst, Register src, const Operand& val, RCBit rc = LeaveRC); 1018 void slwi(Register dst, Register src, const Operand& val, RCBit rc = LeaveRC);
960 void srwi(Register dst, Register src, const Operand& val, RCBit rc = LeaveRC); 1019 void srwi(Register dst, Register src, const Operand& val, RCBit rc = LeaveRC);
961 void clrrwi(Register dst, Register src, const Operand& val, 1020 void clrrwi(Register dst, Register src, const Operand& val,
962 RCBit rc = LeaveRC); 1021 RCBit rc = LeaveRC);
963 void clrlwi(Register dst, Register src, const Operand& val, 1022 void clrlwi(Register dst, Register src, const Operand& val,
964 RCBit rc = LeaveRC); 1023 RCBit rc = LeaveRC);
965 void srawi(Register ra, Register rs, int sh, RCBit r = LeaveRC);
966 void srw(Register dst, Register src1, Register src2, RCBit r = LeaveRC);
967 void slw(Register dst, Register src1, Register src2, RCBit r = LeaveRC);
968 void sraw(Register dst, Register src1, Register src2, RCBit r = LeaveRC);
969 void rotlw(Register ra, Register rs, Register rb, RCBit r = LeaveRC); 1024 void rotlw(Register ra, Register rs, Register rb, RCBit r = LeaveRC);
970 void rotlwi(Register ra, Register rs, int sh, RCBit r = LeaveRC); 1025 void rotlwi(Register ra, Register rs, int sh, RCBit r = LeaveRC);
971 void rotrwi(Register ra, Register rs, int sh, RCBit r = LeaveRC); 1026 void rotrwi(Register ra, Register rs, int sh, RCBit r = LeaveRC);
972 1027
973 void cntlzw_(Register dst, Register src, RCBit rc = LeaveRC);
974 void popcntw(Register dst, Register src);
975
976 void subi(Register dst, Register src1, const Operand& src2); 1028 void subi(Register dst, Register src1, const Operand& src2);
977 1029
978 void cmp(Register src1, Register src2, CRegister cr = cr7);
979 void cmpl(Register src1, Register src2, CRegister cr = cr7);
980 void cmpw(Register src1, Register src2, CRegister cr = cr7);
981 void cmplw(Register src1, Register src2, CRegister cr = cr7);
982
983 void mov(Register dst, const Operand& src); 1030 void mov(Register dst, const Operand& src);
984 void bitwise_mov(Register dst, intptr_t value); 1031 void bitwise_mov(Register dst, intptr_t value);
985 void bitwise_mov32(Register dst, int32_t value); 1032 void bitwise_mov32(Register dst, int32_t value);
986 void bitwise_add32(Register dst, Register src, int32_t value); 1033 void bitwise_add32(Register dst, Register src, int32_t value);
987 1034
988 // Load the position of the label relative to the generated code object 1035 // Load the position of the label relative to the generated code object
989 // pointer in a register. 1036 // pointer in a register.
990 void mov_label_offset(Register dst, Label* label); 1037 void mov_label_offset(Register dst, Label* label);
991 1038
992 // dst = base + label position + delta 1039 // dst = base + label position + delta
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
1036 1083
1037 void dcbf(Register ra, Register rb); 1084 void dcbf(Register ra, Register rb);
1038 void sync(); 1085 void sync();
1039 void lwsync(); 1086 void lwsync();
1040 void icbi(Register ra, Register rb); 1087 void icbi(Register ra, Register rb);
1041 void isync(); 1088 void isync();
1042 1089
1043 // Support for floating point 1090 // Support for floating point
1044 void lfd(const DoubleRegister frt, const MemOperand& src); 1091 void lfd(const DoubleRegister frt, const MemOperand& src);
1045 void lfdu(const DoubleRegister frt, const MemOperand& src); 1092 void lfdu(const DoubleRegister frt, const MemOperand& src);
1046 void lfdx(const DoubleRegister frt, const MemOperand& src);
1047 void lfdux(const DoubleRegister frt, const MemOperand& src);
1048 void lfs(const DoubleRegister frt, const MemOperand& src); 1093 void lfs(const DoubleRegister frt, const MemOperand& src);
1049 void lfsu(const DoubleRegister frt, const MemOperand& src); 1094 void lfsu(const DoubleRegister frt, const MemOperand& src);
1050 void lfsx(const DoubleRegister frt, const MemOperand& src);
1051 void lfsux(const DoubleRegister frt, const MemOperand& src);
1052 void stfd(const DoubleRegister frs, const MemOperand& src); 1095 void stfd(const DoubleRegister frs, const MemOperand& src);
1053 void stfdu(const DoubleRegister frs, const MemOperand& src); 1096 void stfdu(const DoubleRegister frs, const MemOperand& src);
1054 void stfdx(const DoubleRegister frs, const MemOperand& src);
1055 void stfdux(const DoubleRegister frs, const MemOperand& src);
1056 void stfs(const DoubleRegister frs, const MemOperand& src); 1097 void stfs(const DoubleRegister frs, const MemOperand& src);
1057 void stfsu(const DoubleRegister frs, const MemOperand& src); 1098 void stfsu(const DoubleRegister frs, const MemOperand& src);
1058 void stfsx(const DoubleRegister frs, const MemOperand& src);
1059 void stfsux(const DoubleRegister frs, const MemOperand& src);
1060 1099
1061 void fadd(const DoubleRegister frt, const DoubleRegister fra, 1100 void fadd(const DoubleRegister frt, const DoubleRegister fra,
1062 const DoubleRegister frb, RCBit rc = LeaveRC); 1101 const DoubleRegister frb, RCBit rc = LeaveRC);
1063 void fsub(const DoubleRegister frt, const DoubleRegister fra, 1102 void fsub(const DoubleRegister frt, const DoubleRegister fra,
1064 const DoubleRegister frb, RCBit rc = LeaveRC); 1103 const DoubleRegister frb, RCBit rc = LeaveRC);
1065 void fdiv(const DoubleRegister frt, const DoubleRegister fra, 1104 void fdiv(const DoubleRegister frt, const DoubleRegister fra,
1066 const DoubleRegister frb, RCBit rc = LeaveRC); 1105 const DoubleRegister frb, RCBit rc = LeaveRC);
1067 void fmul(const DoubleRegister frt, const DoubleRegister fra, 1106 void fmul(const DoubleRegister frt, const DoubleRegister fra,
1068 const DoubleRegister frc, RCBit rc = LeaveRC); 1107 const DoubleRegister frc, RCBit rc = LeaveRC);
1069 void fcmpu(const DoubleRegister fra, const DoubleRegister frb, 1108 void fcmpu(const DoubleRegister fra, const DoubleRegister frb,
(...skipping 343 matching lines...) Expand 10 before | Expand all | Expand 10 after
1413 inline void emit(Instr x); 1452 inline void emit(Instr x);
1414 inline void TrackBranch(); 1453 inline void TrackBranch();
1415 inline void UntrackBranch(); 1454 inline void UntrackBranch();
1416 inline void CheckTrampolinePoolQuick(); 1455 inline void CheckTrampolinePoolQuick();
1417 1456
1418 // Instruction generation 1457 // Instruction generation
1419 void a_form(Instr instr, DoubleRegister frt, DoubleRegister fra, 1458 void a_form(Instr instr, DoubleRegister frt, DoubleRegister fra,
1420 DoubleRegister frb, RCBit r); 1459 DoubleRegister frb, RCBit r);
1421 void d_form(Instr instr, Register rt, Register ra, const intptr_t val, 1460 void d_form(Instr instr, Register rt, Register ra, const intptr_t val,
1422 bool signed_disp); 1461 bool signed_disp);
1423 void x_form(Instr instr, Register ra, Register rs, Register rb, RCBit r);
1424 void xo_form(Instr instr, Register rt, Register ra, Register rb, OEBit o, 1462 void xo_form(Instr instr, Register rt, Register ra, Register rb, OEBit o,
1425 RCBit r); 1463 RCBit r);
1426 void md_form(Instr instr, Register ra, Register rs, int shift, int maskbit, 1464 void md_form(Instr instr, Register ra, Register rs, int shift, int maskbit,
1427 RCBit r); 1465 RCBit r);
1428 void mds_form(Instr instr, Register ra, Register rs, Register rb, int maskbit, 1466 void mds_form(Instr instr, Register ra, Register rs, Register rb, int maskbit,
1429 RCBit r); 1467 RCBit r);
1430 1468
1431 // Labels 1469 // Labels
1432 void print(Label* L); 1470 void print(Label* L);
1433 int max_reach_from(int pos); 1471 int max_reach_from(int pos);
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
1499 PatchingAssembler(IsolateData isolate_data, byte* address, int instructions); 1537 PatchingAssembler(IsolateData isolate_data, byte* address, int instructions);
1500 ~PatchingAssembler(); 1538 ~PatchingAssembler();
1501 1539
1502 void FlushICache(Isolate* isolate); 1540 void FlushICache(Isolate* isolate);
1503 }; 1541 };
1504 1542
1505 } // namespace internal 1543 } // namespace internal
1506 } // namespace v8 1544 } // namespace v8
1507 1545
1508 #endif // V8_PPC_ASSEMBLER_PPC_H_ 1546 #endif // V8_PPC_ASSEMBLER_PPC_H_
OLDNEW
« no previous file with comments | « src/crankshaft/ppc/lithium-codegen-ppc.cc ('k') | src/ppc/assembler-ppc.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698