Displaying 5 results from an estimated 5 matches for "textsect".
2016 May 21
1
Using an MCStreamer Directly to produce an object file?
...w to make this
work would _really_ make my week.
This has been hard to debug, as I don't get any errors, just an empty
output .o file...
I was thinking it may be because of section issues, so I did add some
initial sections, hoping that might help:
Str->InitSections(false);
MCSection *textsect = Ctx.getELFSection(".text", ELF::SHT_PROGBITS,
ELF::SHF_EXECINSTR | ELF::SHF_ALLOC);
Str->SwitchSection(textsect);
This did not seem to help at all. I'm running out of ideas. Anyone
know how to use an MCStreamer object directly to make and object file?
Thanks so much for y...
2016 May 23
0
Using an MCStreamer Directly to produce an object file?
2013 Jun 25
0
[LLVMdev] Contants generation - proposal
Hi Elena,
> (2) Proposal
> Define one more Code Model, let's say "LargeNearConst", which will allow to put constants in .text.
Isn't that a little heavy-handed? The large model only requires the
less efficient access for symbols we can't control, and in fact x86
still uses pc-relative conditional branches within a function so it
can't pretend to support a single
2013 Jun 26
2
[LLVMdev] Contants generation - proposal
...eModel::LargeJIT for x64 and CodeModel::Small for 32-bit.
And the TargetLoweringObjectFile already has CodeModel inside. So the code will look like :
const MCSection *
TargetLoweringObjectFile::getSectionForConstant(SectionKind Kind) const {
if (getCodeModel() == CodeModel::LargeJIT)
return TextSection;
if (Kind.isReadOnly() && ReadOnlySection != 0)
return ReadOnlySection;
return DataSection;
}
- Elena
-----Original Message-----
From: Tim Northover [mailto:t.p.northover at gmail.com]
Sent: Tuesday, June 25, 2013 23:31
To: Demikhovsky, Elena
Cc: llvmdev at cs.uiuc.edu
Subj...
2013 Jun 25
2
[LLVMdev] Contants generation - proposal
Hi all,
I analyzed more and ready (1) to describe the problem and (2) I have a proposal.
(1) Problem description:
In X86_64 target the Code Model is "Large". It means that address is 64-bit and IP-relative memory operand can't be used in this case.
(Because in IP-relative memory operand the displacement is 32-bit).
In order to load constant, we use 2 instructions.
movabsq