1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/include/ruby
naruse ac6f08df23 Use ADD instead of MUL
* On recent CPUs, 2-operand MUL's latency is 3 cycle but ADD is 1 cycle.
* clang Optimizes `MUL rax,2` into `ADD rax,rax` but gcc7 doesn't.
* LONG2FIX is compiled into `lea r14,[r15+r15*1+0x1]`; this is 1cycle
  and run in parallel if the branch prediction is correct.
* Note that old (RB_POSFIXABLE(f) && RB_NEGFIXABLE(f)) is usually uses
  following instructions.
  * movabs rax,0x4000000000000000
  * add    rax,rdi
  * js
  It needs large immediate and Macro-Fusion is not applied.
  ADD and JO is much smaller though it is also Macro-Fusion unfriendly.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57793 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-07 03:35:47 +00:00
..
backward
backward.h backward.h: RClassDeprecated 2017-02-21 14:42:02 +00:00
debug.h
defines.h Suppress warning: this use of "defined" may not be portable 2016-12-09 22:45:38 +00:00
encoding.h encoding.h: include ruby/ruby.h 2016-10-23 02:41:43 +00:00
intern.h backward.h: move deprecated declaration 2017-02-21 06:16:50 +00:00
io.h
missing.h
onigmo.h Merge Onigmo 6.1.1 2017-02-11 15:08:33 +00:00
oniguruma.h Merge Onigmo 6.0.0 2016-12-10 17:47:04 +00:00
re.h
regex.h
ruby.h Use ADD instead of MUL 2017-03-07 03:35:47 +00:00
st.h st.c: fix st_hash* functions [Bug #13019] 2016-12-21 06:22:16 +00:00
subst.h
thread.h
thread_native.h
util.h
version.h include/ruby/version.h: Update API version. 2016-12-25 16:53:00 +00:00
vm.h
win32.h broken mingw 2017-03-03 04:51:34 +00:00