We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
The negate and i_negate functions are modified in a series of commits such that they:
negate
i_negate
op_targ
S_negate_string
Sorry, something went wrong.
Would you be able to hold off and rebase this once my work is merged?
Yeah, that's no problem.
It was still useful for me to get familiar with the new macros.
Just running tests locally before pushing rebased commits. This PR will now do the following for negate and i_negate:
679254f
cb3f61a
S_negate_string - allow for TARG==sv
a3e5092
Adds a case in `S_negate_string` to allow for TARG==sv, which then means that the `pp_negate` and `pp_i_negate` OPs can support the TARGMY optimization
pp_(i_)negate: add the TARGMY optimization
60fcd7d
This mostly means using the existing machinery in regen/, but also not bothering to replace *PL_stack_sp when (targ == sv), as that would effectively be a busywork no-op.
pp_(i_)negate: Don't needlessly call S_negate_string
dd10855
Arguably it will be more common for users to want to negate an IV or NV, rather than a PV. Prior to this commit, `S_negate_string` was always called at the start of the OP and, if the target wasn't `SvPOKp`, that function just immediately returned. This commit moves the `SvPOKp` check into the `pp_` functions to avoid needless function calls.
c904517
tonycoz tonycoz approved these changes
Successfully merging this pull request may close these issues.