aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2017-08-24 16:00:34 +0200
committerBjörn Gustavsson <[email protected]>2017-08-31 15:45:31 +0200
commit2d21799e64f79a5bb8d81727a521093472e89fb1 (patch)
tree0f9ccefb971f9782ee5fab9772aa3c4566102daa /erts/emulator
parent0ce65931f6f4c5dc1c55e390379c81de05822f91 (diff)
downloadotp-2d21799e64f79a5bb8d81727a521093472e89fb1.tar.gz
otp-2d21799e64f79a5bb8d81727a521093472e89fb1.tar.bz2
otp-2d21799e64f79a5bb8d81727a521093472e89fb1.zip
Assign machine registers for X86-64
Keep frequently used variables in machine registers.
Diffstat (limited to 'erts/emulator')
-rw-r--r--erts/emulator/beam/beam_emu.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/erts/emulator/beam/beam_emu.c b/erts/emulator/beam/beam_emu.c
index 48569a90a9..367da88cb6 100644
--- a/erts/emulator/beam/beam_emu.c
+++ b/erts/emulator/beam/beam_emu.c
@@ -439,6 +439,12 @@ init_emulator(void)
# define REG_stop asm("%l3")
# define REG_I asm("%l4")
# define REG_fcalls asm("%l5")
+#elif defined(__GNUC__) && defined(__amd64__) && !defined(DEBUG)
+# define REG_xregs asm("%r12")
+# define REG_htop
+# define REG_stop asm("%r13")
+# define REG_I asm("%rbx")
+# define REG_fcalls asm("%r14")
#else
# define REG_xregs
# define REG_htop