summaryrefslogtreecommitdiff
path: root/hv.c
diff options
context:
space:
mode:
authorDaniel Dragan <bulk88@hotmail.com>2012-11-23 16:15:04 -0500
committerFather Chrysostomos <sprout@cpan.org>2012-11-23 18:00:39 -0800
commit630b72b081fe290d04732279e069c327eea82b09 (patch)
tree4f6f482b4e9d8f36d78f2b88f734768597c6b8d4 /hv.c
parentb899e89d91e81e631e553a5b805e8d068828dbf0 (diff)
downloadperl-630b72b081fe290d04732279e069c327eea82b09.tar.gz
SvPVXtrue single eval->multiple eval
Make SvTRUE and SvPVXtrue smaller and faster in machine code on non GCC compilers. This commit implements my posts here, http://www.nntp.perl.org/group/perl.perl5.porters/2012/11/msg195720.html and in my commit message in commit 4cc783efe0 . SvPVXtrue was added in commit 4bac9ae47b . No reason was given why SvPVXtrue is single eval, but its only use is in multi eval SvTRUE. A non GCC compiler will write to PL_Xpv and PL_Sv, and still keep the SV * and PV *s in a register for the next operations/instructions. The writes to PL_Xpv and PL_Sv are needless. The use of PL_Xpv and PL_Sv is self explanatory C lang wise. As said in the ML post, this commit causes overall code bloat because of incorrect uses of passing macro args that make calls (ERRSV for example) to SvTRUE. This will have to be fixed in the future. All of the pp opcode funcs decrease tiny bit in size after this commit. See the ML list post for details.
Diffstat (limited to 'hv.c')
0 files changed, 0 insertions, 0 deletions