diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/threads.asm.js | 3 | ||||
-rw-r--r-- | test/threads.fromasm | 14 | ||||
-rw-r--r-- | test/threads.fromasm.clamp | 14 | ||||
-rw-r--r-- | test/threads.fromasm.clamp.no-opts | 14 | ||||
-rw-r--r-- | test/threads.fromasm.imprecise | 14 | ||||
-rw-r--r-- | test/threads.fromasm.imprecise.no-opts | 14 | ||||
-rw-r--r-- | test/threads.fromasm.no-opts | 14 |
7 files changed, 78 insertions, 9 deletions
diff --git a/test/threads.asm.js b/test/threads.asm.js index 1253e8c42..bedeb7a37 100644 --- a/test/threads.asm.js +++ b/test/threads.asm.js @@ -137,6 +137,9 @@ Module["asm"] = (function(global, env, buffer) { $temp = (Atomics_xor(HEAPU32, 1024, 0)|0); $temp = (Atomics_xor(HEAP16, 1024, 0)|0); $temp = (Atomics_xor(HEAPU8, 1024, 0)|0); + // corner cases + $temp = (Atomics_compareExchange(HEAP8, $temp | 0, 1, 2)|0); + $temp = (Atomics_compareExchange(HEAP8, $temp >> 2, 1, 2)|0); } return { test: test }; diff --git a/test/threads.fromasm b/test/threads.fromasm index 47112c8f5..25e26135c 100644 --- a/test/threads.fromasm +++ b/test/threads.fromasm @@ -56,9 +56,17 @@ ) ) (drop - (i32.atomic.rmw8_u.xor - (i32.const 1024) - (i32.const 0) + (i32.atomic.rmw8_u.cmpxchg + (i32.atomic.rmw8_u.cmpxchg + (i32.atomic.rmw8_u.xor + (i32.const 1024) + (i32.const 0) + ) + (i32.const 1) + (i32.const 2) + ) + (i32.const 1) + (i32.const 2) ) ) ) diff --git a/test/threads.fromasm.clamp b/test/threads.fromasm.clamp index 47112c8f5..25e26135c 100644 --- a/test/threads.fromasm.clamp +++ b/test/threads.fromasm.clamp @@ -56,9 +56,17 @@ ) ) (drop - (i32.atomic.rmw8_u.xor - (i32.const 1024) - (i32.const 0) + (i32.atomic.rmw8_u.cmpxchg + (i32.atomic.rmw8_u.cmpxchg + (i32.atomic.rmw8_u.xor + (i32.const 1024) + (i32.const 0) + ) + (i32.const 1) + (i32.const 2) + ) + (i32.const 1) + (i32.const 2) ) ) ) diff --git a/test/threads.fromasm.clamp.no-opts b/test/threads.fromasm.clamp.no-opts index 78538c9c9..d15b56541 100644 --- a/test/threads.fromasm.clamp.no-opts +++ b/test/threads.fromasm.clamp.no-opts @@ -118,5 +118,19 @@ (i32.const 0) ) ) + (set_local $$temp + (i32.atomic.rmw8_u.cmpxchg + (get_local $$temp) + (i32.const 1) + (i32.const 2) + ) + ) + (set_local $$temp + (i32.atomic.rmw8_u.cmpxchg + (get_local $$temp) + (i32.const 1) + (i32.const 2) + ) + ) ) ) diff --git a/test/threads.fromasm.imprecise b/test/threads.fromasm.imprecise index 66c558ffe..eec93d750 100644 --- a/test/threads.fromasm.imprecise +++ b/test/threads.fromasm.imprecise @@ -54,9 +54,17 @@ ) ) (drop - (i32.atomic.rmw8_u.xor - (i32.const 1024) - (i32.const 0) + (i32.atomic.rmw8_u.cmpxchg + (i32.atomic.rmw8_u.cmpxchg + (i32.atomic.rmw8_u.xor + (i32.const 1024) + (i32.const 0) + ) + (i32.const 1) + (i32.const 2) + ) + (i32.const 1) + (i32.const 2) ) ) ) diff --git a/test/threads.fromasm.imprecise.no-opts b/test/threads.fromasm.imprecise.no-opts index 78538c9c9..d15b56541 100644 --- a/test/threads.fromasm.imprecise.no-opts +++ b/test/threads.fromasm.imprecise.no-opts @@ -118,5 +118,19 @@ (i32.const 0) ) ) + (set_local $$temp + (i32.atomic.rmw8_u.cmpxchg + (get_local $$temp) + (i32.const 1) + (i32.const 2) + ) + ) + (set_local $$temp + (i32.atomic.rmw8_u.cmpxchg + (get_local $$temp) + (i32.const 1) + (i32.const 2) + ) + ) ) ) diff --git a/test/threads.fromasm.no-opts b/test/threads.fromasm.no-opts index 78538c9c9..d15b56541 100644 --- a/test/threads.fromasm.no-opts +++ b/test/threads.fromasm.no-opts @@ -118,5 +118,19 @@ (i32.const 0) ) ) + (set_local $$temp + (i32.atomic.rmw8_u.cmpxchg + (get_local $$temp) + (i32.const 1) + (i32.const 2) + ) + ) + (set_local $$temp + (i32.atomic.rmw8_u.cmpxchg + (get_local $$temp) + (i32.const 1) + (i32.const 2) + ) + ) ) ) |