# Instruction sequence for function calls

**URL:** <https://discourse.julialang.org/t/instruction-sequence-for-function-calls/108789>\
**Category:** Internals & Design\
**Tags:** question\
**Created:** [January 14, 2024, 11:17am UTC](https://discourse.julialang.org/t/instruction-sequence-for-function-calls/108789 "2024-01-14T11:17:56Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Dichloromethane](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dichloromethane/32/206202_2.png) [@Dichloromethane](https://discourse.julialang.org/u/Dichloromethane)\
**Post date:** [January 14, 2024, 11:17am UTC](https://discourse.julialang.org/t/instruction-sequence-for-function-calls/108789/1 "2024-01-14T11:17:56Z")

</div>

I was looking at some of the code generated by the compiler recently, and saw that, for some reason, the instruction sequence generated for function calls always consists of

```x86asm
movabs rax, offset j_func_n
call rax

```

instead of the shorter and more branch-predictor friendly

```x86asm
call j_func_n

```

and I was wondering if there was any reason for this? Or could this be classified as a missed optimisation?
