Skip to content

Commit e8378a8

Browse files
committed
[MERGE #6112 @atulkatti] Fix build errors related to literals in assembly while using Clang 8.0.
Merge pull request #6112 from atulkatti:FixOSSFuzzBuildIssue.1
2 parents 9d30e8a + 20b819a commit e8378a8

File tree

6 files changed

+82
-82
lines changed

6 files changed

+82
-82
lines changed

lib/Backend/amd64/LinearScanMdA.S

+20-20
Original file line numberDiff line numberDiff line change
@@ -51,23 +51,23 @@ LEAF_ENTRY _ZN12LinearScanMD26SaveAllRegistersEP13BailOutRecord, _TEXT
5151
mov [rax + 15 * 8], r15
5252

5353
// Save all XMM regs (full width)
54-
movups xmmword ptr [rax + 80h], xmm0 // [rax + 16 * 8 + 0 * 16] = xmm0
55-
movups xmmword ptr [rax + 90h], xmm1 // [rax + 16 * 8 + 1 * 16] = xmm1
56-
movups xmmword ptr [rax + 0a0h], xmm2 // ...
57-
// movups xmmword ptr [rax + 0b0h], xmm3 // xplat: WHY this one fails to compile...
54+
movups xmmword ptr [rax + 0x80], xmm0 // [rax + 16 * 8 + 0 * 16] = xmm0
55+
movups xmmword ptr [rax + 0x90], xmm1 // [rax + 16 * 8 + 1 * 16] = xmm1
56+
movups xmmword ptr [rax + 0x0a0], xmm2 // ...
57+
// movups xmmword ptr [rax + 0x0b0], xmm3 // xplat: WHY this one fails to compile...
5858
movups xmmword ptr [rax + 11 * 16], xmm3
59-
movups xmmword ptr [rax + 0c0h], xmm4
60-
movups xmmword ptr [rax + 0d0h], xmm5
61-
movups xmmword ptr [rax + 0e0h], xmm6
62-
movups xmmword ptr [rax + 0f0h], xmm7
63-
movups xmmword ptr [rax + 100h], xmm8
64-
movups xmmword ptr [rax + 110h], xmm9
65-
movups xmmword ptr [rax + 120h], xmm10
66-
movups xmmword ptr [rax + 130h], xmm11
67-
movups xmmword ptr [rax + 140h], xmm12
68-
movups xmmword ptr [rax + 150h], xmm13
69-
movups xmmword ptr [rax + 160h], xmm14
70-
movups xmmword ptr [rax + 170h], xmm15 // [rax + 16 * 8 + 15 * 16] = xmm15
59+
movups xmmword ptr [rax + 0x0c0], xmm4
60+
movups xmmword ptr [rax + 0x0d0], xmm5
61+
movups xmmword ptr [rax + 0x0e0], xmm6
62+
movups xmmword ptr [rax + 0x0f0], xmm7
63+
movups xmmword ptr [rax + 0x100], xmm8
64+
movups xmmword ptr [rax + 0x110], xmm9
65+
movups xmmword ptr [rax + 0x120], xmm10
66+
movups xmmword ptr [rax + 0x130], xmm11
67+
movups xmmword ptr [rax + 0x140], xmm12
68+
movups xmmword ptr [rax + 0x150], xmm13
69+
movups xmmword ptr [rax + 0x160], xmm14
70+
movups xmmword ptr [rax + 0x170], xmm15 // [rax + 16 * 8 + 15 * 16] = xmm15
7171

7272
ret
7373

@@ -91,12 +91,12 @@ NESTED_ENTRY _ZN12LinearScanMD26SaveAllRegistersAndBailOutEP13BailOutRecord, _TE
9191

9292
mov [rsp + 3 * 8], rsi
9393

94-
sub rsp, 28h // use the same as Windows x64 so register locations are the same
94+
sub rsp, 0x28 // use the same as Windows x64 so register locations are the same
9595
.cfi_adjust_cfa_offset 0x28
9696

9797
call C_FUNC(_ZN12LinearScanMD26SaveAllRegistersEP13BailOutRecord)
9898

99-
add rsp, 28h // deallocate stack space
99+
add rsp, 0x28 // deallocate stack space
100100
.cfi_adjust_cfa_offset -0x28
101101

102102
jmp C_FUNC(_ZN13BailOutRecord7BailOutEPKS_)
@@ -117,12 +117,12 @@ NESTED_ENTRY _ZN12LinearScanMD32SaveAllRegistersAndBranchBailOutEP19BranchBailOu
117117
// rdi == bailOutRecord
118118
// rsi == condition
119119

120-
sub rsp, 28h // use the same as Windows x64 so register locations are the same
120+
sub rsp, 0x28 // use the same as Windows x64 so register locations are the same
121121
.cfi_adjust_cfa_offset 0x28
122122

123123
call C_FUNC(_ZN12LinearScanMD26SaveAllRegistersEP13BailOutRecord)
124124

125-
add rsp, 28h // deallocate stack space
125+
add rsp, 0x28 // deallocate stack space
126126
.cfi_adjust_cfa_offset -0x28
127127

128128
jmp C_FUNC(_ZN19BranchBailOutRecord7BailOutEPKS_i)

lib/Backend/amd64/Thunks.S

+10-10
Original file line numberDiff line numberDiff line change
@@ -63,24 +63,24 @@ NESTED_ENTRY _ZN19NativeCodeGenerator22CheckAsmJsCodeGenThunkEPN2Js16RecyclableO
6363
push r8
6464
push r9
6565

66-
sub rsp, 40h
66+
sub rsp, 0x40
6767

6868
// ----- TODO: potentially xmm0-xmm7 args
6969
// spill potential floating point arguments to stack
70-
movaps xmmword ptr [rsp + 00h], xmm0
71-
movaps xmmword ptr [rsp + 10h], xmm1
72-
movaps xmmword ptr [rsp + 20h], xmm2
73-
movaps xmmword ptr [rsp + 30h], xmm3
70+
movaps xmmword ptr [rsp + 0x00], xmm0
71+
movaps xmmword ptr [rsp + 0x10], xmm1
72+
movaps xmmword ptr [rsp + 0x20], xmm2
73+
movaps xmmword ptr [rsp + 0x30], xmm3
7474

7575
call C_FUNC(_ZN19NativeCodeGenerator17CheckAsmJsCodeGenEPN2Js14ScriptFunctionE)
7676

7777
// restore potential floating point arguments from stack
78-
movaps xmm0, xmmword ptr [rsp + 00h]
79-
movaps xmm1, xmmword ptr [rsp + 10h]
80-
movaps xmm2, xmmword ptr [rsp + 20h]
81-
movaps xmm3, xmmword ptr [rsp + 30h]
78+
movaps xmm0, xmmword ptr [rsp + 0x00]
79+
movaps xmm1, xmmword ptr [rsp + 0x10]
80+
movaps xmm2, xmmword ptr [rsp + 0x20]
81+
movaps xmm3, xmmword ptr [rsp + 0x30]
8282

83-
add rsp, 40h
83+
add rsp, 0x40
8484

8585
pop r9
8686
pop r8

lib/Common/Memory/amd64/amd64_SAVE_REGISTERS.S

+16-16
Original file line numberDiff line numberDiff line change
@@ -16,20 +16,20 @@
1616
//
1717
.globl C_FUNC(amd64_SAVE_REGISTERS)
1818
C_FUNC(amd64_SAVE_REGISTERS):
19-
mov [rdi+00h], rsp
20-
mov [rdi+08h], rax
21-
mov [rdi+10h], rbx
22-
mov [rdi+18h], rcx
23-
mov [rdi+20h], rdx
24-
mov [rdi+28h], rbp
25-
mov [rdi+30h], rsi
26-
mov [rdi+38h], rdi
27-
mov [rdi+40h], r8
28-
mov [rdi+48h], r9
29-
mov [rdi+50h], r10
30-
mov [rdi+58h], r11
31-
mov [rdi+60h], r12
32-
mov [rdi+68h], r13
33-
mov [rdi+70h], r14
34-
mov [rdi+78h], r15
19+
mov [rdi+0x00], rsp
20+
mov [rdi+0x08], rax
21+
mov [rdi+0x10], rbx
22+
mov [rdi+0x18], rcx
23+
mov [rdi+0x20], rdx
24+
mov [rdi+0x28], rbp
25+
mov [rdi+0x30], rsi
26+
mov [rdi+0x38], rdi
27+
mov [rdi+0x40], r8
28+
mov [rdi+0x48], r9
29+
mov [rdi+0x50], r10
30+
mov [rdi+0x58], r11
31+
mov [rdi+0x60], r12
32+
mov [rdi+0x68], r13
33+
mov [rdi+0x70], r14
34+
mov [rdi+0x78], r15
3535
ret

lib/Runtime/Language/amd64/JavascriptOperatorsA.S

+18-18
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,15 @@ NESTED_ENTRY amd64_CallWithFakeFrame, _TEXT, NoHandler
2727
sub rsp, rdx
2828

2929
// Save callee-saved xmm registers -- none on Sys V x64
30-
// movapd xmmword ptr [rsp + 90h], xmm15
31-
// movapd xmmword ptr [rsp + 80h], xmm14
32-
// movapd xmmword ptr [rsp + 70h], xmm13
33-
// movapd xmmword ptr [rsp + 60h], xmm12
34-
// movapd xmmword ptr [rsp + 50h], xmm11
35-
// movapd xmmword ptr [rsp + 40h], xmm10
36-
// movapd xmmword ptr [rsp + 30h], xmm9
37-
// movapd xmmword ptr [rsp + 20h], xmm8
38-
// movapd xmmword ptr [rsp + 10h], xmm7
30+
// movapd xmmword ptr [rsp + 0x90], xmm15
31+
// movapd xmmword ptr [rsp + 0x80], xmm14
32+
// movapd xmmword ptr [rsp + 0x70], xmm13
33+
// movapd xmmword ptr [rsp + 0x60], xmm12
34+
// movapd xmmword ptr [rsp + 0x50], xmm11
35+
// movapd xmmword ptr [rsp + 0x40], xmm10
36+
// movapd xmmword ptr [rsp + 0x30], xmm9
37+
// movapd xmmword ptr [rsp + 0x20], xmm8
38+
// movapd xmmword ptr [rsp + 0x10], xmm7
3939
// movapd xmmword ptr [rsp], xmm6
4040

4141
// Save all callee saved registers.
@@ -67,15 +67,15 @@ NESTED_ENTRY amd64_ReturnFromCallWithFakeFrame, _TEXT, NoHandler
6767

6868
// Restore callee-saved xmm registers -- none on Sys V x64; must match RegList.h
6969
// movapd xmm6, xmmword ptr [rsp]
70-
// movapd xmm7, xmmword ptr [rsp + 10h]
71-
// movapd xmm8, xmmword ptr [rsp + 20h]
72-
// movapd xmm9, xmmword ptr [rsp + 30h]
73-
// movapd xmm10, xmmword ptr [rsp + 40h]
74-
// movapd xmm11, xmmword ptr [rsp + 50h]
75-
// movapd xmm12, xmmword ptr [rsp + 60h]
76-
// movapd xmm13, xmmword ptr [rsp + 70h]
77-
// movapd xmm14, xmmword ptr [rsp + 80h]
78-
// movapd xmm15, xmmword ptr [rsp + 90h]
70+
// movapd xmm7, xmmword ptr [rsp + 0x10]
71+
// movapd xmm8, xmmword ptr [rsp + 0x20]
72+
// movapd xmm9, xmmword ptr [rsp + 0x30]
73+
// movapd xmm10, xmmword ptr [rsp + 0x40]
74+
// movapd xmm11, xmmword ptr [rsp + 0x50]
75+
// movapd xmm12, xmmword ptr [rsp + 0x60]
76+
// movapd xmm13, xmmword ptr [rsp + 0x70]
77+
// movapd xmm14, xmmword ptr [rsp + 0x80]
78+
// movapd xmm15, xmmword ptr [rsp + 0x90]
7979

8080
add rsp, rdx
8181

lib/Runtime/Language/amd64/amd64_Thunks.S

+12-12
Original file line numberDiff line numberDiff line change
@@ -217,12 +217,12 @@ NESTED_ENTRY _ZN2Js23AsmJsExternalEntryPointEPNS_16RecyclableObjectENS_8CallInfo
217217

218218
set_cfa_register rbp, (2*8) // Set to compute CFA as: rbp + 16 (sizeof: [rbp] [ReturnAddress])
219219
220-
sub rsp, 40h
220+
sub rsp, 0x40
221221

222-
mov [rsp + 28h], r12
223-
.cfi_rel_offset r12, -18h
224-
mov [rsp + 30h], r13
225-
.cfi_rel_offset r13, -10h
222+
mov [rsp + 0x28], r12
223+
.cfi_rel_offset r12, -0x18
224+
mov [rsp + 0x30], r13
225+
.cfi_rel_offset r13, -0x10
226226

227227
mov r12, rdi // r12: entryObject
228228
mov r13, rsi // r13: callInfo
@@ -234,7 +234,7 @@ NESTED_ENTRY _ZN2Js23AsmJsExternalEntryPointEPNS_16RecyclableObjectENS_8CallInfo
234234
mov rcx, r13 // arg4: callInfo
235235
mov rsi, rsp // arg2: orig stack pointer is arg for the unboxing helper
236236
mov r13, rsi // r13: save orig stack pointer, so that we can add it back later
237-
add rsi, 68h // account for the changes we have already made to rsp
237+
add rsi, 0x68 // account for the changes we have already made to rsp
238238

239239
sub rsp, rax // allocate additional stack space for args
240240
// UnboxAsmJsArguments(func, origArgsLoc, argDst, callInfo)
@@ -247,7 +247,7 @@ NESTED_ENTRY _ZN2Js23AsmJsExternalEntryPointEPNS_16RecyclableObjectENS_8CallInfo
247247

248248
mov rdi, r12 // arg0: func
249249

250-
mov [rsp + 00h], rdi
250+
mov [rsp + 0x00], rdi
251251

252252
// call entry point
253253
call rax
@@ -260,17 +260,17 @@ NESTED_ENTRY _ZN2Js23AsmJsExternalEntryPointEPNS_16RecyclableObjectENS_8CallInfo
260260

261261

262262
// store SIMD xmm value and pointer to it as argument to box function
263-
sub rsp, 20h
264-
movups [rsp + 10h], xmm0
265-
lea r12, [rsp + 10h]
263+
sub rsp, 0x20
264+
movups [rsp + 0x10], xmm0
265+
lea r12, [rsp + 0x10]
266266
mov qword ptr [rsp], r12
267267
call C_FUNC(_ZN2Js19BoxAsmJsReturnValueEPNS_14ScriptFunctionEldfDv4_f)
268268

269269
mov rsp, r13 // restore stack pointer
270270
Epilogue:
271-
mov r12, [rsp + 28h]
271+
mov r12, [rsp + 0x28]
272272
.cfi_restore r12
273-
mov r13, [rsp + 30h]
273+
mov r13, [rsp + 0x30]
274274
.cfi_restore r13
275275

276276
lea rsp, [rbp]

lib/Runtime/Library/amd64/JavascriptFunctionA.S

+6-6
Original file line numberDiff line numberDiff line change
@@ -75,25 +75,25 @@ NESTED_ENTRY amd64_CallFunction, _TEXT, NoHandler
7575
and r10, -2 // Mask off the lower bit to 16 byte align the stack
7676
shl r10, 3 // Calculate space for remaining args (* sizeof(Var*))
7777

78-
cmp r10, 1000h // If the space is large, make sure the stack is committed
78+
cmp r10, 0x1000 // If the space is large, make sure the stack is committed
7979
jl LOCAL_LABEL(allocate_stack)
8080
// xplat-todo: Figure out if we need to implement __chkstk
8181
// call __chkstk
8282

8383
LOCAL_LABEL(allocate_stack):
8484
sub rsp, r10 // Allocate the stack space
8585
mov qword ptr [rsp], rdi // function
86-
mov qword ptr [rsp + 8h], rsi // callInfo
86+
mov qword ptr [rsp + 0x8], rsi // callInfo
8787
cmp rcx, 0
8888
je LOCAL_LABEL(args_setup_done)
8989

9090
// Copy all args (r8) to rsp[2]. rcx has argc.
9191
LOCAL_LABEL(copy_args_to_stack):
92-
lea rdi, [rsp + 10h] // &rsp[2]
92+
lea rdi, [rsp + 0x10] // &rsp[2]
9393
mov rsi, r8 // argv
9494
rep movsq
9595
mov rdi, qword ptr [rsp] // restore rdi
96-
mov rsi, qword ptr [rsp + 8h] // restore rsi
96+
mov rsi, qword ptr [rsp + 0x8] // restore rsi
9797

9898
LOCAL_LABEL(args_setup_done):
9999
xor rax, rax // Zero out rax in case r11 expects varags
@@ -193,13 +193,13 @@ NESTED_ENTRY _ZN2Js18JavascriptFunction20DeferredParsingThunkEPNS_16RecyclableOb
193193
// Call
194194
// JavascriptMethod JavascriptFunction::DeferredParse(ScriptFunction**)
195195
//
196-
lea rdi, [rbp + 10h] // &function, setup by custom calling convention
196+
lea rdi, [rbp + 0x10] // &function, setup by custom calling convention
197197
call C_FUNC(_ZN2Js18JavascriptFunction13DeferredParseEPPNS_14ScriptFunctionE)
198198

199199
pop_register rsi
200200
pop_register rdi
201201

202-
mov rdi, qword ptr [rbp + 10h] // re-load function, might have been changed by DeferredParse.
202+
mov rdi, qword ptr [rbp + 0x10] // re-load function, might have been changed by DeferredParse.
203203
// e.g. StackScriptFunction is Boxed
204204
// previous push/pop rdi is for stack alignment
205205

0 commit comments

Comments
 (0)