bea code example
Example 1: bea
move x x
move x y
move c x
Example 2: bea
Athelstan:RLjXiyxx56D9s
Mama:RLMzFazUFPVRE
Papa:RL8wKTlBoVLKk
Example 3: bea
increment.head() {
Eterm increment_reg_val;
}
Example 4: bea
increment.execute(IncrementVal, Live, Dst) {
Eterm increment_val = $IncrementVal;
Uint live;
Eterm result;
if (ERTS_LIKELY(is_small(increment_reg_val))) {
Sint i = signed_val(increment_reg_val) + increment_val;
if (ERTS_LIKELY(IS_SSMALL(i))) {
$Dst = make_small(i);
$NEXT0();
}
}
live = $Live;
HEAVY_SWAPOUT;
reg[live] = increment_reg_val;
reg[live+1] = make_small(increment_val);
result = erts_gc_mixed_plus(c_p, reg, live);
HEAVY_SWAPIN;
ERTS_HOLE_CHECK(c_p);
if (ERTS_LIKELY(is_value(result))) {
$REFRESH_GEN_DEST();
$Dst = result;
$NEXT0();
}
ASSERT(c_p->freason != BADMATCH || is_value(c_p->fvalue));
goto find_func_info;
}
Example 5: bea
i_increment S W t d
Example 6: bea
move_cx id 5
move_xx 3 0
move_xy 2 1
Example 7: bea
increment.fetch(Src) {
increment_reg_val = $Src;
}
Example 8: bea
i_increment(Source, IncrementVal, Live, Dst) {
Eterm increment_reg_source = $Source;
Eterm increment_val = $IncrementVal;
Uint live;
Eterm result;
if (ERTS_LIKELY(is_small(increment_reg_val))) {
Sint i = signed_val(increment_reg_val) + increment_val;
if (ERTS_LIKELY(IS_SSMALL(i))) {
$Dst = make_small(i);
$NEXT0();
}
}
live = $Live;
HEAVY_SWAPOUT;
reg[live] = increment_reg_val;
reg[live+1] = make_small(increment_val);
result = erts_gc_mixed_plus(c_p, reg, live);
HEAVY_SWAPIN;
ERTS_HOLE_CHECK(c_p);
if (ERTS_LIKELY(is_value(result))) {
$REFRESH_GEN_DEST();
$Dst = result;
$NEXT0();
}
ASSERT(c_p->freason != BADMATCH || is_value(c_p->fvalue));
goto find_func_info;
}
Example 9: bea
{move,{atom,id},{x,5}}.
{move,{x,3},{x,0}}.
{move,{x,2},{y,1}}.