Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(26)

Side by Side Diff: src/IceTargetLoweringX8632.cpp

Issue 469973002: Emit .local before .comm to make llvm-mc happy. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | tests_lit/llvm2ice_tests/convert.ll » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 //===- subzero/src/IceTargetLoweringX8632.cpp - x86-32 lowering -----------===// 1 //===- subzero/src/IceTargetLoweringX8632.cpp - x86-32 lowering -----------===//
2 // 2 //
3 // The Subzero Code Generator 3 // The Subzero Code Generator
4 // 4 //
5 // This file is distributed under the University of Illinois Open Source 5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details. 6 // License. See LICENSE.TXT for details.
7 // 7 //
8 //===----------------------------------------------------------------------===// 8 //===----------------------------------------------------------------------===//
9 // 9 //
10 // This file implements the TargetLoweringX8632 class, which 10 // This file implements the TargetLoweringX8632 class, which
(...skipping 4189 matching lines...) Expand 10 before | Expand all | Expand 10 after
4200 // .size NAME, SIZE 4200 // .size NAME, SIZE
4201 4201
4202 // zeroinitializer (constant): 4202 // zeroinitializer (constant):
4203 // (.section or .data as above) 4203 // (.section or .data as above)
4204 // .align ALIGN 4204 // .align ALIGN
4205 // .zero SIZE 4205 // .zero SIZE
4206 // .size NAME, SIZE 4206 // .size NAME, SIZE
4207 4207
4208 // zeroinitializer (non-constant): 4208 // zeroinitializer (non-constant):
4209 // (.section or .data as above) 4209 // (.section or .data as above)
4210 // .local NAME
4210 // .comm NAME, SIZE, ALIGN 4211 // .comm NAME, SIZE, ALIGN
4211 // .local NAME
4212 4212
4213 IceString MangledName = Ctx->mangleName(Name); 4213 IceString MangledName = Ctx->mangleName(Name);
4214 // Start a new section. 4214 // Start a new section.
4215 if (IsConst) { 4215 if (IsConst) {
4216 Str << "\t.section\t.rodata,\"a\",@progbits\n"; 4216 Str << "\t.section\t.rodata,\"a\",@progbits\n";
4217 } else { 4217 } else {
4218 Str << "\t.type\t" << MangledName << ",@object\n"; 4218 Str << "\t.type\t" << MangledName << ",@object\n";
4219 Str << "\t.data\n"; 4219 Str << "\t.data\n";
4220 } 4220 }
4221 Str << "\t" << (IsInternal ? ".local" : ".global") << "\t" << MangledName
4222 << "\n";
4221 if (IsZeroInitializer) { 4223 if (IsZeroInitializer) {
4222 if (IsConst) { 4224 if (IsConst) {
4223 Str << "\t.align\t" << Align << "\n"; 4225 Str << "\t.align\t" << Align << "\n";
4224 Str << MangledName << ":\n"; 4226 Str << MangledName << ":\n";
4225 Str << "\t.zero\t" << Size << "\n"; 4227 Str << "\t.zero\t" << Size << "\n";
4226 Str << "\t.size\t" << MangledName << ", " << Size << "\n"; 4228 Str << "\t.size\t" << MangledName << ", " << Size << "\n";
4227 } else { 4229 } else {
4228 // TODO(stichnot): Put the appropriate non-constant 4230 // TODO(stichnot): Put the appropriate non-constant
4229 // zeroinitializers in a .bss section to reduce object size. 4231 // zeroinitializers in a .bss section to reduce object size.
4230 Str << "\t.comm\t" << MangledName << ", " << Size << ", " << Align 4232 Str << "\t.comm\t" << MangledName << ", " << Size << ", " << Align
4231 << "\n"; 4233 << "\n";
4232 } 4234 }
4233 } else { 4235 } else {
4234 Str << "\t.align\t" << Align << "\n"; 4236 Str << "\t.align\t" << Align << "\n";
4235 Str << MangledName << ":\n"; 4237 Str << MangledName << ":\n";
4236 for (SizeT i = 0; i < Size; ++i) { 4238 for (SizeT i = 0; i < Size; ++i) {
4237 Str << "\t.byte\t" << (((unsigned)Data[i]) & 0xff) << "\n"; 4239 Str << "\t.byte\t" << (((unsigned)Data[i]) & 0xff) << "\n";
4238 } 4240 }
4239 Str << "\t.size\t" << MangledName << ", " << Size << "\n"; 4241 Str << "\t.size\t" << MangledName << ", " << Size << "\n";
4240 } 4242 }
4241 Str << "\t" << (IsInternal ? ".local" : ".global") << "\t" << MangledName
4242 << "\n";
4243 } 4243 }
4244 4244
4245 } // end of namespace Ice 4245 } // end of namespace Ice
OLDNEW
« no previous file with comments | « no previous file | tests_lit/llvm2ice_tests/convert.ll » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698