Inliner::inline_ffi: Add missing break statements to switch
Inliner::inline_ffi: Add missing break statements to switch

When passing doubles to FFI functions, the VM was generating spurious
calls to rbx_ffi_to_int64 follwing the expected calls to
rbx_ffi_to_double.  These calls to rbx_ffi_to_int64 failed, triggering
calls to rbx_continue_uncommon and thus eventual deoptimization.

To reproduce the original problem, run:

  bin/rbx -Xjit.uncommon.print -Xjit.dump_code=7 \
    benchmark/yarv/bm_app_mandelbrot.rb

You will see many blocks of the form:

  [[[ Deoptimizing uncommon method ]]]
  0xbfb9c87c: Math.hypot in kernel/common/math.rb:155 (+21 inline)
  0xbfb9c8d4: Complex#abs in lib/complex.rb:282 (+0 inline)
  0xbfb9c9b8: Object#mandelbrot? in /home/emk/local/rubinius/benchmark/yarv/bm_app_mandelbrot.rb:4 (+0 jit)

Once this patch is applied, no deoptimizations should occur.

Signed-off-by: Dirkjan Bussink <d69eedf9386eafb922b5983901ebb19141493da3@gmail.com>

ruipserra/rubinius,dblock/rubinius,Wirachmat/rubinius,kachick/rubinius,dblock/rubinius,dblock/rubinius,jemc/rubinius,jemc/rubinius,digitalextremist/rubinius,digitalextremist/rubinius,kachick/rubinius,kachick/rubinius,heftig/rubinius,benlovell/rubinius,Wirachmat/rubinius,sferik/rubinius,Azizou/rubinius,dblock/rubinius,travis-repos/rubinius,Wirachmat/rubinius,ruipserra/rubinius,lgierth/rubinius,sferik/rubinius,jsyeo/rubinius,travis-repos/rubinius,kachick/rubinius,mlarraz/rubinius,mlarraz/rubinius,jemc/rubinius,slawosz/rubinius,Wirachmat/rubinius,kachick/rubinius,ngpestelos/rubinius,ngpestelos/rubinius,pH14/rubinius,lgierth/rubinius,digitalextremist/rubinius,ngpestelos/rubinius,Wirachmat/rubinius,heftig/rubinius,lgierth/rubinius,slawosz/rubinius,pH14/rubinius,Azizou/rubinius,dblock/rubinius,pH14/rubinius,slawosz/rubinius,ruipserra/rubinius,slawosz/rubinius,sferik/rubinius,ruipserra/rubinius,dblock/rubinius,jsyeo/rubinius,lgierth/rubinius,pH14/rubinius,ngpestelos/rubinius,ngpestelos/rubinius,travis-repos/rubinius,Azizou/rubinius,ngpestelos/rubinius,kachick/rubinius,jsyeo/rubinius,digitalextremist/rubinius,travis-repos/rubinius,mlarraz/rubinius,pH14/rubinius,benlovell/rubinius,travis-repos/rubinius,heftig/rubinius,slawosz/rubinius,digitalextremist/rubinius,jsyeo/rubinius,Azizou/rubinius,jemc/rubinius,sferik/rubinius,jemc/rubinius,mlarraz/rubinius,digitalextremist/rubinius,slawosz/rubinius,jsyeo/rubinius,kachick/rubinius,benlovell/rubinius,ruipserra/rubinius,kachick/rubinius,Wirachmat/rubinius,Azizou/rubinius,benlovell/rubinius,dblock/rubinius,ruipserra/rubinius,jemc/rubinius,lgierth/rubinius,pH14/rubinius,lgierth/rubinius,ruipserra/rubinius,mlarraz/rubinius,sferik/rubinius,slawosz/rubinius,heftig/rubinius,benlovell/rubinius,jsyeo/rubinius,travis-repos/rubinius,ngpestelos/rubinius,mlarraz/rubinius,digitalextremist/rubinius,benlovell/rubinius,Wirachmat/rubinius,sferik/rubinius,travis-repos/rubinius,heftig/rubinius,pH14/rubinius,heftig/rubinius,Azizou/rubinius,lgierth/rubinius,Azizou/rubinius,heftig/rubinius,mlarraz/rubinius,sferik/rubinius,benlovell/rubinius,jemc/rubinius,jsyeo/rubinius