diff --git a/src/arch/aarch64/BUILD.gn b/src/arch/aarch64/BUILD.gn
index 58072b8..9f29b72 100644
--- a/src/arch/aarch64/BUILD.gn
+++ b/src/arch/aarch64/BUILD.gn
@@ -43,6 +43,7 @@
 # Make a call to the secure monitor.
 source_set("smc") {
   sources = [
-    "smc.S",
+    "smc.c",
+    "smc_internal.S",
   ]
 }
diff --git a/src/arch/aarch64/hftest/power_mgmt.c b/src/arch/aarch64/hftest/power_mgmt.c
index 7d0893d..7abe4d9 100644
--- a/src/arch/aarch64/hftest/power_mgmt.c
+++ b/src/arch/aarch64/hftest/power_mgmt.c
@@ -72,7 +72,7 @@
 	s.arg = arg;
 
 	/* Try to start the CPU. */
-	if (smc(PSCI_CPU_ON, id, (size_t)&vm_cpu_entry_raw, (size_t)&s) !=
+	if (smc32(PSCI_CPU_ON, id, (size_t)&vm_cpu_entry_raw, (size_t)&s) !=
 	    PSCI_RETURN_SUCCESS) {
 		return false;
 	}
@@ -91,7 +91,7 @@
  */
 noreturn void cpu_stop(void)
 {
-	smc(PSCI_CPU_OFF, 0, 0, 0);
+	smc32(PSCI_CPU_OFF, 0, 0, 0);
 	for (;;) {
 		/* This should never be reached. */
 	}
@@ -116,7 +116,7 @@
 	 * as the PSCI_RETURN_* values. The static_asserts above validate that
 	 * this is the case.
 	 */
-	return smc(PSCI_AFFINITY_INFO, cpu_id, lowest_affinity_level, 0);
+	return smc32(PSCI_AFFINITY_INFO, cpu_id, lowest_affinity_level, 0);
 }
 
 /**
@@ -124,7 +124,7 @@
  */
 noreturn void arch_power_off(void)
 {
-	smc(PSCI_SYSTEM_OFF, 0, 0, 0);
+	smc32(PSCI_SYSTEM_OFF, 0, 0, 0);
 	for (;;) {
 		/* This should never be reached. */
 	}
diff --git a/src/arch/aarch64/hypervisor/psci_handler.c b/src/arch/aarch64/hypervisor/psci_handler.c
index 5c87589..b98dd22 100644
--- a/src/arch/aarch64/hypervisor/psci_handler.c
+++ b/src/arch/aarch64/hypervisor/psci_handler.c
@@ -37,7 +37,7 @@
 /* Performs arch specific boot time initialisation. */
 void arch_one_time_init(void)
 {
-	el3_psci_version = smc(PSCI_VERSION, 0, 0, 0);
+	el3_psci_version = smc32(PSCI_VERSION, 0, 0, 0);
 
 	/* Check there's nothing unexpected about PSCI. */
 	switch (el3_psci_version) {
@@ -100,7 +100,7 @@
 				*ret = 0;
 			} else {
 				/* PSCI 1.x only defines two feature bits. */
-				*ret = smc(func, arg0, 0, 0) & 0x3;
+				*ret = smc32(func, arg0, 0, 0) & 0x3;
 			}
 			break;
 
@@ -123,12 +123,12 @@
 		break;
 
 	case PSCI_SYSTEM_OFF:
-		smc(PSCI_SYSTEM_OFF, 0, 0, 0);
+		smc32(PSCI_SYSTEM_OFF, 0, 0, 0);
 		panic("System off failed");
 		break;
 
 	case PSCI_SYSTEM_RESET:
-		smc(PSCI_SYSTEM_RESET, 0, 0, 0);
+		smc32(PSCI_SYSTEM_RESET, 0, 0, 0);
 		panic("System reset failed");
 		break;
 
@@ -161,14 +161,14 @@
 		 * vcpu registers will be ignored.
 		 */
 		arch_regs_set_pc_arg(&vcpu->regs, ipa_init(arg1), arg2);
-		*ret = smc(PSCI_CPU_SUSPEND | SMCCC_64_BIT, arg0,
-			   (uintreg_t)&cpu_entry, (uintreg_t)vcpu->cpu);
+		*ret = smc64(PSCI_CPU_SUSPEND, arg0, (uintreg_t)&cpu_entry,
+			     (uintreg_t)vcpu->cpu);
 		break;
 	}
 
 	case PSCI_CPU_OFF:
 		cpu_off(vcpu->cpu);
-		smc(PSCI_CPU_OFF, 0, 0, 0);
+		smc32(PSCI_CPU_OFF, 0, 0, 0);
 		panic("CPU off failed");
 		break;
 
@@ -191,8 +191,8 @@
 		 * itself off).
 		 */
 		do {
-			*ret = smc(PSCI_CPU_ON | SMCCC_64_BIT, arg0,
-				   (uintreg_t)&cpu_entry, (uintreg_t)c);
+			*ret = smc64(PSCI_CPU_ON, arg0, (uintreg_t)&cpu_entry,
+				     (uintreg_t)c);
 		} while (*ret == PSCI_ERROR_ALREADY_ON);
 
 		if (*ret != PSCI_RETURN_SUCCESS) {
diff --git a/src/arch/aarch64/psci.h b/src/arch/aarch64/psci.h
index eef3fc0..355c618 100644
--- a/src/arch/aarch64/psci.h
+++ b/src/arch/aarch64/psci.h
@@ -16,31 +16,10 @@
 
 #pragma once
 
+#include "smc.h"
+
 /* clang-format off */
 
-#define SMCCC_CALL_TYPE_MASK  0x80000000
-#define SMCCC_YIELDING_CALL   0x00000000
-#define SMCCC_FAST_CALL       0x80000000
-
-#define SMCCC_CONVENTION_MASK 0x40000000
-#define SMCCC_32_BIT          0x00000000
-#define SMCCC_64_BIT          0x40000000
-
-#define SMCCC_SERVICE_CALL_MASK                0x3f000000
-#define SMCCC_ARM_ARCHITECTURE_CALL            0x00000000
-#define SMCCC_CPU_SERVICE_CALL                 0x01000000
-#define SMCCC_SIP_SERVICE_CALL                 0x02000000
-#define SMCCC_OEM_SERVICE_CALL                 0x03000000
-#define SMCCC_STANDARD_SECURE_SERVICE_CALL     0x04000000
-#define SMCCC_STANDARD_HYPERVISOR_SERVICE_CALL 0x05000000
-#define SMCCC_VENDOR_HYPERVISOR_SERVICE_CALL   0x06000000
-/*
- * TODO: Trusted application call: 0x30000000 - 0x31000000
- * TODO: Trusted OS call: 0x32000000 - 0x3f000000
- */
-
-#define SMCCC_ERROR_UNKNOWN  (-1)
-
 /* The following are PSCI version codes. */
 #define PSCI_VERSION_0_2 0x00000002
 #define PSCI_VERSION_1_0 0x00010000
diff --git a/src/arch/aarch64/smc.S b/src/arch/aarch64/smc.c
similarity index 64%
copy from src/arch/aarch64/smc.S
copy to src/arch/aarch64/smc.c
index f49955d..4a9d980 100644
--- a/src/arch/aarch64/smc.S
+++ b/src/arch/aarch64/smc.c
@@ -1,5 +1,5 @@
 /*
- * Copyright 2018 The Hafnium Authors.
+ * 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.
@@ -14,8 +14,14 @@
  * limitations under the License.
  */
 
-.section .text.smc, "ax"
-.global smc
-smc:
-	smc #0
-	ret
+#include "smc.h"
+
+#include <stdint.h>
+
+uint64_t smc64_internal(uint64_t func, uint64_t arg0, uint64_t arg1,
+			uint64_t arg2);
+
+uint64_t smc64(uint32_t func, uint64_t arg0, uint64_t arg1, uint64_t arg2)
+{
+	return smc64_internal(func | SMCCC_64_BIT, arg0, arg1, arg2);
+}
diff --git a/src/arch/aarch64/smc.h b/src/arch/aarch64/smc.h
index 5a6acd9..1cc5ba3 100644
--- a/src/arch/aarch64/smc.h
+++ b/src/arch/aarch64/smc.h
@@ -16,6 +16,34 @@
 
 #pragma once
 
-#include "hf/arch/cpu.h"
+#include <stdint.h>
 
-int32_t smc(uintreg_t arg0, uintreg_t arg1, uintreg_t arg2, uintreg_t arg3);
+/* clang-format off */
+
+#define SMCCC_CALL_TYPE_MASK  0x80000000
+#define SMCCC_YIELDING_CALL   0x00000000
+#define SMCCC_FAST_CALL       0x80000000
+
+#define SMCCC_CONVENTION_MASK 0x40000000
+#define SMCCC_32_BIT          0x00000000
+#define SMCCC_64_BIT          0x40000000
+
+#define SMCCC_SERVICE_CALL_MASK                0x3f000000
+#define SMCCC_ARM_ARCHITECTURE_CALL            0x00000000
+#define SMCCC_CPU_SERVICE_CALL                 0x01000000
+#define SMCCC_SIP_SERVICE_CALL                 0x02000000
+#define SMCCC_OEM_SERVICE_CALL                 0x03000000
+#define SMCCC_STANDARD_SECURE_SERVICE_CALL     0x04000000
+#define SMCCC_STANDARD_HYPERVISOR_SERVICE_CALL 0x05000000
+#define SMCCC_VENDOR_HYPERVISOR_SERVICE_CALL   0x06000000
+/*
+ * TODO: Trusted application call: 0x30000000 - 0x31000000
+ * TODO: Trusted OS call: 0x32000000 - 0x3f000000
+ */
+
+#define SMCCC_ERROR_UNKNOWN  (-1)
+
+/* clang-format on */
+
+uint32_t smc32(uint32_t func, uint32_t arg0, uint32_t arg1, uint32_t arg2);
+uint64_t smc64(uint32_t func, uint64_t arg0, uint64_t arg1, uint64_t arg2);
diff --git a/src/arch/aarch64/smc.S b/src/arch/aarch64/smc_internal.S
similarity index 91%
rename from src/arch/aarch64/smc.S
rename to src/arch/aarch64/smc_internal.S
index f49955d..9350fd1 100644
--- a/src/arch/aarch64/smc.S
+++ b/src/arch/aarch64/smc_internal.S
@@ -15,7 +15,9 @@
  */
 
 .section .text.smc, "ax"
-.global smc
-smc:
+.global smc32
+.global smc64_internal
+smc32:
+smc64_internal:
 	smc #0
 	ret
