diff --git a/2019/05/03/Dockerfile b/2019/05/03/Dockerfile index 88fa3da2..4534c5c0 100644 --- a/2019/05/03/Dockerfile +++ b/2019/05/03/Dockerfile @@ -8,6 +8,7 @@ FROM gcc:9.1 COPY . /usr/src/myapp WORKDIR /usr/src/myapp +RUN make clean RUN make CMD ["./bitmapdecoding", "test"] diff --git a/2019/05/03/Makefile b/2019/05/03/Makefile index b413eee7..d150ebd6 100644 --- a/2019/05/03/Makefile +++ b/2019/05/03/Makefile @@ -10,6 +10,7 @@ endif bitmapdecoding: bitmapdecoding.cpp $(CXX) --version + $(CXX) -O2 $(arch) -S -fverbose-asm -std=c++14 -o bitmapdecoding.s bitmapdecoding.cpp $(CXX) -O2 $(arch) -std=c++14 -o bitmapdecoding bitmapdecoding.cpp -Wall -I. sanibitmapdecoding : bitmapdecoding.cpp $(CXX) -g3 $(arch) -fsanitize=address -fno-omit-frame-pointer -std=c++14 -o sanibitmapdecoding bitmapdecoding.cpp -Wall -I. diff --git a/2019/05/03/bitmapdecoding.cpp b/2019/05/03/bitmapdecoding.cpp index 339d3d14..2fe28cfe 100644 --- a/2019/05/03/bitmapdecoding.cpp +++ b/2019/05/03/bitmapdecoding.cpp @@ -81,7 +81,7 @@ uint64_t *build_bitmap(const char *filename, char target, size_t *wordcount) { return data; } -static inline void basic_decoder(uint32_t *base_ptr, uint32_t &base, +void basic_decoder(uint32_t *base_ptr, uint32_t &base, uint32_t idx, uint64_t bits) { while (bits != 0) { base_ptr[base] = static_cast(idx) + trailingzeroes(bits); diff --git a/2019/05/03/dockerscript.sh b/2019/05/03/dockerscript.sh index eeef14f8..94b0396f 100755 --- a/2019/05/03/dockerscript.sh +++ b/2019/05/03/dockerscript.sh @@ -1,2 +1,3 @@ -make clean && docker build -t my-gcc-app . && docker run --privileged my-gcc-app +make clean && docker build -t my-gcc-app . && docker run --privileged my-gcc-app && docker run -t my-gcc-app cat /usr/src/myapp/bitmapdecoding.s > bitmapdecoding.s +