From 2f8af1d643cde711b292117e50b30452877432ef Mon Sep 17 00:00:00 2001 From: Devang Patel Date: Tue, 17 Jan 2012 21:48:03 +0000 Subject: [PATCH] Intel syntax: Fix parser match class to check memory operand size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148338 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/X86/X86InstrInfo.td | 6 +++--- test/MC/X86/intel-syntax.s | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/Target/X86/X86InstrInfo.td b/lib/Target/X86/X86InstrInfo.td index 663e07b0f08..8518ed07dc5 100644 --- a/lib/Target/X86/X86InstrInfo.td +++ b/lib/Target/X86/X86InstrInfo.td @@ -318,7 +318,7 @@ def f256mem : X86MemOperand<"printf256mem">{ def i8mem_NOREX : Operand { let PrintMethod = "printi8mem"; let MIOperandInfo = (ops GR64_NOREX, i8imm, GR64_NOREX_NOSP, i32imm, i8imm); - let ParserMatchClass = X86MemAsmOperand; + let ParserMatchClass = X86Mem8AsmOperand; let OperandType = "OPERAND_MEMORY"; } @@ -332,7 +332,7 @@ def ptr_rc_tailcall : PointerLikeRegClass<2>; def i32mem_TC : Operand { let PrintMethod = "printi32mem"; let MIOperandInfo = (ops GR32_TC, i8imm, GR32_TC, i32imm, i8imm); - let ParserMatchClass = X86MemAsmOperand; + let ParserMatchClass = X86Mem32AsmOperand; let OperandType = "OPERAND_MEMORY"; } @@ -343,7 +343,7 @@ def i64mem_TC : Operand { let PrintMethod = "printi64mem"; let MIOperandInfo = (ops ptr_rc_tailcall, i8imm, ptr_rc_tailcall, i32imm, i8imm); - let ParserMatchClass = X86MemAsmOperand; + let ParserMatchClass = X86Mem64AsmOperand; let OperandType = "OPERAND_MEMORY"; } diff --git a/test/MC/X86/intel-syntax.s b/test/MC/X86/intel-syntax.s index 42638f26854..46d3761f3df 100644 --- a/test/MC/X86/intel-syntax.s +++ b/test/MC/X86/intel-syntax.s @@ -25,6 +25,8 @@ _main: mov EAX, DWORD PTR [RSP + 4*RAX - 24] // CHECK: movb %dil, (%rdx,%rcx) mov BYTE PTR [RDX + RCX], DIL +// CHECK: movzwl 2(%rcx), %edi + movzx EDI, WORD PTR [RCX + 2] // CHECK: callq _test call _test ret -- 2.11.0