, 08 2018 . 18:30
+
, ( )
[31a078bec7]:
/*
- * Select the list item based on the index. Negative operand means
- * end-based indexing (-2, ...), and -1 means out of range.
+ * Decode end-offset index values.
*/
- if (opnd < -1) {
- index = opnd+1 + objc;
- } else {
- index = opnd;
- }
+ index = opnd + (opnd <= TCL_INDEX_END)*(objc - 1 - TCL_INDEX_END);
pcAdjustment = 5;
(
TCL_INDEX_END (-2)).
( int):
index = opnd + cmp(opnd, (-2))==>(0 | 1) * (objc - 1 - (-2));
. . .
, .
, (
TEBCresume), - (JIT TCL). ( 6 + ) , `goto`, , / NRE (nonrecursive evaluation) .. ..
.. , (.. )
, , , - -, , . jump
if if/else, , .
, , .
...
https://habrahabr.ru/post/350742/
:
author sebres
c++
c-lang
assembler