169 |
| LOCK_XADDB "lock\n\txaddb" |
| LOCK_XADDB "lock\n\txaddb" |
170 |
| LOCK_XADDW "lock\n\txaddw" |
| LOCK_XADDW "lock\n\txaddw" |
171 |
| LOCK_XADDL "lock\n\txaddl" |
| LOCK_XADDL "lock\n\txaddl" |
|
| LOCK_CMPXCHGB "lock\n\tcmpxchgb" |
|
|
| LOCK_CMPXCHGW "lock\n\tcmpxchgw" |
|
|
| LOCK_CMPXCHGL "lock\n\tcmpxchgl" |
|
172 |
|
|
173 |
datatype multDivOp! = MULL | IDIVL | DIVL |
datatype multDivOp! = MULL | IDIVL | DIVL |
174 |
|
|
175 |
datatype unaryOp! = DECL | INCL | NEGL | NOTL | NOTW | NOTB |
datatype unaryOp! = DECL | INCL | NEGL | NOTL |
176 |
|
| DECW | INCW | NEGW | NOTW |
177 |
|
| DECB | INCB | NEGB | NOTB |
178 |
| LOCK_DECL "lock\n\tdecl" |
| LOCK_DECL "lock\n\tdecl" |
179 |
| LOCK_INCL "lock\n\tincl" |
| LOCK_INCL "lock\n\tincl" |
180 |
| LOCK_NEGL "lock\n\tnegl" |
| LOCK_NEGL "lock\n\tnegl" |
704 |
) |
) |
705 |
rtl: ``<binOp>'' |
rtl: ``<binOp>'' |
706 |
|
|
707 |
|
| CMPXCHG of {lock:bool, sz:isize, src: operand, dst:operand} |
708 |
|
asm: (if lock then ``lock\n\t'' else (); |
709 |
|
``cmpxchg''; |
710 |
|
case sz of |
711 |
|
I.I8 => ``b'' |
712 |
|
| I.I16 => ``w'' |
713 |
|
| I.I32 => ``l''; |
714 |
|
``\t<src>, <dst>'' |
715 |
|
) |
716 |
|
|
717 |
| MULTDIV of {multDivOp:multDivOp, src:operand} |
| MULTDIV of {multDivOp:multDivOp, src:operand} |
718 |
asm: ``<multDivOp>\t<src>'' |
asm: ``<multDivOp>\t<src>'' |
719 |
|
|