Lines Matching refs:pcrel

103         bool pcrel; /* applies to first const */
792 bool pcrel = instr->branch_target && src.value == 0;
800 /* pcrel constants are unique, so don't match */
801 if (found && !pcrel)
810 if (pcrel)
1303 bi_rewrite_constants_to_pass(bi_tuple *tuple, uint64_t constant, bool pcrel)
1318 assert(pcrel);
1321 } else if (pcrel) {
1334 * postcondition that pcrel applies to the first constant by convention,
1345 .pcrel = tuple->add && tuple->add->branch_target,
1348 /* pcrel applies to the first constant by convention, and
1351 if (consts.pcrel && consts.constants[0]) {
1363 * more than one tuple has pcrel:
1366 * pcrel, it must be the high constant to use the M1=4 modification [sx64(E0) +
1379 bi_merge_u32(uint32_t c0, uint32_t c1, bool pcrel)
1381 /* At this point in the constant merge algorithm, pcrel constants are
1382 * treated as zero, so pcrel implies at least one constants is zero */
1383 assert(!pcrel || (c0 == 0 || c1 == 0));
1385 /* Order: pcrel, maximum non-pcrel, minimum non-pcrel */
1386 uint32_t hi = pcrel ? 0 : MAX2(c0, c1);
1404 consts[t].constants[1], consts[t].pcrel);
1406 /* Skip the pcrel pair if assigned, because if one is assigned,
1407 * this one is not pcrel by uniqueness so it's a mismatch */
1419 if (consts[t].pcrel)
1442 /* Try to match, but don't match pcrel with non-pcrel, even
1443 * though we can merge a pcrel with a non-pcrel single */
1449 if (match && !consts[t].pcrel) {
1459 assert(!(pending_pcrel && consts[t].pcrel));
1460 bool pcrel = pending_pcrel || consts[t].pcrel;
1462 if (pcrel)
1465 pairs[pair_count++] = bi_merge_u32(pending_single, val, pcrel);
1470 pending_pcrel = consts[t].pcrel;
1746 if (st->constant_count == 0 || st->constants[0] || st->constants[1] || st->pcrel)