jack sexton jack sexton - 1 month ago 5
Swift Question

calling a function defined in assembly from swift

I know in swift it is possible to interop with c using the

attr on a function in a swift module. Is there a way to do this with a symbol defined in an assembly file? I would like to make syscalls using Swift. This is why I'm asking.


Create the bridge header.h file and put the prototype of the function in that file.

For example your assembly code:

.globl _add // make it global so that others can find this symbol
_add: // int add(int a, int b)
  movl %esi, %eax
  addl %edi, %eax

Then in bridging header.h file

int add(int a, int b);


define this at the top of the swift module

@_silgen_name("add") func add(a: Int32, b: Int32) -> Int32

Then in swift you can use it:

let a = add(1, 2);