Slide 20
Slide 20 text
20
ジェネリクスで出力されたバイトコード
0000000000404a80 <*generic_add:Int32>:
404a80: 01 f7 add %esi,%edi
404a82: 89 f8 mov %edi,%eax
404a84: c3 retq
404a85: 66 66 2e 0f 1f 84 00 data32 nopw %cs:0x0(%rax,%rax,1)
404a8c: 00 00 00 00
0000000000404ad0 <*generic_add:String>:
404ad0: 50 push %rax
404ad1: e8 ba 29 00 00 callq 407490 <*String#+:String>
404ad6: 5a pop %rdx
404ad7: c3 retq
404ad8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
404adf: 00
0000000000404ae0 <*generic_add:Array(Int32)>:
404ae0: 50 push %rax
404ae1: e8 4a 0c 00 00 callq 405730 <*Array(Int32)@Array(T)#+:Array(Int32)>
404ae6: 5a pop %rdx
404ae7: c3 retq
404ae8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
404aef: 00
整数演算の add 命令に
メソッド呼び出しに変換