xref: /llvm-project/llvm/test/tools/llvm-ml/strings.asm (revision 8fee2ee9a689276eaea61d4c3f124aa80a81b6f7)
1*8fee2ee9SEric Astor; RUN: llvm-ml -filetype=s %s /Fo - | FileCheck %s
2*8fee2ee9SEric Astor
3*8fee2ee9SEric Astor.data
4*8fee2ee9SEric Astor
5*8fee2ee9SEric Astordq_single_character BYTE "a"
6*8fee2ee9SEric Astor; CHECK-LABEL: dq_single_character:
7*8fee2ee9SEric Astor; CHECK-NEXT: .byte 97
8*8fee2ee9SEric Astor; CHECK-NOT: .byte
9*8fee2ee9SEric Astor
10*8fee2ee9SEric Astordq_join BYTE "ab", "cd"
11*8fee2ee9SEric Astor; CHECK-LABEL: dq_join:
12*8fee2ee9SEric Astor; CHECK-NEXT: .byte 97
13*8fee2ee9SEric Astor; CHECK-NEXT: .byte 98
14*8fee2ee9SEric Astor; CHECK-NEXT: .byte 99
15*8fee2ee9SEric Astor; CHECK-NEXT: .byte 100
16*8fee2ee9SEric Astor; CHECK-NOT: .byte
17*8fee2ee9SEric Astor
18*8fee2ee9SEric Astordq_quote_escape BYTE "ab""""cd"
19*8fee2ee9SEric Astor; Intended result: ab""cd
20*8fee2ee9SEric Astor; CHECK-LABEL: dq_quote_escape:
21*8fee2ee9SEric Astor; CHECK-NEXT: .byte 97
22*8fee2ee9SEric Astor; CHECK-NEXT: .byte 98
23*8fee2ee9SEric Astor; CHECK-NEXT: .byte 34
24*8fee2ee9SEric Astor; CHECK-NEXT: .byte 34
25*8fee2ee9SEric Astor; CHECK-NEXT: .byte 99
26*8fee2ee9SEric Astor; CHECK-NEXT: .byte 100
27*8fee2ee9SEric Astor; CHECK-NOT: .byte
28*8fee2ee9SEric Astor
29*8fee2ee9SEric Astordq_single_quote BYTE "ab''''cd"
30*8fee2ee9SEric Astor; Intended result: ab''''cd
31*8fee2ee9SEric Astor; CHECK-LABEL: dq_single_quote:
32*8fee2ee9SEric Astor; CHECK-NEXT: .byte 97
33*8fee2ee9SEric Astor; CHECK-NEXT: .byte 98
34*8fee2ee9SEric Astor; CHECK-NEXT: .byte 39
35*8fee2ee9SEric Astor; CHECK-NEXT: .byte 39
36*8fee2ee9SEric Astor; CHECK-NEXT: .byte 39
37*8fee2ee9SEric Astor; CHECK-NEXT: .byte 39
38*8fee2ee9SEric Astor; CHECK-NEXT: .byte 99
39*8fee2ee9SEric Astor; CHECK-NEXT: .byte 100
40*8fee2ee9SEric Astor; CHECK-NOT: .byte
41*8fee2ee9SEric Astor
42*8fee2ee9SEric Astorsq_single_character BYTE 'a'
43*8fee2ee9SEric Astor; CHECK-LABEL: sq_single_character:
44*8fee2ee9SEric Astor; CHECK-NEXT: .byte 97
45*8fee2ee9SEric Astor; CHECK-NOT: .byte
46*8fee2ee9SEric Astor
47*8fee2ee9SEric Astorsq_join BYTE 'ab', 'cd'
48*8fee2ee9SEric Astor; CHECK-LABEL: sq_join:
49*8fee2ee9SEric Astor; CHECK-NEXT: .byte 97
50*8fee2ee9SEric Astor; CHECK-NEXT: .byte 98
51*8fee2ee9SEric Astor; CHECK-NEXT: .byte 99
52*8fee2ee9SEric Astor; CHECK-NEXT: .byte 100
53*8fee2ee9SEric Astor; CHECK-NOT: .byte
54*8fee2ee9SEric Astor
55*8fee2ee9SEric Astorsq_quote_escape BYTE 'ab''''cd'
56*8fee2ee9SEric Astor; Intended result: ab''cd
57*8fee2ee9SEric Astor; CHECK-LABEL: sq_quote_escape:
58*8fee2ee9SEric Astor; CHECK-NEXT: .byte 97
59*8fee2ee9SEric Astor; CHECK-NEXT: .byte 98
60*8fee2ee9SEric Astor; CHECK-NEXT: .byte 39
61*8fee2ee9SEric Astor; CHECK-NEXT: .byte 39
62*8fee2ee9SEric Astor; CHECK-NEXT: .byte 99
63*8fee2ee9SEric Astor; CHECK-NEXT: .byte 100
64*8fee2ee9SEric Astor; CHECK-NOT: .byte
65*8fee2ee9SEric Astor
66*8fee2ee9SEric Astorsq_double_quote BYTE 'ab""""cd'
67*8fee2ee9SEric Astor; Intended result: ab""""cd
68*8fee2ee9SEric Astor; CHECK-LABEL: sq_double_quote:
69*8fee2ee9SEric Astor; CHECK-NEXT: .byte 97
70*8fee2ee9SEric Astor; CHECK-NEXT: .byte 98
71*8fee2ee9SEric Astor; CHECK-NEXT: .byte 34
72*8fee2ee9SEric Astor; CHECK-NEXT: .byte 34
73*8fee2ee9SEric Astor; CHECK-NEXT: .byte 34
74*8fee2ee9SEric Astor; CHECK-NEXT: .byte 34
75*8fee2ee9SEric Astor; CHECK-NEXT: .byte 99
76*8fee2ee9SEric Astor; CHECK-NEXT: .byte 100
77*8fee2ee9SEric Astor; CHECK-NOT: .byte
78*8fee2ee9SEric Astor
79*8fee2ee9SEric Astormixed_quotes_join BYTE "a'b", 'c"d'
80*8fee2ee9SEric Astor; Intended result: a'bc"d
81*8fee2ee9SEric Astor; CHECK-LABEL: mixed_quotes_join:
82*8fee2ee9SEric Astor; CHECK-NEXT: .byte 97
83*8fee2ee9SEric Astor; CHECK-NEXT: .byte 39
84*8fee2ee9SEric Astor; CHECK-NEXT: .byte 98
85*8fee2ee9SEric Astor; CHECK-NEXT: .byte 99
86*8fee2ee9SEric Astor; CHECK-NEXT: .byte 34
87*8fee2ee9SEric Astor; CHECK-NEXT: .byte 100
88*8fee2ee9SEric Astor; CHECK-NOT: .byte
89*8fee2ee9SEric Astor
90*8fee2ee9SEric Astor.code
91*8fee2ee9SEric Astor
92*8fee2ee9SEric Astorsq_char_test PROC
93*8fee2ee9SEric Astor; CHECK-LABEL: sq_char_test:
94*8fee2ee9SEric Astor
95*8fee2ee9SEric Astor  mov eax, 'a'
96*8fee2ee9SEric Astor; CHECK: mov eax, 97
97*8fee2ee9SEric Astor
98*8fee2ee9SEric Astor  mov eax, ''''
99*8fee2ee9SEric Astor; CHECK: mov eax, 39
100*8fee2ee9SEric Astor
101*8fee2ee9SEric Astor  mov eax, '"'
102*8fee2ee9SEric Astor; CHECK: mov eax, 34
103*8fee2ee9SEric Astor
104*8fee2ee9SEric Astor  ret
105*8fee2ee9SEric Astorsq_char_test ENDP
106*8fee2ee9SEric Astor
107*8fee2ee9SEric Astordq_char_test PROC
108*8fee2ee9SEric Astor; CHECK-LABEL: dq_char_test:
109*8fee2ee9SEric Astor
110*8fee2ee9SEric Astor  mov eax, "b"
111*8fee2ee9SEric Astor; CHECK: mov eax, 98
112*8fee2ee9SEric Astor
113*8fee2ee9SEric Astor  mov eax, """"
114*8fee2ee9SEric Astor; CHECK: mov eax, 34
115*8fee2ee9SEric Astor
116*8fee2ee9SEric Astor  mov eax, "'"
117*8fee2ee9SEric Astor; CHECK: mov eax, 39
118*8fee2ee9SEric Astor
119*8fee2ee9SEric Astor  ret
120*8fee2ee9SEric Astordq_char_test ENDP
121*8fee2ee9SEric Astor
122*8fee2ee9SEric Astorstring_constant_test PROC
123*8fee2ee9SEric Astor; CHECK-LABEL: string_constant_test:
124*8fee2ee9SEric Astor
125*8fee2ee9SEric Astor  mov eax, 'ab'
126*8fee2ee9SEric Astor  mov eax, "ab"
127*8fee2ee9SEric Astor; CHECK: mov eax, 24930
128*8fee2ee9SEric Astor; CHECK: mov eax, 24930
129*8fee2ee9SEric Astor
130*8fee2ee9SEric Astor  mov eax, "abc"
131*8fee2ee9SEric Astor  mov eax, 'abc'
132*8fee2ee9SEric Astor; CHECK: mov eax, 6382179
133*8fee2ee9SEric Astor; CHECK: mov eax, 6382179
134*8fee2ee9SEric Astor
135*8fee2ee9SEric Astor  mov eax, "abc"""
136*8fee2ee9SEric Astor  mov eax, 'abc'''
137*8fee2ee9SEric Astor; CHECK: mov eax, 1633837858
138*8fee2ee9SEric Astor; CHECK: mov eax, 1633837863
139*8fee2ee9SEric Astor
140*8fee2ee9SEric Astor  ret
141*8fee2ee9SEric Astorstring_constant_test ENDP
142*8fee2ee9SEric Astor
143*8fee2ee9SEric Astorend
144