OLD | NEW |
---|---|
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 <stdarg.h> | 5 #include <stdarg.h> |
6 #include <stdlib.h> | 6 #include <stdlib.h> |
7 #include <cmath> | 7 #include <cmath> |
8 | 8 |
9 #if V8_TARGET_ARCH_ARM | 9 #if V8_TARGET_ARCH_ARM |
10 | 10 |
(...skipping 3885 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3896 } | 3896 } |
3897 } | 3897 } |
3898 } else { | 3898 } else { |
3899 UNIMPLEMENTED(); | 3899 UNIMPLEMENTED(); |
3900 } | 3900 } |
3901 break; | 3901 break; |
3902 case 0xA: | 3902 case 0xA: |
3903 case 0xB: | 3903 case 0xB: |
3904 if ((instr->Bits(22, 20) == 5) && (instr->Bits(15, 12) == 0xf)) { | 3904 if ((instr->Bits(22, 20) == 5) && (instr->Bits(15, 12) == 0xf)) { |
3905 // pld: ignore instruction. | 3905 // pld: ignore instruction. |
3906 } else if (instr->SpecialValue() == 0xA && instr->Bits(22, 20) == 7) { | |
3907 // dsb, dmb, isb: ignore instruction for now. | |
3908 // TODO(binji): implement | |
Jarin
2016/01/28 08:11:12
How about having a global variable for the fences?
binji
2016/01/28 16:20:00
Maybe... looking at http://www.cl.cam.ac.uk/~pes20
Jarin
2016/02/01 07:42:43
Atomic (i.e., locked) increment on x86s has a buil
| |
3906 } else { | 3909 } else { |
3907 UNIMPLEMENTED(); | 3910 UNIMPLEMENTED(); |
3908 } | 3911 } |
3909 break; | 3912 break; |
3910 case 0x1D: | 3913 case 0x1D: |
3911 if (instr->Opc1Value() == 0x7 && instr->Opc3Value() == 0x1 && | 3914 if (instr->Opc1Value() == 0x7 && instr->Opc3Value() == 0x1 && |
3912 instr->Bits(11, 9) == 0x5 && instr->Bits(19, 18) == 0x2) { | 3915 instr->Bits(11, 9) == 0x5 && instr->Bits(19, 18) == 0x2) { |
3913 if (instr->SzValue() == 0x1) { | 3916 if (instr->SzValue() == 0x1) { |
3914 int vm = instr->VFPMRegValue(kDoublePrecision); | 3917 int vm = instr->VFPMRegValue(kDoublePrecision); |
3915 int vd = instr->VFPDRegValue(kDoublePrecision); | 3918 int vd = instr->VFPDRegValue(kDoublePrecision); |
(...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
4214 set_register(sp, current_sp + sizeof(uintptr_t)); | 4217 set_register(sp, current_sp + sizeof(uintptr_t)); |
4215 return address; | 4218 return address; |
4216 } | 4219 } |
4217 | 4220 |
4218 } // namespace internal | 4221 } // namespace internal |
4219 } // namespace v8 | 4222 } // namespace v8 |
4220 | 4223 |
4221 #endif // USE_SIMULATOR | 4224 #endif // USE_SIMULATOR |
4222 | 4225 |
4223 #endif // V8_TARGET_ARCH_ARM | 4226 #endif // V8_TARGET_ARCH_ARM |
OLD | NEW |