[ms] [llvm-ml] Add missing built-in type aliases

Add signed aliases for integral types, as well as the "DF" abbreviation for the FWORD type.

Reviewed By: thakis

Differential Revision: https://reviews.llvm.org/D87246
This commit is contained in:
Eric Astor 2020-09-14 14:07:33 -04:00
parent cfff88c03c
commit da17e0d5c1
2 changed files with 85 additions and 0 deletions

View File

@ -623,6 +623,7 @@ private:
DK_SQWORD,
DK_DB,
DK_DD,
DK_DF,
DK_DQ,
DK_DW,
DK_REAL4,
@ -2114,6 +2115,7 @@ bool MasmParser::parseStatement(ParseStatementInfo &Info,
case DK_DD:
return parseDirectiveValue(IDVal, 4);
case DK_FWORD:
case DK_DF:
return parseDirectiveValue(IDVal, 6);
case DK_QWORD:
case DK_SQWORD:
@ -2325,21 +2327,26 @@ bool MasmParser::parseStatement(ParseStatementInfo &Info,
Lex();
return parseDirectiveEquate(nextVal, IDVal, DirKind);
case DK_BYTE:
case DK_SBYTE:
case DK_DB:
Lex();
return parseDirectiveNamedValue(nextVal, 1, IDVal, IDLoc);
case DK_WORD:
case DK_SWORD:
case DK_DW:
Lex();
return parseDirectiveNamedValue(nextVal, 2, IDVal, IDLoc);
case DK_DWORD:
case DK_SDWORD:
case DK_DD:
Lex();
return parseDirectiveNamedValue(nextVal, 4, IDVal, IDLoc);
case DK_FWORD:
case DK_DF:
Lex();
return parseDirectiveNamedValue(nextVal, 6, IDVal, IDLoc);
case DK_QWORD:
case DK_SQWORD:
case DK_DQ:
Lex();
return parseDirectiveNamedValue(nextVal, 8, IDVal, IDLoc);
@ -6284,6 +6291,7 @@ void MasmParser::initializeDirectiveKindMap() {
// DirectiveKindMap[".noaltmacro"] = DK_NOALTMACRO;
DirectiveKindMap["db"] = DK_DB;
DirectiveKindMap["dd"] = DK_DD;
DirectiveKindMap["df"] = DK_DF;
DirectiveKindMap["dq"] = DK_DQ;
DirectiveKindMap["dw"] = DK_DW;
DirectiveKindMap["echo"] = DK_ECHO;

View File

@ -0,0 +1,77 @@
# RUN: llvm-ml -filetype=asm %s | FileCheck %s
.data
t1_long BYTE 1
t1_short DB 1
t1_signed SBYTE -1
; CHECK-LABEL: t1_long:
; CHECK: .byte 1
; CHECK-LABEL: t1_short:
; CHECK: .byte 1
; CHECK-LABEL: t1_signed:
; CHECK: .byte -1
t2_long WORD 2
t2_short DW 2
t2_signed SWORD -2
; CHECK-LABEL: t2_long:
; CHECK: .short 2
; CHECK-LABEL: t2_short:
; CHECK: .short 2
; CHECK-LABEL: t2_signed:
; CHECK: .short -2
t3_long DWORD 3
t3_short DD 3
t3_signed SDWORD -3
; CHECK-LABEL: t3_long:
; CHECK: .long 3
; CHECK-LABEL: t3_short:
; CHECK: .long 3
; CHECK-LABEL: t3_signed:
; CHECK: .long -3
t4_long FWORD 4
t4_short DF 4
t4_long_large FWORD 4294967298
t4_short_large FWORD 4294967298
; CHECK-LABEL: t4_long:
; CHECK-NEXT: .long 4
; CHECK-NEXT: .short 0
; CHECK-LABEL: t4_short:
; CHECK-NEXT: .long 4
; CHECK-NEXT: .short 0
; CHECK-LABEL: t4_long_large:
; CHECK-NEXT: .long 2
; CHECK-NEXT: .short 1
; CHECK-LABEL: t4_short_large:
; CHECK-NEXT: .long 2
; CHECK-NEXT: .short 1
t5_long QWORD 4611686018427387904
t5_short DQ 4611686018427387904
t5_signed SQWORD -4611686018427387904
; CHECK-LABEL: t5_long:
; CHECK-NEXT: .quad 4611686018427387904
; CHECK-LABEL: t5_short:
; CHECK-NEXT: .quad 4611686018427387904
; CHECK-LABEL: t5_signed:
; CHECK-NEXT: .quad -4611686018427387904
t6_single REAL4 1.3
t6_double REAL8 1.3
; CHECK-LABEL: t6_single:
; CHECK-NEXT: .long 1067869798
; CHECK-LABEL: t6_double:
; CHECK-NEXT: .quad 4608533498688228557
.code
END