Lines Matching refs:address
191 $address = 0; # Address of current instruction
206 local ($address, $offset, $length, $value) = @_;
208 print STDERR "Patching $address at offset $offset, length $length to $value\n";
209 printf STDERR "Old code : %08x\n", $code[$address];
214 $code[$address] = ($code[$address] & ~$mask) |
215 (($code[$address] & $mask) + ($value << ($offset * 8)) &
218 printf STDERR "New code : %08x\n", $code[$address] if ($debug);
250 $tmp = ($address + $word) * 4 + $offset;
264 &patch ($address + $word, $offset, $length, $value);
277 $code[$address] |= 0x00_01_00_00;
296 $code[$address] |= 0x00_08_00_00;
306 $code[$address] |= 0x00_02_00_00;
312 $code[$address] |= $p | 0x00_02_00_00;
341 $code[$address] |= 0x00_04_00_00;
381 $list[$address] = $list[$address].$_;
390 $symbol_values{$1} = $address * 4; # Address is an index into
462 $code[$address] = 0x18_00_00_00 | (($with_when =~ /WITH/i) ?
465 $address += 2;
472 $code[$address] = (($with_when =~ /WITH/i) ? 0x00_00_00_00 :
477 $address += 2;
480 $code[$address] = 0xc0_00_00_00;
490 $code[$address], $code[$address+1], $code[$address +2] if
492 $address += 3;
506 $code[$address] = 0x40_00_00_00;
565 $code[$address] |= 0x01_00_00_00;
586 $code[$address] |= 0x38_00_00_00 |
589 $code[$address] |= 0x30_00_00_00 |
592 $code[$address] |= 0x28_00_00_00 |
602 $code[$address] |= $operators{$op};
605 $code[$address] |= $operators{$op};
606 $code[$address + 1] = 0x00_00_00_00;# Reserved
607 $address += 2;
624 $code[$address] = 0x40_00_00_00 |
626 $code[$address + 1] = 0x00_00_00_00;
629 $address += 2;
634 $code[$address] = 0x42_00_00_00 |
636 $code[$address + 1] = 0x00_00_00_00;
639 $address += 2;
653 $code[$address] = 0x48_00_00_00;
654 $code[$address + 1] = 0x00_00_00_00;
655 $address += 2;
658 $code[$address] = 0x50_00_00_00;
660 $address += 2;
674 $code[$address] = ($set =~ /SET/i) ? 0x58_00_00_00 :
678 $code[$address] |= 0x00_00_00_08;
680 $code[$address] |= 0x00_00_00_40;
682 $code[$address] |= 0x00_00_02_00;
684 $code[$address] |= 0x00_00_04_00;
693 $code[$address + 1] = 0x00_00_00_00;
694 $address += 2;
699 $code[$address] = 0x80_00_00_00;
701 $code[$address] = 0x88_00_00_00;
703 $code[$address] = 0x98_00_00_00;
712 $code[$address] |= 0x00_80_00_00;
729 $code[$address] |= (1 << 19);
737 $address += 2;
742 $code[$address] = ($instruction =~ /RETURN/i) ? 0x90_00_00_00 :
753 $code[$address] |= 0x00_08_00_00;
756 $code[$address + 1] = 0x00_00_00_00;
757 $address += 2;
759 $code[$address] = 0x48_00_00_00;
760 $code[$address + 1] = 0x00_00_00_00;
761 $address += 2;
765 $code[$address] = 0x80_88_00_00;
766 $code[$address + 1] = 0x00_00_00_00;
767 $address += 2;
800 $address = $2;
803 "$0 : $symbol $i has invalid relative reference at address $address,
807 &patch ($address / 4, $address % 4, $length, $symbol_values{$i});
817 $address = $2;
821 "$0 : symbol $label is external, has invalid relative reference at $address,
826 "$0 : symbol $label has invalid reference at $address, size $length\n"
827 if ((($address % 4) !=0) || ($length != 4));
830 $add = $code[$address / 4];
832 $code[$address / 4] = $symbol;
835 $code[$address / 4] = "$symbol + $add";
848 $address = $2;
851 if ((($address % 4) !=0) || ($length != 4)) {
856 $code[$address / 4] += $symbol_values{$label};
857 push (@label_patches, $address / 4);
868 ($address + 4);
871 "$0 : symbol $label is too far ($tmp) from $address to reference as
873 $code[$address / 4] = $tmp & 0x00_ff_ff_ff;
931 $address = $2;
933 printf OUTPUT "\t0x%08x,\n", $address / 4;
955 printf OUTPUT "static struct {\n\tu32\toffset;\n\tvoid\t\t*address;\n".