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

Side by Side Diff: src/s390/assembler-s390.cc

Issue 2160573003: S390: Fix convertion from int32 to float32 (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: more fix Created 4 years, 5 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/s390/assembler-s390.h ('k') | src/s390/disasm-s390.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 1388 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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
OLDNEW
« no previous file with comments | « src/s390/assembler-s390.h ('k') | src/s390/disasm-s390.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698