haproxy/include/common
Willy Tarreau 09568fd54d BUG/MINOR: tools: fix the i386 version of the div64_32 function
As reported in issue #596, the edx register isn't marked as clobbered
in div64_32(), which could technically allow gcc to try to reuse it
if it needed a copy of the 32 highest bits of the o1 register after
the operation.

Two attempts were tried, one using a dummy 32-bit local variable to
store the intermediary edx and another one switching to "=A" and making
result a long long. It turns out the former makes the resulting object
code significantly dirtier while the latter makes it better and was
kept. This is due to gcc's difficulties at working with register pairs
mixing 32- and 64- bit values on i386. It was verified that no code
change happened at all on x86_64, armv7, aarch64 nor mips32.

In practice it's only used by the frequency counters so this bug
cannot even be triggered but better fix it.

This may be backported to stable branches though it will not fix any
issue.
2020-04-23 17:21:37 +02:00
..
base64.h [MINOR] add encode/decode function for 30-bit integers from/to base64 2010-10-30 19:04:33 +02:00
buf.h MINOR: buf: Add function to insert a string at an absolute offset in a buffer 2020-03-06 14:12:59 +01:00
buffer.h MEDIUM: buffer: remove the buffer_wq lock 2020-02-26 10:39:36 +01:00
cfgparse.h MINOR: cfgparse: make the process/thread parser support a maximum value 2019-01-26 13:25:14 +01:00
chunk.h MINOR: chunk: implement chunk_strncpy() to copy partial strings 2020-02-14 19:02:06 +01:00
compat.h MINOR: debug: use our own backtrace function on clang+x86_64 2020-03-04 12:04:07 +01:00
compiler.h MINOR: debug: add a new DISGUISE() macro to pass a value as identity 2020-03-14 10:52:46 +01:00
config.h MINOR: compiler: move CPU capabilities definition from config.h and complete them 2020-02-21 16:32:57 +01:00
debug.h MINOR: debug: consume the write() result in BUG_ON() to silence a warning 2020-03-14 10:58:35 +01:00
defaults.h CLEANUP: assorted typo fixes in the code and comments 2020-03-14 09:42:07 +01:00
errors.h [MINOR] errors: provide new status codes for config parsing functions 2010-08-10 14:01:15 +02:00
fcgi.h MINOR: fcgi: Add function to get the string representation of a record type 2019-10-04 16:12:02 +02:00
h1.h CLEANUP: assorted typo fixes in the code and comments 2020-03-14 09:42:07 +01:00
h2.h MINOR: h2: add a function to report H2 error codes as strings 2019-11-25 11:34:26 +01:00
hash.h BUG/MAJOR: hashes: fix the signedness of the hash inputs 2020-01-16 08:23:42 +01:00
hathreads.h MEDIUM: fd: Introduce a running mask, and use it instead of the spinlock. 2020-03-17 15:30:07 +01:00
hpack-dec.h BUILD: use inttypes.h instead of stdint.h 2019-04-01 07:44:56 +02:00
hpack-enc.h BUILD: use inttypes.h instead of stdint.h 2019-04-01 07:44:56 +02:00
hpack-huff.h BUILD: use inttypes.h instead of stdint.h 2019-04-01 07:44:56 +02:00
hpack-tbl.h CLEANUP: assorted typo fixes in the code and comments 2020-03-14 09:42:07 +01:00
http-hdr.h BUILD: use inttypes.h instead of stdint.h 2019-04-01 07:44:56 +02:00
http.h CLEANUP: assorted typo fixes in the code and comments 2020-03-14 09:42:07 +01:00
htx.h CLEANUP: assorted typo fixes in the code and comments 2020-03-14 09:42:07 +01:00
initcall.h MINOR: initcall: Don't forget to define the __start/stop_init_##stg symbols. 2019-04-10 16:33:25 +02:00
ist.h CLEANUP: assorted typo fixes in the code and comments 2020-03-14 09:42:07 +01:00
istbuf.h Revert "MINOR: istbuf: add b_fromist() to make a buffer from an ist" 2019-10-29 13:09:14 +01:00
memory.h MINOR: memory: Change the flush_lock to a spinlock, and don't get it in alloc. 2020-03-18 15:55:35 +01:00
mini-clist.h MINOR: lists: fix indentation. 2020-03-11 21:41:13 +01:00
namespace.h CLEANUP: build: rename some build macros to use the USE_* ones 2019-05-22 19:47:57 +02:00
net_helper.h CLEANUP: net_helper: Do not negate the result of unlikely 2020-02-25 07:30:49 +01:00
openssl-compat.h CLEANUP: ssl: use the refcount for the SSL_CTX' 2020-04-08 16:52:51 +02:00
regex.h CLEANUP: assorted typo fixes in the code and comments 2020-03-14 09:42:07 +01:00
standard.h BUG/MINOR: tools: fix the i386 version of the div64_32 function 2020-04-23 17:21:37 +02:00
template.h [CLEANUP] included common/version.h everywhere 2006-06-29 18:54:54 +02:00
ticks.h [MEDIUM] scheduler: get rid of the 4 trees thanks and use ebtree v4.1 2009-03-21 10:25:14 +01:00
time.h BUILD: remove obsolete support for -mregparm / USE_REGPARM 2020-02-25 07:41:47 +01:00
tools.h BUG/MINOR: ssl: ssl_sock_load_pem_into_ckch is not consistent 2020-01-22 15:55:55 +01:00
uri_auth.h MINOR: stats: replace the ST_* uri_auth flags with STAT_* 2019-10-10 11:30:07 +02:00
version.h MINOR: version: this is development again, update the status 2019-11-25 20:38:32 +01:00
xref.h CLEANUP: assorted typo fixes in the code and comments 2020-03-14 09:42:07 +01:00