Index: syzygy/assm/assembler_unittest.cc |
diff --git a/syzygy/assm/assembler_unittest.cc b/syzygy/assm/assembler_unittest.cc |
index 777b6472f32109a4c5a5b66567d72ca45830aef0..b35a2b7f651b430eddbf0479e883f74417c17b6e 100644 |
--- a/syzygy/assm/assembler_unittest.cc |
+++ b/syzygy/assm/assembler_unittest.cc |
@@ -639,6 +639,12 @@ TEST_F(AssemblerTest, MovWithSegmentPrefix) { |
EXPECT_BYTES(0x64, 0x8B, 0x13); |
asm_.mov_fs(ecx, Operand(edx)); |
EXPECT_BYTES(0x64, 0x8B, 0x0A); |
+ |
+ // Immediate source modes. |
+ asm_.mov_fs(eax, Immediate(0xCAFEBABE, kSize32Bit)); |
+ EXPECT_BYTES(0x64, 0xA1, 0xBE, 0xBA, 0xFE, 0xCA); |
+ asm_.mov_fs(ebx, Immediate(0x2C, kSize8Bit)); |
+ EXPECT_BYTES(0x64, 0x8B, 0x1D, 0x2C, 0x00, 0x00, 0x00); |
} |
TEST_F(AssemblerTest, LeaRegisterIndirect) { |
@@ -943,6 +949,25 @@ TEST_F(AssemblerTest, Cmp) { |
EXPECT_BYTES(0x3D, 0xEF, 0xBE, 0xAD, 0xDE); |
} |
+TEST_F(AssemblerTest, IncByte) { |
+ asm_.inc(Operand(eax)); |
+ EXPECT_BYTES(0xFE, 0x00); |
+ asm_.inc(Operand(ecx)); |
+ EXPECT_BYTES(0xFE, 0x01); |
+ asm_.inc(Operand(edx)); |
+ EXPECT_BYTES(0xFE, 0x02); |
+ asm_.inc(Operand(ebx)); |
+ EXPECT_BYTES(0xFE, 0x03); |
+ asm_.inc(Operand(esi)); |
+ EXPECT_BYTES(0xFE, 0x06); |
+ asm_.inc(Operand(edi)); |
+ EXPECT_BYTES(0xFE, 0x07); |
+ asm_.inc(Operand(ebp)); |
+ EXPECT_BYTES(0xFE, 0x45, 0x00); |
+ asm_.inc(Operand(esp)); |
+ EXPECT_BYTES(0xFE, 0x04, 0x24); |
+} |
+ |
TEST_F(AssemblerTest, AddByte) { |
asm_.add(al, bl); |
EXPECT_BYTES(0x02, 0xC3); |