case Triple::arm:
case Triple::armeb:
return visitARM(Rel, R, Value);
+ case Triple::avr:
+ return visitAVR(Rel, R, Value);
case Triple::lanai:
return visitLanai(Rel, R, Value);
case Triple::mipsel:
return 0;
}
+ uint64_t visitAVR(uint32_t Rel, RelocationRef R, uint64_t Value) {
+ if (Rel == ELF::R_AVR_16) {
+ return (Value + getELFAddend(R)) & 0xFFFF;
+ } else if (Rel == ELF::R_AVR_32) {
+ return (Value + getELFAddend(R)) & 0xFFFFFFFF;
+ }
+ HasError = true;
+ return 0;
+ }
+
uint64_t visitLanai(uint32_t Rel, RelocationRef R, uint64_t Value) {
if (Rel == ELF::R_LANAI_32)
return (Value + getELFAddend(R)) & 0xFFFFFFFF;
PrivateGlobalPrefix = ".L";
UsesELFSectionDirectiveForBSS = true;
UseIntegratedAssembler = true;
+ SupportsDebugInformation = true;
}
} // end of namespace llvm