wingo pushed a commit to branch lightning
in repository guile.
commit 52448473be701a3b992d9cbc803eb31794966b69
Author: Paulo Andrade <[email protected]>
Date: Wed Sep 24 14:56:20 2014 -0300
x86: Update instruction size information for Windows x64
* lib/jit_x86-sz.c: Generate information about instruction
lengths for more precise calculation of buffer size on
Windows x64. This change is specially important because
the maximum instruction length is larger than other
systems, what could cause an out of bounds write on
special conditions without this update.
---
ChangeLog | 9 ++
lib/jit_x86-sz.c | 351 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 360 insertions(+)
diff --git a/ChangeLog b/ChangeLog
index 059f0ac..fa8b3eb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
2014-09-24 Paulo Andrade <[email protected]>
+ * lib/jit_x86-sz.c: Generate information about instruction
+ lengths for more precise calculation of buffer size on
+ Windows x64. This change is specially important because
+ the maximum instruction length is larger than other
+ systems, what could cause an out of bounds write on
+ special conditions without this update.
+
+2014-09-24 Paulo Andrade <[email protected]>
+
* check/lightning.c: Add workaround to conflicting global
optind variable in cygwin binutils that have an internal
getopt* implementation.
diff --git a/lib/jit_x86-sz.c b/lib/jit_x86-sz.c
index 2e76e0c..b8c9af3 100644
--- a/lib/jit_x86-sz.c
+++ b/lib/jit_x86-sz.c
@@ -350,6 +350,356 @@
#endif /* __WORDSIZE */
#if __WORDSIZE == 64
+#if __CYGWIN__
+#define JIT_INSTR_MAX 71
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 7,
+ 71,
+ 0,
+ 4,
+ 13,
+ 6,
+ 13,
+ 6,
+ 7,
+ 6,
+ 13,
+ 9,
+ 13,
+ 9,
+ 7,
+ 7,
+ 14,
+ 20,
+ 30,
+ 20,
+ 30,
+ 22,
+ 29,
+ 23,
+ 30,
+ 25,
+ 32,
+ 26,
+ 33,
+ 22,
+ 29,
+ 23,
+ 30,
+ 6,
+ 13,
+ 6,
+ 13,
+ 6,
+ 13,
+ 9,
+ 8,
+ 9,
+ 7,
+ 9,
+ 7,
+ 6,
+ 6,
+ 13,
+ 14,
+ 13,
+ 14,
+ 13,
+ 14,
+ 13,
+ 14,
+ 13,
+ 14,
+ 13,
+ 14,
+ 13,
+ 14,
+ 13,
+ 14,
+ 13,
+ 14,
+ 13,
+ 14,
+ 3,
+ 10,
+ 7,
+ 7,
+ 4,
+ 4,
+ 3,
+ 3,
+ 6,
+ 4,
+ 15,
+ 4,
+ 15,
+ 4,
+ 15,
+ 4,
+ 15,
+ 3,
+ 14,
+ 3,
+ 14,
+ 3,
+ 14,
+ 5,
+ 8,
+ 5,
+ 8,
+ 5,
+ 8,
+ 5,
+ 8,
+ 4,
+ 7,
+ 4,
+ 6,
+ 4,
+ 7,
+ 6,
+ 17,
+ 4,
+ 15,
+ 3,
+ 14,
+ 3,
+ 14,
+ 7,
+ 7,
+ 5,
+ 5,
+ 4,
+ 6,
+ 4,
+ 8,
+ 9,
+ 10,
+ 9,
+ 10,
+ 9,
+ 13,
+ 9,
+ 10,
+ 9,
+ 19,
+ 9,
+ 10,
+ 9,
+ 10,
+ 9,
+ 10,
+ 9,
+ 10,
+ 9,
+ 19,
+ 9,
+ 13,
+ 9,
+ 13,
+ 9,
+ 10,
+ 9,
+ 10,
+ 9,
+ 10,
+ 9,
+ 10,
+ 9,
+ 10,
+ 9,
+ 10,
+ 9,
+ 10,
+ 9,
+ 10,
+ 3,
+ 5,
+ 3,
+ 13,
+ 68,
+ 0,
+ 10,
+ 21,
+ 15,
+ 21,
+ 10,
+ 21,
+ 15,
+ 21,
+ 15,
+ 15,
+ 5,
+ 16,
+ 31,
+ 16,
+ 31,
+ 18,
+ 33,
+ 16,
+ 31,
+ 16,
+ 31,
+ 20,
+ 35,
+ 16,
+ 31,
+ 16,
+ 31,
+ 16,
+ 31,
+ 16,
+ 31,
+ 16,
+ 31,
+ 16,
+ 31,
+ 16,
+ 31,
+ 16,
+ 31,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 15,
+ 5,
+ 16,
+ 6,
+ 8,
+ 5,
+ 16,
+ 6,
+ 9,
+ 10,
+ 21,
+ 10,
+ 24,
+ 12,
+ 27,
+ 10,
+ 25,
+ 10,
+ 25,
+ 13,
+ 28,
+ 10,
+ 25,
+ 10,
+ 25,
+ 10,
+ 25,
+ 10,
+ 25,
+ 10,
+ 25,
+ 10,
+ 25,
+ 10,
+ 25,
+ 10,
+ 25,
+ 0,
+ 10,
+ 25,
+ 15,
+ 25,
+ 10,
+ 25,
+ 15,
+ 25,
+ 22,
+ 16,
+ 5,
+ 17,
+ 32,
+ 17,
+ 32,
+ 19,
+ 34,
+ 17,
+ 32,
+ 17,
+ 32,
+ 21,
+ 36,
+ 17,
+ 32,
+ 17,
+ 32,
+ 17,
+ 32,
+ 17,
+ 32,
+ 17,
+ 32,
+ 17,
+ 32,
+ 17,
+ 32,
+ 17,
+ 32,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 15,
+ 5,
+ 16,
+ 6,
+ 8,
+ 5,
+ 16,
+ 6,
+ 9,
+ 11,
+ 26,
+ 11,
+ 26,
+ 13,
+ 28,
+ 11,
+ 26,
+ 11,
+ 26,
+ 14,
+ 29,
+ 11,
+ 26,
+ 11,
+ 26,
+ 11,
+ 26,
+ 11,
+ 26,
+ 11,
+ 26,
+ 11,
+ 26,
+ 11,
+ 26,
+ 11,
+ 26,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+#else
+
#define JIT_INSTR_MAX 43
0,
0,
@@ -697,4 +1047,5 @@
0,
0,
0,
+#endif /* __CYGWIN__ */
#endif /* __WORDSIZE */