Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save AlexxNica/b1e674c91b7b186b39748106885246ed to your computer and use it in GitHub Desktop.
Save AlexxNica/b1e674c91b7b186b39748106885246ed to your computer and use it in GitHub Desktop.
function makeAtomicOps(ofType) {
function makeRMW(opName) {
return function(bytes, offset, ptr, value) {
return Module['_BinaryenAtomicRMW'](module, Module[opName], bytes, offset, ptr, value, ofType);
};
}
return {
'rmw': {
'add': makeRMW('AtomicRMWAdd'),
'sub': makeRMW('AtomicRMWSub'),
'and': makeRMW('AtomicRMWAnd'),
'or': makeRMW('AtomicRMWOr'),
'xor': makeRMW('AtomicRMWXor'),
'xchg': makeRMW('AtomicRMWXchg'),
'cmpxchg': function(bytes, offset, ptr, expected, replacement) {
return Module['_BinaryenAtomicCmpxchg'](module, bytes, offset, ptr, expected, replacement, ofType)
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment