diff options
author | Jeremy Evans <code@jeremyevans.net> | 2022-07-20 12:24:50 -0700 |
---|---|---|
committer | Jeremy Evans <code@jeremyevans.net> | 2022-08-09 22:19:46 -0700 |
commit | d9167491db220756df159048348f006619df28c1 (patch) | |
tree | 5618740621c7b95fc95cd582baa9f2543ea6764e /insns.def | |
parent | 9f8abd28babf1ab84093fe0cc97f8d42cf62286c (diff) | |
download | ruby-d9167491db220756df159048348f006619df28c1.tar.gz |
Revert "Remove reverse VM instruction"
This reverts commit 5512353d97250e85c13bf10b9b32e750478cf474.
Diffstat (limited to 'insns.def')
-rw-r--r-- | insns.def | 19 |
1 files changed, 19 insertions, 0 deletions
@@ -597,6 +597,25 @@ swap /* none */ } +/* reverse stack top N order. */ +DEFINE_INSN +reverse +(rb_num_t n) +(...) +(...) +// attr rb_snum_t sp_inc = 0; +{ + rb_num_t i; + VALUE *sp = STACK_ADDR_FROM_TOP(n); + + for (i=0; i<n/2; i++) { + VALUE v0 = sp[i]; + VALUE v1 = TOPN(i); + sp[i] = v1; + TOPN(i) = v0; + } +} + /* for stack caching. */ DEFINE_INSN_IF(STACK_CACHING) reput |