Skip to content

Commit c7fa25f

Browse files
authored
[RISCV] Set the RVC bit in the ELF EFlags for C or Zca. (#80913)
1 parent cf0773f commit c7fa25f

File tree

2 files changed

+5
-3
lines changed

2 files changed

+5
-3
lines changed

llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFStreamer.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,14 +87,14 @@ void RISCVTargetELFStreamer::finishAttributeSection() {
8787
void RISCVTargetELFStreamer::finish() {
8888
RISCVTargetStreamer::finish();
8989
MCAssembler &MCA = getStreamer().getAssembler();
90-
const FeatureBitset &Features = STI.getFeatureBits();
9190
RISCVABI::ABI ABI = getTargetABI();
9291

9392
unsigned EFlags = MCA.getELFHeaderEFlags();
9493

95-
if (Features[RISCV::FeatureStdExtC])
94+
if (STI.hasFeature(RISCV::FeatureStdExtC) ||
95+
STI.hasFeature(RISCV::FeatureStdExtZca))
9696
EFlags |= ELF::EF_RISCV_RVC;
97-
if (Features[RISCV::FeatureStdExtZtso])
97+
if (STI.hasFeature(RISCV::FeatureStdExtZtso))
9898
EFlags |= ELF::EF_RISCV_TSO;
9999

100100
switch (ABI) {

llvm/test/MC/RISCV/elf-flags.s

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
# RUN: llvm-mc -triple=riscv64 -filetype=obj < %s | llvm-readobj --file-headers - | FileCheck -check-prefixes=CHECK-RVI %s
33
# RUN: llvm-mc -triple=riscv32 -mattr=+c -filetype=obj < %s | llvm-readobj --file-headers - | FileCheck -check-prefixes=CHECK-RVIC %s
44
# RUN: llvm-mc -triple=riscv64 -mattr=+c -filetype=obj < %s | llvm-readobj --file-headers - | FileCheck -check-prefixes=CHECK-RVIC %s
5+
# RUN: llvm-mc -triple=riscv32 -mattr=+zca -filetype=obj < %s | llvm-readobj --file-headers - | FileCheck -check-prefixes=CHECK-RVIC %s
6+
# RUN: llvm-mc -triple=riscv64 -mattr=+zca -filetype=obj < %s | llvm-readobj --file-headers - | FileCheck -check-prefixes=CHECK-RVIC %s
57
# RUN: llvm-mc -triple=riscv32 -mattr=+e -filetype=obj < %s \
68
# RUN: | llvm-readobj --file-headers - \
79
# RUN: | FileCheck -check-prefix=CHECK-RVE %s

0 commit comments

Comments
 (0)