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 | 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 1388 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1399 uint32_t code = op << 16 | m3 * B12 | m4 * B8 | r1.code() * B4 | r2.code(); | 1399 uint32_t code = op << 16 | m3 * B12 | m4 * B8 | r1.code() * B4 | r2.code(); |
1400 emit4bytes(code); | 1400 emit4bytes(code); |
1401 } | 1401 } |
1402 | 1402 |
1403 // end of S390 Instruction generation | 1403 // end of S390 Instruction generation |
1404 | 1404 |
1405 // start of S390 instruction | 1405 // start of S390 instruction |
1406 RX_FORM_EMIT(bc, BC) | 1406 RX_FORM_EMIT(bc, BC) |
1407 RR_FORM_EMIT(bctr, BCTR) | 1407 RR_FORM_EMIT(bctr, BCTR) |
1408 RXE_FORM_EMIT(ceb, CEB) | 1408 RXE_FORM_EMIT(ceb, CEB) |
1409 RRE_FORM_EMIT(cefbr, CEFBR) | |
1410 SS1_FORM_EMIT(ed, ED) | 1409 SS1_FORM_EMIT(ed, ED) |
1411 RX_FORM_EMIT(ex, EX) | 1410 RX_FORM_EMIT(ex, EX) |
1412 RRE_FORM_EMIT(flogr, FLOGR) | 1411 RRE_FORM_EMIT(flogr, FLOGR) |
1413 RRE_FORM_EMIT(lcgr, LCGR) | 1412 RRE_FORM_EMIT(lcgr, LCGR) |
1414 RR_FORM_EMIT(lcr, LCR) | 1413 RR_FORM_EMIT(lcr, LCR) |
1415 RX_FORM_EMIT(le_z, LE) | 1414 RX_FORM_EMIT(le_z, LE) |
1416 RXY_FORM_EMIT(ley, LEY) | 1415 RXY_FORM_EMIT(ley, LEY) |
1417 RIL1_FORM_EMIT(llihf, LLIHF) | 1416 RIL1_FORM_EMIT(llihf, LLIHF) |
1418 RIL1_FORM_EMIT(llilf, LLILF) | 1417 RIL1_FORM_EMIT(llilf, LLILF) |
1419 RRE_FORM_EMIT(lngr, LNGR) | 1418 RRE_FORM_EMIT(lngr, LNGR) |
(...skipping 1461 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2881 Register r2) { | 2880 Register r2) { |
2882 DCHECK_EQ(m3, Condition(0)); | 2881 DCHECK_EQ(m3, Condition(0)); |
2883 DCHECK_EQ(m4, Condition(0)); | 2882 DCHECK_EQ(m4, Condition(0)); |
2884 rrfe_form(CELGBR, Condition(0), Condition(0), Register::from_code(r1.code()), | 2883 rrfe_form(CELGBR, Condition(0), Condition(0), Register::from_code(r1.code()), |
2885 r2); | 2884 r2); |
2886 } | 2885 } |
2887 | 2886 |
2888 // Convert from Fixed Logical (F32<-32) | 2887 // Convert from Fixed Logical (F32<-32) |
2889 void Assembler::celfbr(Condition m3, Condition m4, DoubleRegister r1, | 2888 void Assembler::celfbr(Condition m3, Condition m4, DoubleRegister r1, |
2890 Register r2) { | 2889 Register r2) { |
2891 DCHECK_EQ(m3, Condition(0)); | |
2892 DCHECK_EQ(m4, Condition(0)); | 2890 DCHECK_EQ(m4, Condition(0)); |
2893 rrfe_form(CELFBR, Condition(0), Condition(0), Register::from_code(r1.code()), | 2891 rrfe_form(CELFBR, m3, Condition(0), Register::from_code(r1.code()), r2); |
2894 r2); | |
2895 } | 2892 } |
2896 | 2893 |
2897 // Convert from Fixed Logical (L<-64) | 2894 // Convert from Fixed Logical (L<-64) |
2898 void Assembler::cdlgbr(Condition m3, Condition m4, DoubleRegister r1, | 2895 void Assembler::cdlgbr(Condition m3, Condition m4, DoubleRegister r1, |
2899 Register r2) { | 2896 Register r2) { |
2900 DCHECK_EQ(m3, Condition(0)); | 2897 DCHECK_EQ(m3, Condition(0)); |
2901 DCHECK_EQ(m4, Condition(0)); | 2898 DCHECK_EQ(m4, Condition(0)); |
2902 rrfe_form(CDLGBR, Condition(0), Condition(0), Register::from_code(r1.code()), | 2899 rrfe_form(CDLGBR, Condition(0), Condition(0), Register::from_code(r1.code()), |
2903 r2); | 2900 r2); |
2904 } | 2901 } |
2905 | 2902 |
2906 // Convert from Fixed Logical (L<-32) | 2903 // Convert from Fixed Logical (L<-32) |
2907 void Assembler::cdlfbr(Condition m3, Condition m4, DoubleRegister r1, | 2904 void Assembler::cdlfbr(Condition m3, Condition m4, DoubleRegister r1, |
2908 Register r2) { | 2905 Register r2) { |
2909 DCHECK_EQ(m4, Condition(0)); | 2906 DCHECK_EQ(m4, Condition(0)); |
2910 rrfe_form(CDLFBR, m3, Condition(0), Register::from_code(r1.code()), r2); | 2907 rrfe_form(CDLFBR, m3, Condition(0), Register::from_code(r1.code()), r2); |
2911 } | 2908 } |
2912 | 2909 |
2913 // Convert from Fixed point (S<-32) | 2910 // Convert from Fixed point (S<-32) |
2914 void Assembler::cefbr(DoubleRegister r1, Register r2) { | 2911 void Assembler::cefbr(Condition m3, DoubleRegister r1, Register r2) { |
2915 rre_form(CEFBR, Register::from_code(r1.code()), r2); | 2912 rrfe_form(CEFBR, m3, Condition(0), Register::from_code(r1.code()), r2); |
2916 } | 2913 } |
2917 | 2914 |
2918 // Convert to Fixed point (32<-S) | 2915 // Convert to Fixed point (32<-S) |
2919 void Assembler::cfebr(Condition m3, Register r1, DoubleRegister r2) { | 2916 void Assembler::cfebr(Condition m3, Register r1, DoubleRegister r2) { |
2920 rrfe_form(CFEBR, m3, Condition(0), r1, Register::from_code(r2.code())); | 2917 rrfe_form(CFEBR, m3, Condition(0), r1, Register::from_code(r2.code())); |
2921 } | 2918 } |
2922 | 2919 |
2923 // Load (L <- S) | 2920 // Load (L <- S) |
2924 void Assembler::ldeb(DoubleRegister d1, const MemOperand& opnd) { | 2921 void Assembler::ldeb(DoubleRegister d1, const MemOperand& opnd) { |
2925 rxe_form(LDEB, Register::from_code(d1.code()), opnd.rx(), opnd.rb(), | 2922 rxe_form(LDEB, Register::from_code(d1.code()), opnd.rx(), opnd.rb(), |
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3076 SKIP_ICACHE_FLUSH); | 3073 SKIP_ICACHE_FLUSH); |
3077 } | 3074 } |
3078 | 3075 |
3079 reloc_info_writer.Write(&rinfo); | 3076 reloc_info_writer.Write(&rinfo); |
3080 } | 3077 } |
3081 } | 3078 } |
3082 | 3079 |
3083 } // namespace internal | 3080 } // namespace internal |
3084 } // namespace v8 | 3081 } // namespace v8 |
3085 #endif // V8_TARGET_ARCH_S390 | 3082 #endif // V8_TARGET_ARCH_S390 |
OLD | NEW |