[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] 308/437: x86: Update instruction size information for Wi
From: |
Andy Wingo |
Subject: |
[Guile-commits] 308/437: x86: Update instruction size information for Windows x64 |
Date: |
Mon, 2 Jul 2018 05:14:42 -0400 (EDT) |
wingo pushed a commit to branch lightning
in repository guile.
commit 52448473be701a3b992d9cbc803eb31794966b69
Author: Paulo Andrade <address@hidden>
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 <address@hidden>
+ * 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 <address@hidden>
+
* 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 */
- [Guile-commits] 238/437: test for zlib in configure.ac, (continued)
- [Guile-commits] 238/437: test for zlib in configure.ac, Andy Wingo, 2018/07/02
- [Guile-commits] 266/437: Add assertion to detect double patching., Andy Wingo, 2018/07/02
- [Guile-commits] 199/437: Correct wrong shift value for 32 bit, Andy Wingo, 2018/07/02
- [Guile-commits] 294/437: Correct change of possibly wrong bitmask in jit_update, Andy Wingo, 2018/07/02
- [Guile-commits] 291/437: MIPS: Correct use of wrong test register, Andy Wingo, 2018/07/02
- [Guile-commits] 303/437: Only mark callee save regs as live on jumps that cannot be tracked., Andy Wingo, 2018/07/02
- [Guile-commits] 218/437: Build and pass all test cases on a multiprocessor HP-UX., Andy Wingo, 2018/07/02
- [Guile-commits] 285/437: GNU lightning 2.0.4 release, Andy Wingo, 2018/07/02
- [Guile-commits] 193/437: Make code and data buffer readonly., Andy Wingo, 2018/07/02
- [Guile-commits] 145/437: Add new test case for int/float to/from conversion., Andy Wingo, 2018/07/02
- [Guile-commits] 308/437: x86: Update instruction size information for Windows x64,
Andy Wingo <=
- [Guile-commits] 313/437: Implement the jit_align interface, Andy Wingo, 2018/07/02
- [Guile-commits] 250/437: Add the new jit_pointer_p predicate interface., Andy Wingo, 2018/07/02
- [Guile-commits] 286/437: Do not export private definitions and types., Andy Wingo, 2018/07/02
- [Guile-commits] 147/437: Correct test cases in the mips backend., Andy Wingo, 2018/07/02
- [Guile-commits] 292/437: AARCH64: Correct assertion test, Andy Wingo, 2018/07/02
- [Guile-commits] 305/437: Consider all callee_save_p regs as live on non trackable jumps, Andy Wingo, 2018/07/02
- [Guile-commits] 40/437: checkin rewrite of i386 assembler, Andy Wingo, 2018/07/02
- [Guile-commits] 295/437: Always mark return registers as live in epilog, Andy Wingo, 2018/07/02
- [Guile-commits] 326/437: Actually install the pkgconfig file., Andy Wingo, 2018/07/02
- [Guile-commits] 325/437: misc: Create a pkg-config file, Andy Wingo, 2018/07/02