mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-05 14:34:55 +00:00
[PowerPC] Implement writeNopData
This implements a proper PPCAsmBackend::writeNopData routine that actually writes PowerPC nop instructions. This fixes the last remaining difference in object file output (text section) between the integrated assembler and GNU as that I've seen anywhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185662 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
449f64c69c
commit
972befb3f2
@ -148,10 +148,14 @@ public:
|
||||
}
|
||||
|
||||
bool writeNopData(uint64_t Count, MCObjectWriter *OW) const {
|
||||
// FIXME: Zero fill for now. That's not right, but at least will get the
|
||||
// section size right.
|
||||
for (uint64_t i = 0; i != Count; ++i)
|
||||
OW->Write8(0);
|
||||
// Can't emit NOP with size not multiple of 32-bits
|
||||
if (Count % 4 != 0)
|
||||
return false;
|
||||
|
||||
uint64_t NumNops = Count / 4;
|
||||
for (uint64_t i = 0; i != NumNops; ++i)
|
||||
OW->Write32(0x60000000);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
9
test/MC/PowerPC/ppc-nop.s
Normal file
9
test/MC/PowerPC/ppc-nop.s
Normal file
@ -0,0 +1,9 @@
|
||||
# RUN: llvm-mc -filetype=obj -triple=powerpc-unknown-linux-gnu %s | llvm-readobj -s -sd - | FileCheck %s
|
||||
# RUN: llvm-mc -filetype=obj -triple=powerpc64-unknown-linux-gnu %s | llvm-readobj -s -sd - | FileCheck %s
|
||||
|
||||
blr
|
||||
.p2align 3
|
||||
blr
|
||||
|
||||
# CHECK: 0000: 4E800020 60000000 4E800020
|
||||
|
Loading…
x
Reference in New Issue
Block a user