@@ -381,7 +381,7 @@ impl Assembler
381
381
mov ( cb, Assembler :: SCRATCH0 , opnd. into ( ) ) ;
382
382
Assembler :: SCRATCH0
383
383
} else {
384
- opnd . into ( )
384
+ imm_opnd ( * value as i64 )
385
385
}
386
386
} ,
387
387
_ => opnd. into ( )
@@ -963,7 +963,9 @@ mod tests {
963
963
asm. cmp ( Opnd :: Reg ( RAX_REG ) , Opnd :: UImm ( 0xFF ) ) ;
964
964
asm. compile_with_num_regs ( & mut cb, 0 ) ;
965
965
966
- assert_eq ! ( format!( "{:x}" , cb) , "4881f8ff000000" ) ;
966
+ assert_disasm ! ( cb, "4881f8ff000000" , "
967
+ 0x0: cmp rax, 0xff
968
+ " ) ;
967
969
}
968
970
969
971
#[ test]
@@ -973,7 +975,22 @@ mod tests {
973
975
asm. cmp ( Opnd :: Reg ( RAX_REG ) , Opnd :: UImm ( 0xFFFF_FFFF_FFFF ) ) ;
974
976
asm. compile_with_num_regs ( & mut cb, 0 ) ;
975
977
976
- assert_eq ! ( format!( "{:x}" , cb) , "49bbffffffffffff00004c39d8" ) ;
978
+ assert_disasm ! ( cb, "49bbffffffffffff00004c39d8" , "
979
+ 0x0: movabs r11, 0xffffffffffff
980
+ 0xa: cmp rax, r11
981
+ " ) ;
982
+ }
983
+
984
+ #[ test]
985
+ fn test_emit_cmp_64_bits ( ) {
986
+ let ( mut asm, mut cb) = setup_asm ( ) ;
987
+
988
+ asm. cmp ( Opnd :: Reg ( RAX_REG ) , Opnd :: UImm ( 0xFFFF_FFFF_FFFF_FFFF ) ) ;
989
+ asm. compile_with_num_regs ( & mut cb, 0 ) ;
990
+
991
+ assert_disasm ! ( cb, "4883f8ff" , "
992
+ 0x0: cmp rax, -1
993
+ " ) ;
977
994
}
978
995
979
996
#[ test]
@@ -1051,7 +1068,9 @@ mod tests {
1051
1068
asm. test ( Opnd :: Reg ( RAX_REG ) , Opnd :: UImm ( 0xFF ) ) ;
1052
1069
asm. compile_with_num_regs ( & mut cb, 0 ) ;
1053
1070
1054
- assert_eq ! ( format!( "{:x}" , cb) , "f6c0ff" ) ;
1071
+ assert_disasm ! ( cb, "48f7c0ff000000" , "
1072
+ 0x0: test rax, 0xff
1073
+ " ) ;
1055
1074
}
1056
1075
1057
1076
#[ test]
0 commit comments