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

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

Issue 53573004: Introduce orps for IA32/X64 (Closed) Base URL: git://github.com/v8/v8.git@upstream
Patch Set: Created 7 years, 1 month 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 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 1092 matching lines...) Expand 10 before | Expand all | Expand 10 after
1103 __ subsd(result, double_scratch); 1103 __ subsd(result, double_scratch);
1104 __ add(temp1, Immediate(0x1ff800)); 1104 __ add(temp1, Immediate(0x1ff800));
1105 __ addsd(result, ExpConstant(8)); 1105 __ addsd(result, ExpConstant(8));
1106 __ and_(temp2, Immediate(0x7ff)); 1106 __ and_(temp2, Immediate(0x7ff));
1107 __ shr(temp1, 11); 1107 __ shr(temp1, 11);
1108 __ shl(temp1, 20); 1108 __ shl(temp1, 20);
1109 __ movd(input, temp1); 1109 __ movd(input, temp1);
1110 __ pshufd(input, input, static_cast<uint8_t>(0xe1)); // Order: 11 10 00 01 1110 __ pshufd(input, input, static_cast<uint8_t>(0xe1)); // Order: 11 10 00 01
1111 __ movsd(double_scratch, Operand::StaticArray( 1111 __ movsd(double_scratch, Operand::StaticArray(
1112 temp2, times_8, ExternalReference::math_exp_log_table())); 1112 temp2, times_8, ExternalReference::math_exp_log_table()));
1113 __ por(input, double_scratch); 1113 __ orps(input, double_scratch);
1114 __ mulsd(result, input); 1114 __ mulsd(result, input);
1115 __ bind(&done); 1115 __ bind(&done);
1116 } 1116 }
1117 1117
1118 #undef __ 1118 #undef __
1119 1119
1120 1120
1121 static byte* GetNoCodeAgeSequence(uint32_t* length) { 1121 static byte* GetNoCodeAgeSequence(uint32_t* length) {
1122 static bool initialized = false; 1122 static bool initialized = false;
1123 static byte sequence[kNoCodeAgeSequenceLength]; 1123 static byte sequence[kNoCodeAgeSequenceLength];
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
1174 Code* stub = GetCodeAgeStub(isolate, age, parity); 1174 Code* stub = GetCodeAgeStub(isolate, age, parity);
1175 CodePatcher patcher(sequence, young_length); 1175 CodePatcher patcher(sequence, young_length);
1176 patcher.masm()->call(stub->instruction_start(), RelocInfo::NONE32); 1176 patcher.masm()->call(stub->instruction_start(), RelocInfo::NONE32);
1177 } 1177 }
1178 } 1178 }
1179 1179
1180 1180
1181 } } // namespace v8::internal 1181 } } // namespace v8::internal
1182 1182
1183 #endif // V8_TARGET_ARCH_IA32 1183 #endif // V8_TARGET_ARCH_IA32
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698