Daniel Andersson
e7fb1c8516
Compatible atomics: volatile for LoadRelaxed, replace FetchAndAdd with FetchAndDecrement.
...
Using volatile on a word size location will generate a single move instruction without order guarantees and is supported on all compilers.
Replace FetchAndAdd with FetchAndDecrement, since the latter is sufficient and eaiser to implement portably (in particular on some Windows setups).
BUG=https://github.com/dart-lang/sdk/issues/24049
R=iposva@google.com
Review URL: https://codereview.chromium.org//1287853005 .
2015-08-13 09:21:38 -07:00
Daniel Andersson
071ea16620
Use memcpy for Atomic::LoadRelaxed.
...
BUG=
R=iposva@google.com
Review URL: https://codereview.chromium.org//1285923003 .
2015-08-11 13:52:07 -07:00
Daniel Andersson
086329fd9c
Safe and efficient stack-limit based interrupt checking in C++.
...
Remove potentially dangerous (but currently unused) Isolate::stack_limit() accessor.
Add method to test whether interrupts are scheduled, using relaxed memory ordering.
Document and test correct usage by adding a new unit test.
This will be used to periodically check for safepoints in C++ (which will then be equivalent to our generated code).
BUG=
R=iposva@google.com
Review URL: https://codereview.chromium.org//1277473004 .
2015-08-11 12:37:57 -07:00
iposva@google.com
55357d2993
- Use the simulator to do atomic operations that could also
...
be executed in generated code.
R=koda@google.com , zra@google.com
Review URL: https://codereview.chromium.org//677193002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41332 260f80e4-7a28-3924-810f-c04153c831b5
2014-10-27 19:21:33 +00:00
iposva@google.com
50652300dc
- Add AtomicOperations::CompareAndSwapWord
...
- Make AtomicOperations inlineable.
- Use atomic tag word updates from C++ where necessary.
Review URL: https://codereview.chromium.org//529823002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39731 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-01 18:18:44 +00:00