Skip to content

Commit 3f23794

Browse files
committed
Added further ia32 GCC built-ins
1 parent 0bdac88 commit 3f23794

8 files changed

+1031
-4
lines changed

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ src/ansi-c/gcc_builtin_headers_alpha.inc
2828
src/ansi-c/gcc_builtin_headers_arm.inc
2929
src/ansi-c/gcc_builtin_headers_generic.inc
3030
src/ansi-c/gcc_builtin_headers_ia32-2.inc
31+
src/ansi-c/gcc_builtin_headers_ia32-3.inc
32+
src/ansi-c/gcc_builtin_headers_ia32-4.inc
3133
src/ansi-c/gcc_builtin_headers_ia32.inc
3234
src/ansi-c/gcc_builtin_headers_math.inc
3335
src/ansi-c/gcc_builtin_headers_mem_string.inc

src/ansi-c/Makefile

+6-2
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,8 @@ CLEANFILES = ansi-c$(LIBEXT) \
5858
clang_builtin_headers.inc gcc_builtin_headers_ia32-2.inc \
5959
gcc_builtin_headers_math.inc gcc_builtin_headers_omp.inc \
6060
gcc_builtin_headers_tm.inc gcc_builtin_headers_ubsan.inc \
61-
gcc_builtin_headers_mem_string.inc
61+
gcc_builtin_headers_mem_string.inc \
62+
gcc_builtin_headers_ia32-3.inc gcc_builtin_headers_ia32-4.inc
6263

6364
all: ansi-c$(LIBEXT)
6465

@@ -119,6 +120,8 @@ cprover_library.cpp: cprover_library.inc
119120
ansi_c_internal_additions$(OBJEXT): gcc_builtin_headers_generic.inc
120121
ansi_c_internal_additions$(OBJEXT): gcc_builtin_headers_ia32.inc
121122
ansi_c_internal_additions$(OBJEXT): gcc_builtin_headers_ia32-2.inc
123+
ansi_c_internal_additions$(OBJEXT): gcc_builtin_headers_ia32-3.inc
124+
ansi_c_internal_additions$(OBJEXT): gcc_builtin_headers_ia32-4.inc
122125
ansi_c_internal_additions$(OBJEXT): gcc_builtin_headers_alpha.inc
123126
ansi_c_internal_additions$(OBJEXT): gcc_builtin_headers_arm.inc
124127
ansi_c_internal_additions$(OBJEXT): gcc_builtin_headers_math.inc
@@ -140,7 +143,8 @@ generated_files: cprover_library.inc gcc_builtin_headers_generic.inc \
140143
ansi_c_y.tab.h clang_builtin_headers.inc gcc_builtin_headers_ia32-2.inc \
141144
gcc_builtin_headers_math.inc gcc_builtin_headers_omp.inc \
142145
gcc_builtin_headers_tm.inc gcc_builtin_headers_ubsan.inc \
143-
gcc_builtin_headers_mem_string.inc
146+
gcc_builtin_headers_mem_string.inc \
147+
gcc_builtin_headers_ia32-3.inc gcc_builtin_headers_ia32-4.inc
144148

145149
###############################################################################
146150

src/ansi-c/ansi_c_internal_additions.cpp

+8
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,12 @@ const char gcc_builtin_headers_ia32[]=
4747
const char gcc_builtin_headers_ia32_2[]=
4848
#include "gcc_builtin_headers_ia32-2.inc"
4949
; // NOLINT(whitespace/semicolon)
50+
const char gcc_builtin_headers_ia32_3[]=
51+
#include "gcc_builtin_headers_ia32-3.inc"
52+
; // NOLINT(whitespace/semicolon)
53+
const char gcc_builtin_headers_ia32_4[]=
54+
#include "gcc_builtin_headers_ia32-4.inc"
55+
; // NOLINT(whitespace/semicolon)
5056

5157
const char gcc_builtin_headers_alpha[]=
5258
"# 1 \"gcc_builtin_headers_alpha.h\"\n"
@@ -286,6 +292,8 @@ void ansi_c_internal_additions(std::string &code)
286292

287293
code+=gcc_builtin_headers_ia32;
288294
code+=gcc_builtin_headers_ia32_2;
295+
code+=gcc_builtin_headers_ia32_3;
296+
code+=gcc_builtin_headers_ia32_4;
289297
}
290298
else if(config.ansi_c.arch=="arm64" ||
291299
config.ansi_c.arch=="armel" ||

src/ansi-c/ansi_c_internal_additions.h

+3
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ extern const char gcc_builtin_headers_tm[];
2222
extern const char gcc_builtin_headers_ubsan[];
2323
extern const char clang_builtin_headers[];
2424
extern const char gcc_builtin_headers_ia32[];
25+
extern const char gcc_builtin_headers_ia32_2[];
26+
extern const char gcc_builtin_headers_ia32_3[];
27+
extern const char gcc_builtin_headers_ia32_4[];
2528
extern const char arm_builtin_headers[];
2629

2730
#endif // CPROVER_ANSI_C_ANSI_C_INTERNAL_ADDITIONS_H

src/ansi-c/gcc_builtin_headers_ia32-3.h

+666
Large diffs are not rendered by default.

src/ansi-c/gcc_builtin_headers_ia32-4.h

+341
Large diffs are not rendered by default.

src/ansi-c/get-gcc-builtins.sh

+2-2
Original file line numberDiff line numberDiff line change
@@ -256,9 +256,9 @@ while read line ; do
256256
if [[ $bi =~ __builtin_ia32 ]] ; then
257257
if grep -wq $bi gcc_builtin_headers_ia32*.h ; then
258258
if [ $sed_is_gnu_sed -eq 1 ] ; then
259-
sed -i "/[^/].*$bi(/ s/.*/$line/" gcc_builtin_headers_ia32*.h
259+
sed -i "/^[^/].*$bi(/ s/.*/$line/" gcc_builtin_headers_ia32*.h
260260
else
261-
sed -i '' "/[^/].*$bi(/ s/.*/$line/" gcc_builtin_headers_ia32*.h
261+
sed -i '' "/^[^/].*$bi(/ s/.*/$line/" gcc_builtin_headers_ia32*.h
262262
fi
263263
continue
264264
fi

src/cpp/cpp_internal_additions.cpp

+3
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,9 @@ void cpp_internal_additions(std::ostream &out)
147147
out << "typedef double __float128;\n"; // clang doesn't do __float128
148148

149149
out << c2cpp(gcc_builtin_headers_ia32);
150+
out << c2cpp(gcc_builtin_headers_ia32_2);
151+
out << c2cpp(gcc_builtin_headers_ia32_3);
152+
out << c2cpp(gcc_builtin_headers_ia32_4);
150153
out << "}" << '\n';
151154
}
152155

0 commit comments

Comments
 (0)