You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
79 lines
2.1 KiB
79 lines
2.1 KiB
#name: kvx-farcall-back
|
|
#source: farcall-back.s
|
|
#as:
|
|
#ld: -Ttext 0x1000 --section-start .foo=0x80001000
|
|
#objdump: -dr
|
|
|
|
#...
|
|
|
|
Disassembly of section .text:
|
|
|
|
.* <_start>:
|
|
.*: .. .. .. .. call .* <__bar1_veneer>;;
|
|
|
|
.*: .. .. .. .. goto .* <__bar1_veneer>;;
|
|
|
|
.*: .. .. .. .. call .* <__bar2_veneer>;;
|
|
|
|
.*: .. .. .. .. goto .* <__bar2_veneer>;;
|
|
|
|
.*: .. .. .. .. call .* <__bar3_veneer>;;
|
|
|
|
.*: .. .. .. .. goto .* <__bar3_veneer>;;
|
|
|
|
.*: 00 00 d0 0f ret;;
|
|
|
|
...
|
|
|
|
.* <_back>:
|
|
.*: 00 00 d0 0f ret;;
|
|
|
|
.* <__bar3_veneer>:
|
|
.*: 00 .. 40 e0 0c 00 20 00 make \$r16 = .* \(0x.*\);;
|
|
|
|
.*: 10 00 d8 0f igoto \$r16;;
|
|
|
|
.* <__bar2_veneer>:
|
|
.*: 00 .. 40 e0 08 00 20 00 make \$r16 = .* \(0x.*\);;
|
|
|
|
.*: 10 00 d8 0f igoto \$r16;;
|
|
|
|
.* <__bar1_veneer>:
|
|
.*: 00 .. 40 e0 04 00 20 00 make \$r16 = .* \(0x.*\);;
|
|
|
|
.*: 10 00 d8 0f igoto \$r16;;
|
|
|
|
|
|
Disassembly of section .foo:
|
|
|
|
.* <bar1>:
|
|
.*: 00 00 d0 0f ret;;
|
|
|
|
.*: .. .. .. .. goto .* <___start_veneer>;;
|
|
|
|
...
|
|
|
|
.* <bar2>:
|
|
.*: 00 00 d0 0f ret;;
|
|
|
|
.*: .. .. .. .. goto .* <___start_veneer>;;
|
|
|
|
...
|
|
|
|
.* <bar3>:
|
|
.*: 00 00 d0 0f ret;;
|
|
|
|
.*: .. .. .. .. goto .* <___back_veneer>;;
|
|
|
|
|
|
.* <___start_veneer>:
|
|
.*: 00 .. 40 e0 04 00 00 00 make \$r16 = .* \(0x.*\);;
|
|
|
|
.*: 10 00 d8 0f igoto \$r16;;
|
|
|
|
.* <___back_veneer>:
|
|
.*: 00 .. 40 e0 08 00 00 00 make \$r16 = .* \(0x.*\);;
|
|
|
|
.*: 10 00 d8 0f igoto \$r16;;
|
|
|
|
|
|
|