summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile14
-rw-r--r--src/upb_decoder.c5
2 files changed, 13 insertions, 6 deletions
diff --git a/Makefile b/Makefile
index 008cc85..68c56b6 100644
--- a/Makefile
+++ b/Makefile
@@ -24,12 +24,14 @@
# Default rule: just build libupb.
all: lib
+# User-specified CFLAGS.
+USER_CFLAGS=$(strip $(shell test -f perf-cppflags && cat perf-cppflags))
+
# Basic compiler/flag setup.
CC=gcc
CXX=g++
CFLAGS=-std=c99
INCLUDE=-Isrc -Itests -I.
-USER_CFLAGS=$(strip $(shell test -f perf-cppflags && cat perf-cppflags))
CPPFLAGS=$(INCLUDE) -Wall -Wextra -Wno-missing-field-initializers $(USER_CFLAGS)
LDLIBS=-lpthread src/libupb.a
@@ -117,8 +119,14 @@ LIBUPB=src/libupb.a
LIBUPB_PIC=src/libupb_pic.a
lib: $(LIBUPB)
-OBJ=$(patsubst %.c,%.o,$(SRC)) src/upb_decoder_x64.o
-PICOBJ=$(patsubst %.c,%.lo,$(SRC)) src/upb_decoder_x64.lo
+
+OBJ=$(patsubst %.c,%.o,$(SRC))
+PICOBJ=$(patsubst %.c,%.lo,$(SRC))
+
+ifneq (, $(findstring DUSE_X64_FASTPATH, $(USER_CFLAGS)))
+ OBJ += src/upb_decoder_x64.o
+ PICOBJ += src/upb_decoder_x64.o
+endif
$(LIBUPB): $(OBJ)
$(E) AR $(LIBUPB)
$(Q) ar rcs $(LIBUPB) $(OBJ)
diff --git a/src/upb_decoder.c b/src/upb_decoder.c
index f028297..dc5dafd 100644
--- a/src/upb_decoder.c
+++ b/src/upb_decoder.c
@@ -248,14 +248,13 @@ void upb_decoder_run(upb_src *src, upb_status *status) {
// Decodes as many fields as possible, updating d->ptr appropriately,
// before falling through to the slow(er) path.
-#ifdef USE_ASSEMBLY_FASTPATH
+#ifdef USE_X64_FASTPATH
const char *end = UPB_MIN(d->end, d->submsg_end);
fastdecode_ret ret = upb_fastdecode(d->ptr, end,
d->dispatcher.top->handlers.set->value,
d->dispatcher.top->handlers.closure,
d->msgdef->itof.array,
- d->msgdef->itof.array_size,
- d->tmp);
+ d->msgdef->itof.array_size);
CHECK_FLOW(ret.flow);
#endif
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback