Index: test/mjsunit/generated-keyed-store-stubs.js |
diff --git a/src/marking-thread.cc b/test/mjsunit/generated-keyed-store-stubs.js |
similarity index 57% |
copy from src/marking-thread.cc |
copy to test/mjsunit/generated-keyed-store-stubs.js |
index ac6438126891ff0d26e7e021d12bdb43cf9bd817..a553c8fecbd2a8f01159bd8e2f8b078733cefb7d 100644 |
--- a/src/marking-thread.cc |
+++ b/test/mjsunit/generated-keyed-store-stubs.js |
@@ -25,61 +25,85 @@ |
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
-#include "marking-thread.h" |
+// Flags: --allow-natives-syntax --compiled_keyed_stores |
-#include "v8.h" |
- |
-#include "isolate.h" |
-#include "v8threads.h" |
- |
-namespace v8 { |
-namespace internal { |
- |
-MarkingThread::MarkingThread(Isolate* isolate) |
- : Thread("MarkingThread"), |
- isolate_(isolate), |
- heap_(isolate->heap()), |
- start_marking_semaphore_(OS::CreateSemaphore(0)), |
- end_marking_semaphore_(OS::CreateSemaphore(0)), |
- stop_semaphore_(OS::CreateSemaphore(0)) { |
- NoBarrier_Store(&stop_thread_, static_cast<AtomicWord>(false)); |
- id_ = NoBarrier_AtomicIncrement(&id_counter_, 1); |
+function store0(a,i,v) { |
+ a[i] = v; |
} |
+a = new Array(8); |
+store0(a,0,-10); |
+store0(a,0,-10); |
+store0(a,0,-10); |
+assertEquals(-10, a[0]); |
-Atomic32 MarkingThread::id_counter_ = -1; |
- |
+function store1(a,i,v) { |
+ a[i] = v; |
+} |
-void MarkingThread::Run() { |
- Isolate::SetIsolateThreadLocals(isolate_, NULL); |
+a = new Int8Array(8); |
+store1(a,0,-10); |
+store1(a,0,-10); |
+store1(a,0,-10); |
+assertEquals(-10, a[0]); |
- while (true) { |
- start_marking_semaphore_->Wait(); |
+function store2(a,i,v) { |
+ a[i] = v; |
+} |
- if (Acquire_Load(&stop_thread_)) { |
- stop_semaphore_->Signal(); |
- return; |
- } |
+a = new Uint8Array(8); |
+store2(a,0,10); |
+store2(a,0,10); |
+store2(a,0,10); |
+assertEquals(10, a[0]); |
+store2(a,0,257); |
+assertEquals(1, a[0]); |
- end_marking_semaphore_->Signal(); |
- } |
+function store3(a,i,v) { |
+ a[i] = v; |
} |
+a = new Int16Array(8); |
+store3(a,0,-10); |
+store3(a,0,-10); |
+store3(a,0,-10); |
+assertEquals(-10, a[0]); |
+store3(a,0,65537); |
+assertEquals(1, a[0]); |
-void MarkingThread::Stop() { |
- Release_Store(&stop_thread_, static_cast<AtomicWord>(true)); |
- start_marking_semaphore_->Signal(); |
- stop_semaphore_->Wait(); |
+function store4(a,i,v) { |
+ a[i] = v; |
} |
+a = new Uint16Array(8); |
+store4(a,0,10); |
+store4(a,0,10); |
+store4(a,0,257); |
+assertEquals(257, a[0]); |
+store4(a,0,-10); |
+assertEquals(65526, a[0]); |
-void MarkingThread::StartMarking() { |
- start_marking_semaphore_->Signal(); |
+function store5(a,i,v) { |
+ a[i] = v; |
} |
+a = new Int32Array(8); |
+store5(a,0,-10); |
+store5(a,0,-10); |
+store5(a,0,-10); |
+assertEquals(-10, a[0]); |
+store5(a,0,65537); |
+assertEquals(65537,a[0]); |
-void MarkingThread::WaitForMarkingThread() { |
- end_marking_semaphore_->Wait(); |
+function store6(a,i,v) { |
+ a[i] = v; |
} |
-} } // namespace v8::internal |
+a = new Uint32Array(8); |
+store6(a,0,10); |
+store6(a,0,10); |
+store6(a,0,257); |
+assertEquals(257, a[0]); |
+store6(a,0,-10); |
+assertEquals(4294967286, a[0]); |
+ |