OLD | NEW |
1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <assert.h> | 5 #include <assert.h> |
6 #include <stdarg.h> | 6 #include <stdarg.h> |
7 #include <stdio.h> | 7 #include <stdio.h> |
8 | 8 |
9 #if V8_TARGET_ARCH_IA32 | 9 #if V8_TARGET_ARCH_IA32 |
10 | 10 |
(...skipping 1911 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1922 NameOfXMMRegister(rm)); | 1922 NameOfXMMRegister(rm)); |
1923 data++; | 1923 data++; |
1924 } else if (*data == 0xEB) { | 1924 } else if (*data == 0xEB) { |
1925 data++; | 1925 data++; |
1926 int mod, regop, rm; | 1926 int mod, regop, rm; |
1927 get_modrm(*data, &mod, ®op, &rm); | 1927 get_modrm(*data, &mod, ®op, &rm); |
1928 AppendToBuffer("por %s,%s", | 1928 AppendToBuffer("por %s,%s", |
1929 NameOfXMMRegister(regop), | 1929 NameOfXMMRegister(regop), |
1930 NameOfXMMRegister(rm)); | 1930 NameOfXMMRegister(rm)); |
1931 data++; | 1931 data++; |
| 1932 } else if (*data == 0xFA) { |
| 1933 data++; |
| 1934 int mod, regop, rm; |
| 1935 get_modrm(*data, &mod, ®op, &rm); |
| 1936 AppendToBuffer("psubd %s,", NameOfXMMRegister(regop)); |
| 1937 data += PrintRightXMMOperand(data); |
| 1938 } else if (*data == 0xFE) { |
| 1939 data++; |
| 1940 int mod, regop, rm; |
| 1941 get_modrm(*data, &mod, ®op, &rm); |
| 1942 AppendToBuffer("paddd %s,", NameOfXMMRegister(regop)); |
| 1943 data += PrintRightXMMOperand(data); |
1932 } else if (*data == 0xB1) { | 1944 } else if (*data == 0xB1) { |
1933 data++; | 1945 data++; |
1934 data += PrintOperands("cmpxchg_w", OPER_REG_OP_ORDER, data); | 1946 data += PrintOperands("cmpxchg_w", OPER_REG_OP_ORDER, data); |
1935 } else { | 1947 } else { |
1936 UnimplementedInstruction(); | 1948 UnimplementedInstruction(); |
1937 } | 1949 } |
1938 } else { | 1950 } else { |
1939 UnimplementedInstruction(); | 1951 UnimplementedInstruction(); |
1940 } | 1952 } |
1941 break; | 1953 break; |
(...skipping 393 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2335 fprintf(f, " "); | 2347 fprintf(f, " "); |
2336 } | 2348 } |
2337 fprintf(f, " %s\n", buffer.start()); | 2349 fprintf(f, " %s\n", buffer.start()); |
2338 } | 2350 } |
2339 } | 2351 } |
2340 | 2352 |
2341 | 2353 |
2342 } // namespace disasm | 2354 } // namespace disasm |
2343 | 2355 |
2344 #endif // V8_TARGET_ARCH_IA32 | 2356 #endif // V8_TARGET_ARCH_IA32 |
OLD | NEW |