Skip to content

Commit ecd52b9

Browse files
committed
---
yaml --- r: 6649 b: refs/heads/master c: 4699b68 h: refs/heads/master i: 6647: faaf15b v: v3
1 parent d9edb07 commit ecd52b9

File tree

7 files changed

+27
-7
lines changed

7 files changed

+27
-7
lines changed

[refs]

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
---
2-
refs/heads/master: 638b51488f444213eb9430b34a833905274cd424
2+
refs/heads/master: 4699b6865f9e25b638553e5852858d183476035a

trunk/Makefile.in

+1
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,7 @@ CFG_LLVM_INST_DIR_$(1):=$$(CFG_LLVM_INST_DIR_$(subst -,_,$(1)))
223223

224224
# Any rules that depend on LLVM should depend on LLVM_CONFIG
225225
LLVM_CONFIG_$(1):=$$(CFG_LLVM_INST_DIR_$(1))/bin/llvm-config
226+
LLVM_MC_$(1):=$$(CFG_LLVM_INST_DIR_$(1))/bin/llvm-mc
226227
LLVM_VERSION_$(1)=$$(shell "$$(LLVM_CONFIG_$(1))" --version)
227228
LLVM_BINDIR_$(1)=$$(shell "$$(LLVM_CONFIG_$(1))" --bindir)
228229
LLVM_INCDIR_$(1)=$$(shell "$$(LLVM_CONFIG_$(1))" --includedir)

trunk/mk/platform.mk

+15
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,7 @@ CFG_INFO := $(info cfg: using $(CFG_C_COMPILER))
178178
ifeq ($(CFG_C_COMPILER),clang)
179179
CC=clang
180180
CXX=clang++
181+
CPP=cpp
181182
CFG_GCCISH_CFLAGS += -Wall -Werror -fno-rtti -g
182183
CFG_GCCISH_LINK_FLAGS += -g
183184
CFG_DEPEND_C = $(CFG_GCCISH_CROSS)$(CXX) $(CFG_GCCISH_CFLAGS) -MT "$(1)" \
@@ -202,6 +203,7 @@ else
202203
ifeq ($(CFG_C_COMPILER),gcc)
203204
CC=gcc
204205
CXX=g++
206+
CPP=cpp
205207
CFG_GCCISH_CFLAGS += -Wall -Werror -fno-rtti -g
206208
CFG_GCCISH_LINK_FLAGS += -g
207209
CFG_DEPEND_C = $(CFG_GCCISH_CROSS)$(CXX) $(CFG_GCCISH_CFLAGS) -MT "$(1)" \
@@ -228,3 +230,16 @@ else
228230
endif
229231
endif
230232

233+
# We're using llvm-mc as our assembler because it supports
234+
# .cfi pseudo-ops on mac
235+
define CFG_MAKE_ASSEMBLER
236+
CFG_ASSEMBLE_$(1)=$$(CPP) $$(2) | \
237+
$$(LLVM_MC_$$(CFG_HOST_TRIPLE)) \
238+
-assemble \
239+
-filetype=obj \
240+
-triple=$(1) \
241+
-o=$$(1)
242+
endef
243+
244+
$(foreach target,$(CFG_TARGET_TRIPLES),\
245+
$(eval $(call CFG_MAKE_ASSEMBLER,$(target))))

trunk/mk/rt.mk

+2-2
Original file line numberDiff line numberDiff line change
@@ -136,9 +136,9 @@ rt/$(1)/%.o: rt/%.cpp $$(MKFILE_DEPS)
136136
@$$(call E, compile: $$@)
137137
$$(Q)$$(call CFG_COMPILE_C_$(1), $$@, $$(RUNTIME_INCS_$(1))) $$<
138138

139-
rt/$(1)/%.o: rt/%.S $$(MKFILE_DEPS)
139+
rt/$(1)/%.o: rt/%.S $$(MKFILE_DEPS) $$(LLVM_CONFIG_$$(CFG_HOST_TRIPLE))
140140
@$$(call E, compile: $$@)
141-
$$(Q)$$(call CFG_COMPILE_C_$(1), $$@, $$(RUNTIME_INCS_$(1))) $$<
141+
$$(Q)$$(call CFG_ASSEMBLE_$(1),$$@,$$<)
142142

143143
rt/$(1)/arch/$$(HOST_$(1))/libmorestack.a: \
144144
rt/$(1)/arch/$$(HOST_$(1))/morestack.o

trunk/src/rt/arch/i386/morestack.S

+2
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,10 @@
2727

2828
.globl UPCALL_NEW_STACK
2929
.globl UPCALL_DEL_STACK
30+
#ifndef __APPLE__
3031
.globl RUST_GET_TASK
3132
.globl UPCALL_CALL_C_STACK
33+
#endif
3234
.globl MORESTACK
3335

3436
// FIXME: What about _WIN32?

trunk/src/rt/arch/x86_64/morestack.S

+2-2
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ MORESTACK:
9191
movq UPCALL_NEW_STACK@GOTPCREL(%rip), %rsi
9292
movq %rsp, %rdi
9393
#ifdef __APPLE__
94-
call UPCALL_CALL_C@GOTPCREL
94+
call UPCALL_CALL_C
9595
#endif
9696
#ifdef __linux__
9797
call UPCALL_CALL_C@PLT
@@ -124,7 +124,7 @@ MORESTACK:
124124
movq UPCALL_DEL_STACK@GOTPCREL(%rip), %rsi
125125
movq $0, %rdi
126126
#ifdef __APPLE__
127-
call UPCALL_CALL_C@GOTPCREL
127+
call UPCALL_CALL_C
128128
#endif
129129
#ifdef __linux__
130130
call UPCALL_CALL_C@PLT

trunk/src/rt/arch/x86_64/regs.h

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
#define RUSTRT_RBX 0
22
#define RUSTRT_RSP 1
33
#define RUSTRT_RBP 2
4-
#define RUSTRT_ARG0 3 // RCX on Windows, RDI elsewhere
4+
// RCX on Windows, RDI elsewhere
5+
#define RUSTRT_ARG0 3
56
#define RUSTRT_R12 4
67
#define RUSTRT_R13 5
78
#define RUSTRT_R14 6
89
#define RUSTRT_R15 7
910
#define RUSTRT_IP 8
10-
#define RUSTRT_XXX 9 // Not used, just padding
11+
// Not used, just padding
12+
#define RUSTRT_XXX 9
1113
#define RUSTRT_XMM0 10
1214
#define RUSTRT_XMM1 12
1315
#define RUSTRT_XMM2 14

0 commit comments

Comments
 (0)