diff options
author | Alexander Potapenko <glider@google.com> | 2012-08-01 16:35:48 +0000 |
---|---|---|
committer | Alexander Potapenko <glider@google.com> | 2012-08-01 16:35:48 +0000 |
commit | 40b48ccae2e4a85743b2f2f3f247fb10f083bddd (patch) | |
tree | 8331791229057ac32a561aa09da1d4491adac187 /compiler-rt | |
parent | 5e19d35e9a0673ed3d323a8228f1474893430c23 (diff) | |
download | bcm5719-llvm-40b48ccae2e4a85743b2f2f3f247fb10f083bddd.tar.gz bcm5719-llvm-40b48ccae2e4a85743b2f2f3f247fb10f083bddd.zip |
Add support for "movsbl %sil,%ecx" (x86_64) and "movsbl $imm(%ebp), %edx" (i386) to our fork of mach_override.
This is an extended version of a patch by Rafael Avila de Espindola (rafael.espindola@gmail.com)
llvm-svn: 161116
Diffstat (limited to 'compiler-rt')
-rw-r--r-- | compiler-rt/lib/interception/mach_override/mach_override.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/compiler-rt/lib/interception/mach_override/mach_override.c b/compiler-rt/lib/interception/mach_override/mach_override.c index 499cc029b18..9557b4f319e 100644 --- a/compiler-rt/lib/interception/mach_override/mach_override.c +++ b/compiler-rt/lib/interception/mach_override/mach_override.c @@ -675,6 +675,7 @@ static AsmInstructionMatch possibleInstructions[] = { { 0x4, {0xFF, 0xFF, 0xFF, 0x00}, {0x66, 0x0F, 0xEF, 0x00} }, // pxor xmm2/128, xmm1 { 0x2, {0xFF, 0xFF}, {0xDB, 0xE3} }, // fninit { 0x5, {0xFF, 0x00, 0x00, 0x00, 0x00}, {0xE8, 0x00, 0x00, 0x00, 0x00} }, // call $imm + { 0x4, {0xFF, 0xFF, 0xFF, 0x00}, {0x0F, 0xBE, 0x55, 0x00} }, // movsbl $imm(%ebp), %edx { 0x0 } }; #elif defined(__x86_64__) @@ -715,7 +716,8 @@ static AsmInstructionMatch possibleInstructions[] = { {0xFF, 0x25, 0x00, 0x00, 0x00, 0x00} }, // jmpq *(%rip) { 0x4, {0xFF, 0xFF, 0xFF, 0x00}, {0x66, 0x0F, 0xEF, 0x00} }, // pxor xmm2/128, xmm1 { 0x2, {0xFF, 0x00}, {0x89, 0x00} }, // mov r/m32,r32 or r/m16,r16 - { 0x3, {0xFF, 0xFF, 0xFF}, {0x49, 0x89, 0xF8} }, // mov %rdi,%r8 + { 0x3, {0xFF, 0xFF, 0xFF}, {0x49, 0x89, 0xF8} }, // mov %rdi,%r8 + { 0x4, {0xFF, 0xFF, 0xFF, 0xFF}, {0x40, 0x0F, 0xBE, 0xCE} }, // movsbl %sil,%ecx { 0x3, {0xFF, 0xFF, 0x00}, {0xFF, 0x77, 0x00} }, // pushq $imm(%rdi) { 0x2, {0xFF, 0xFF}, {0xDB, 0xE3} }, // fninit { 0x3, {0xFF, 0xFF, 0xFF}, {0x48, 0x85, 0xD2} }, // test %rdx,%rdx |