default:
llvm_unreachable("Relocation type not implemented yet!");
break;
- case ELF::R_AARCH64_ABS16: {
- uint64_t Result = Value + Addend;
- assert(static_cast<int64_t>(Result) >= INT16_MIN && Result < UINT16_MAX);
- write(isBE, TargetPtr, static_cast<uint16_t>(Result & 0xffffU));
- break;
- }
- case ELF::R_AARCH64_ABS32: {
- uint64_t Result = Value + Addend;
- assert(static_cast<int64_t>(Result) >= INT32_MIN && Result < UINT32_MAX);
- write(isBE, TargetPtr, static_cast<uint32_t>(Result & 0xffffffffU));
- break;
- }
case ELF::R_AARCH64_ABS64:
write(isBE, TargetPtr, Value + Addend);
break;
## f & 0xFFF = 0xdef (bits 11:0 of f)
## 0xdef << 10 = 0x37bc00
# rtdyld-check: *{4}(a) = 0x9137bc00
-
- .data
-laser:
- .asciz "laser"
-ABS16:
- .short laser
-# rtdyld-check: (*{2}ABS16) = laser[15:0]
-ABS32:
- .long laser
-# rtdyld-check: (*{4}ABS32) = laser[31:0]
-ABS64:
- .xword laser
-# rtdyld-check: (*{8}ABS64) = laser