OLD | NEW |
1 // Copyright 2010 the V8 project authors. All rights reserved. | 1 // Copyright 2010 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 2258 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2269 ASSERT((instr->TypeField() == 7) && (instr->Bit(24) == 0x0) ); | 2269 ASSERT((instr->TypeField() == 7) && (instr->Bit(24) == 0x0) ); |
2270 ASSERT(instr->Bits(11, 9) == 0x5); | 2270 ASSERT(instr->Bits(11, 9) == 0x5); |
2271 | 2271 |
2272 int vm = instr->VmField(); | 2272 int vm = instr->VmField(); |
2273 int vd = instr->VdField(); | 2273 int vd = instr->VdField(); |
2274 int vn = instr->VnField(); | 2274 int vn = instr->VnField(); |
2275 | 2275 |
2276 if (instr->Bit(4) == 0) { | 2276 if (instr->Bit(4) == 0) { |
2277 if (instr->Opc1Field() == 0x7) { | 2277 if (instr->Opc1Field() == 0x7) { |
2278 // Other data processing instructions | 2278 // Other data processing instructions |
2279 if ((instr->Opc2Field() == 0x7) && (instr->Opc3Field() == 0x3)) { | 2279 if ((instr->Opc2Field() == 0x0) && (instr->Opc3Field() == 0x1)) { |
| 2280 // vmov register to register. |
| 2281 if (instr->SzField() == 0x1) { |
| 2282 set_d_register_from_double(vd, get_double_from_d_register(vm)); |
| 2283 } else { |
| 2284 UNREACHABLE(); // Not used by V8. |
| 2285 } |
| 2286 } else if ((instr->Opc2Field() == 0x7) && (instr->Opc3Field() == 0x3)) { |
2280 DecodeVCVTBetweenDoubleAndSingle(instr); | 2287 DecodeVCVTBetweenDoubleAndSingle(instr); |
2281 } else if ((instr->Opc2Field() == 0x8) && (instr->Opc3Field() & 0x1)) { | 2288 } else if ((instr->Opc2Field() == 0x8) && (instr->Opc3Field() & 0x1)) { |
2282 DecodeVCVTBetweenFloatingPointAndInteger(instr); | 2289 DecodeVCVTBetweenFloatingPointAndInteger(instr); |
2283 } else if (((instr->Opc2Field() >> 1) == 0x6) && | 2290 } else if (((instr->Opc2Field() >> 1) == 0x6) && |
2284 (instr->Opc3Field() & 0x1)) { | 2291 (instr->Opc3Field() & 0x1)) { |
2285 DecodeVCVTBetweenFloatingPointAndInteger(instr); | 2292 DecodeVCVTBetweenFloatingPointAndInteger(instr); |
2286 } else if (((instr->Opc2Field() == 0x4) || (instr->Opc2Field() == 0x5)) && | 2293 } else if (((instr->Opc2Field() == 0x4) || (instr->Opc2Field() == 0x5)) && |
2287 (instr->Opc3Field() & 0x1)) { | 2294 (instr->Opc3Field() & 0x1)) { |
2288 DecodeVCMP(instr); | 2295 DecodeVCMP(instr); |
2289 } else if (((instr->Opc2Field() == 0x1)) && (instr->Opc3Field() == 0x3)) { | 2296 } else if (((instr->Opc2Field() == 0x1)) && (instr->Opc3Field() == 0x3)) { |
(...skipping 479 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2769 uintptr_t address = *stack_slot; | 2776 uintptr_t address = *stack_slot; |
2770 set_register(sp, current_sp + sizeof(uintptr_t)); | 2777 set_register(sp, current_sp + sizeof(uintptr_t)); |
2771 return address; | 2778 return address; |
2772 } | 2779 } |
2773 | 2780 |
2774 } } // namespace assembler::arm | 2781 } } // namespace assembler::arm |
2775 | 2782 |
2776 #endif // __arm__ | 2783 #endif // __arm__ |
2777 | 2784 |
2778 #endif // V8_TARGET_ARCH_ARM | 2785 #endif // V8_TARGET_ARCH_ARM |
OLD | NEW |