diff --git a/Makefile b/Makefile
index 6807442..579eba9 100644
--- a/Makefile
+++ b/Makefile
@@ -37,6 +37,6 @@
 	make -C $(KERNEL_PATH) M=$(PWD) O=$(O) clean
 
 checkpatch:
-	$(CHECKPATCH) -f main.c hf_call.S
+	$(CHECKPATCH) -f main.c hf_call.c
 
 endif
diff --git a/hf_call.S b/hf_call.S
deleted file mode 100644
index 6b7165c..0000000
--- a/hf_call.S
+++ /dev/null
@@ -1,20 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-/*
- * Copyright 2018 The Hafnium Authors.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * version 2 as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- */
-
-.text
-
-.global hf_call
-hf_call:
-	hvc #0
-	ret
diff --git a/hf_call.c b/hf_call.c
new file mode 100644
index 0000000..20e991d
--- /dev/null
+++ b/hf_call.c
@@ -0,0 +1,43 @@
+// SPDX-License-Identifier: Apache-2.0
+/*
+ * Copyright 2019 The Hafnium Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "hf/call.h"
+#include "hf/types.h"
+
+int64_t hf_call(uint64_t arg0, uint64_t arg1, uint64_t arg2, uint64_t arg3)
+{
+	register uint64_t r0 __asm__("x0") = arg0;
+	register uint64_t r1 __asm__("x1") = arg1;
+	register uint64_t r2 __asm__("x2") = arg2;
+	register uint64_t r3 __asm__("x3") = arg3;
+
+	/*
+	 * We currently implement SMCCC 1.0, which specifies that the callee can
+	 * use x4–x17 as scratch registers. If we move to SMCCC 1.1 then this
+	 * will change.
+	 */
+	__asm__ volatile(
+		"hvc #0"
+		: /* Output registers, also used as inputs ('+' constraint). */
+		"+r"(r0), "+r"(r1), "+r"(r2), "+r"(r3)
+		:
+		: /* Clobber registers. */
+		"x4", "x5", "x6", "x7", "x8", "x9", "x10", "x11", "x12", "x13",
+		"x14", "x15", "x16", "x17");
+
+	return r0;
+}
