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

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

Issue 1768233002: [wasm] Int64Lowering of I64ShrU and I64ShrS on ia32. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Rebase. Created 4 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/ia32/assembler-ia32.h ('k') | src/ia32/code-stubs-ia32.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 1050 matching lines...) Expand 10 before | Expand all | Expand 10 after
1061 } 1061 }
1062 } 1062 }
1063 1063
1064 1064
1065 void Assembler::sar_cl(const Operand& dst) { 1065 void Assembler::sar_cl(const Operand& dst) {
1066 EnsureSpace ensure_space(this); 1066 EnsureSpace ensure_space(this);
1067 EMIT(0xD3); 1067 EMIT(0xD3);
1068 emit_operand(edi, dst); 1068 emit_operand(edi, dst);
1069 } 1069 }
1070 1070
1071
1072 void Assembler::sbb(Register dst, const Operand& src) { 1071 void Assembler::sbb(Register dst, const Operand& src) {
1073 EnsureSpace ensure_space(this); 1072 EnsureSpace ensure_space(this);
1074 EMIT(0x1B); 1073 EMIT(0x1B);
1075 emit_operand(dst, src); 1074 emit_operand(dst, src);
1076 } 1075 }
1077 1076
1078 void Assembler::shld(Register dst, Register src, uint8_t shift) { 1077 void Assembler::shld(Register dst, Register src, uint8_t shift) {
1079 DCHECK(is_uint5(shift)); 1078 DCHECK(is_uint5(shift));
1080 EnsureSpace ensure_space(this); 1079 EnsureSpace ensure_space(this);
1081 EMIT(0x0F); 1080 EMIT(0x0F);
(...skipping 23 matching lines...) Expand all
1105 } 1104 }
1106 } 1105 }
1107 1106
1108 1107
1109 void Assembler::shl_cl(const Operand& dst) { 1108 void Assembler::shl_cl(const Operand& dst) {
1110 EnsureSpace ensure_space(this); 1109 EnsureSpace ensure_space(this);
1111 EMIT(0xD3); 1110 EMIT(0xD3);
1112 emit_operand(esp, dst); 1111 emit_operand(esp, dst);
1113 } 1112 }
1114 1113
1115
1116 void Assembler::shrd(Register dst, const Operand& src) {
1117 EnsureSpace ensure_space(this);
1118 EMIT(0x0F);
1119 EMIT(0xAD);
1120 emit_operand(dst, src);
1121 }
1122
1123
1124 void Assembler::shr(const Operand& dst, uint8_t imm8) { 1114 void Assembler::shr(const Operand& dst, uint8_t imm8) {
1125 EnsureSpace ensure_space(this); 1115 EnsureSpace ensure_space(this);
1126 DCHECK(is_uint5(imm8)); // illegal shift count 1116 DCHECK(is_uint5(imm8)); // illegal shift count
1127 if (imm8 == 1) { 1117 if (imm8 == 1) {
1128 EMIT(0xD1); 1118 EMIT(0xD1);
1129 emit_operand(ebp, dst); 1119 emit_operand(ebp, dst);
1130 } else { 1120 } else {
1131 EMIT(0xC1); 1121 EMIT(0xC1);
1132 emit_operand(ebp, dst); 1122 emit_operand(ebp, dst);
1133 EMIT(imm8); 1123 EMIT(imm8);
1134 } 1124 }
1135 } 1125 }
1136 1126
1137 1127
1138 void Assembler::shr_cl(const Operand& dst) { 1128 void Assembler::shr_cl(const Operand& dst) {
1139 EnsureSpace ensure_space(this); 1129 EnsureSpace ensure_space(this);
1140 EMIT(0xD3); 1130 EMIT(0xD3);
1141 emit_operand(ebp, dst); 1131 emit_operand(ebp, dst);
1142 } 1132 }
1143 1133
1134 void Assembler::shrd(Register dst, Register src, uint8_t shift) {
1135 DCHECK(is_uint5(shift));
1136 EnsureSpace ensure_space(this);
1137 EMIT(0x0F);
1138 EMIT(0xAC);
1139 emit_operand(dst, Operand(src));
1140 EMIT(shift);
1141 }
1142
1143 void Assembler::shrd_cl(const Operand& dst, Register src) {
1144 EnsureSpace ensure_space(this);
1145 EMIT(0x0F);
1146 EMIT(0xAD);
1147 emit_operand(src, dst);
1148 }
1144 1149
1145 void Assembler::sub(const Operand& dst, const Immediate& x) { 1150 void Assembler::sub(const Operand& dst, const Immediate& x) {
1146 EnsureSpace ensure_space(this); 1151 EnsureSpace ensure_space(this);
1147 emit_arith(5, dst, x); 1152 emit_arith(5, dst, x);
1148 } 1153 }
1149 1154
1150 1155
1151 void Assembler::sub(Register dst, const Operand& src) { 1156 void Assembler::sub(Register dst, const Operand& src) {
1152 EnsureSpace ensure_space(this); 1157 EnsureSpace ensure_space(this);
1153 EMIT(0x2B); 1158 EMIT(0x2B);
(...skipping 1808 matching lines...) Expand 10 before | Expand all | Expand 10 after
2962 fflush(coverage_log); 2967 fflush(coverage_log);
2963 } 2968 }
2964 } 2969 }
2965 2970
2966 #endif 2971 #endif
2967 2972
2968 } // namespace internal 2973 } // namespace internal
2969 } // namespace v8 2974 } // namespace v8
2970 2975
2971 #endif // V8_TARGET_ARCH_IA32 2976 #endif // V8_TARGET_ARCH_IA32
OLDNEW
« no previous file with comments | « src/ia32/assembler-ia32.h ('k') | src/ia32/code-stubs-ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698