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

Side by Side Diff: runtime/vm/disassembler_ia32.cc

Issue 620553002: Provide ia32 intrinsics for bigint add, sub, quotient digit estimation, and (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 6 years, 2 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #include "vm/disassembler.h" 5 #include "vm/disassembler.h"
6 6
7 #include "vm/globals.h" // Needed here to get TARGET_ARCH_IA32. 7 #include "vm/globals.h" // Needed here to get TARGET_ARCH_IA32.
8 #if defined(TARGET_ARCH_IA32) 8 #if defined(TARGET_ARCH_IA32)
9 #include "platform/utils.h" 9 #include "platform/utils.h"
10 #include "vm/allocation.h" 10 #include "vm/allocation.h"
(...skipping 953 matching lines...) Expand 10 before | Expand all | Expand 10 after
964 uint8_t modrm = *(data+1); 964 uint8_t modrm = *(data+1);
965 int mod, regop, rm; 965 int mod, regop, rm;
966 GetModRm(modrm, &mod, &regop, &rm); 966 GetModRm(modrm, &mod, &regop, &rm);
967 if (mod == 3 && regop != 0) { 967 if (mod == 3 && regop != 0) {
968 const char* mnem = NULL; 968 const char* mnem = NULL;
969 switch (regop) { 969 switch (regop) {
970 case 2: mnem = "not"; break; 970 case 2: mnem = "not"; break;
971 case 3: mnem = "neg"; break; 971 case 3: mnem = "neg"; break;
972 case 4: mnem = "mul"; break; 972 case 4: mnem = "mul"; break;
973 case 5: mnem = "imul"; break; 973 case 5: mnem = "imul"; break;
974 case 6: mnem = "div"; break;
974 case 7: mnem = "idiv"; break; 975 case 7: mnem = "idiv"; break;
975 default: UNIMPLEMENTED(); 976 default: UNIMPLEMENTED();
976 } 977 }
977 Print(mnem); 978 Print(mnem);
978 Print(" "); 979 Print(" ");
979 PrintCPURegister(rm); 980 PrintCPURegister(rm);
980 return 2; 981 return 2;
981 } else if (mod == 3 && regop == eax) { 982 } else if (mod == 3 && regop == eax) {
982 int32_t imm = *reinterpret_cast<int32_t*>(data+2); 983 int32_t imm = *reinterpret_cast<int32_t*>(data+2);
983 Print("test "); 984 Print("test ");
(...skipping 892 matching lines...) Expand 10 before | Expand all | Expand 10 after
1876 pc); 1877 pc);
1877 pc += instruction_length; 1878 pc += instruction_length;
1878 } 1879 }
1879 1880
1880 return; 1881 return;
1881 } 1882 }
1882 1883
1883 } // namespace dart 1884 } // namespace dart
1884 1885
1885 #endif // defined TARGET_ARCH_IA32 1886 #endif // defined TARGET_ARCH_IA32
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698