vxor r0, r0
VXOR R0, R0
vm_regs.py
class VMGeneralPurposeRegister(object):
def __init__(self): self.v = 0
def __init__(self):
VMGeneralPurposeRegister
VMInstance vm.py
self.r = [VMGeneralPurposeRegister() for _ in xrange(16)]
self.sp = self.r[14]
self.pc = self.r[15]
class VMMemory(object):
def __init__(self):
self._mem = bytearray(64 * 1024)
def fetch_byte(self, addr): if addr < 0 or addr >= len(self._mem): return None return self._mem[addr]
def store_byte(self, addr, value): if addr < 0 or addr >= len(self._mem): return False
self._mem[addr] = value return True ...
def __init__(self):
self.mem = VMMemory()
def VMOV(vm, args): vm.reg(args[0]).v = vm.reg(args[1]).v
def VSET(vm, args): vm.reg(args[0]).v = to_dd(args[1:1 + 4])
C _Atomic
atomic_compare_exchange_strong atomic_compare_exchange_weak atomic_fetch_add atomic_fetch_add_explicit -
std::atomic<T> std::atomic_flag
C
Boost.Atomic<T>
InterlockedIncrement InterlockedExchange InterlockedAnd ...
stdatomic.h__STDC_NO_ATOMICS__
std::atomic -
std::atomic_flag jest -
std::atomic<T>
__sync_synchronize __sync_lock_test_and_set __sync_lock_release
_ReadBarrier
_WriteBarrier _ReadWriteBarrier
atomic_thread_fence
MemoryBarrierspinning
static volatile LONG g_poor_mans_lock; ...
InterlockedIncrement(&g_poor_mans_lock); while (g_poor_mans_lock != THREAD_COUNT); ...
g_poor_mans_lock THREAD_COUNT
InterlockedIncrement
if (g_poor_mans_lock != THREAD_COUNT) { while(1); }
volatile
margin: 0; padding: 0; }
#chat-text p span.person { color: #636cc8; }
#chat-text p span.text { color: blue; }
#chat-input-window { background-color: #c1b8ff; text-align: center; border-radius: 1em; }
#chat-input { width: 95%; background-color: #d3d4ff; border: 1px solid #8d88ff; }

/chat/messages
Document Object Model -
$(function() { pole // tekstowe. $('#chat-input') .focus() .keypress(function(ev) { if (ev.which != 13) { // Klawisz ENTER. return; } ev.preventDefault();
var text = $(this).val(); $(this).val('');
var text_json = JSON.stringify({ "text": text }); $.ajax({
Asynchronous JavaScript and XML