src/cpu/x86/vm/assembler_x86.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
*** old/src/cpu/x86/vm/assembler_x86.cpp Thu Sep 11 23:19:40 2014
--- new/src/cpu/x86/vm/assembler_x86.cpp Thu Sep 11 23:19:40 2014
*** 1295,1304 ****
--- 1295,1315 ----
emit_int8(0x0F);
emit_int8((unsigned char)0xB1);
emit_operand(reg, adr);
}
+ // The 8-bit cmpxchg compares the value at adr with the contents of rax,
+ // and stores reg into adr if so; otherwise, the value at adr is loaded into rax,.
+ // The ZF is set if the compared values were equal, and cleared otherwise.
+ void Assembler::cmpxchgb(Register reg, Address adr) { // cmpxchg
+ InstructionMark im(this);
+ prefix(adr, reg);
+ emit_int8(0x0F);
+ emit_int8((unsigned char)0xB0);
+ emit_operand(reg, adr);
+ }
+
void Assembler::comisd(XMMRegister dst, Address src) {
// NOTE: dbx seems to decode this as comiss even though the
// 0x66 is there. Strangly ucomisd comes out correct
NOT_LP64(assert(VM_Version::supports_sse2(), ""));
emit_simd_arith_nonds(0x2F, dst, src, VEX_SIMD_66);
src/cpu/x86/vm/assembler_x86.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File