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

Side by Side Diff: src/arm/simulator-arm.cc

Issue 1617503003: [Atomics] code stubs for atomic operations (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: call code stub from TF Created 4 years, 11 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
OLDNEW
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698