Symbol cleanup as weight representation becomes more concrete
This commit is contained in:
@@ -471,20 +471,11 @@ enum lfs_rtag_pat {
|
|||||||
(LFS_TYPE1_ALT \
|
(LFS_TYPE1_ALT \
|
||||||
| ((0x1 & (lfs_rtag_t)(color)) << 0) \
|
| ((0x1 & (lfs_rtag_t)(color)) << 0) \
|
||||||
| ((0x1 & (lfs_rtag_t)(dir)) << 1) \
|
| ((0x1 & (lfs_rtag_t)(dir)) << 1) \
|
||||||
| ((0xfffffff & (lfs_rtag_t)(weight)) << 3))
|
| ((0x1ffffff8 & (lfs_rtag_t)(weight))))
|
||||||
|
|
||||||
#define LFS_MKRALT(color, dir, weight) \
|
#define LFS_MKRALT(color, dir, weight) \
|
||||||
LFS_MKRALT_(LFS_ALT_##color, LFS_ALT_##dir, weight)
|
LFS_MKRALT_(LFS_ALT_##color, LFS_ALT_##dir, weight)
|
||||||
|
|
||||||
#define LFS_MKRALT___(color, dir, weight) \
|
|
||||||
(LFS_TYPE1_ALT \
|
|
||||||
| ((0x1 & (lfs_rtag_t)(color)) << 0) \
|
|
||||||
| ((0x1 & (lfs_rtag_t)(dir)) << 1) \
|
|
||||||
| ((0x1ffffff8 & (lfs_rtag_t)(weight))))
|
|
||||||
|
|
||||||
#define LFS_MKRALT__(color, dir, weight) \
|
|
||||||
LFS_MKRALT___(LFS_ALT_##color, LFS_ALT_##dir, weight)
|
|
||||||
|
|
||||||
// tag operations
|
// tag operations
|
||||||
static inline bool lfs_rtag_isvalid(lfs_rtag_t tag) {
|
static inline bool lfs_rtag_isvalid(lfs_rtag_t tag) {
|
||||||
return !(tag & 0x80000000);
|
return !(tag & 0x80000000);
|
||||||
@@ -575,96 +566,42 @@ static inline lfs_rtag_t lfs_rtag_isparallel(lfs_rtag_t a, lfs_rtag_t b) {
|
|||||||
return (a & 0x2) == (b & 0x2);
|
return (a & 0x2) == (b & 0x2);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO rm
|
static inline lfs_rtag_t lfs_rtag_weight(lfs_rtag_t tag) {
|
||||||
//static inline lfs_srtag_t lfs_rtag_weight(lfs_rtag_t tag) {
|
|
||||||
// return tag >> 3;
|
|
||||||
//}
|
|
||||||
|
|
||||||
static inline lfs_rtag_t lfs_rtag_weight_(lfs_rtag_t tag) {
|
|
||||||
return tag & ~0x7;
|
return tag & ~0x7;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline lfs_rtag_t lfs_rtag_merge(lfs_rtag_t a, lfs_rtag_t b) {
|
static inline bool lfs_rtag_follow(lfs_rtag_t alt,
|
||||||
return a + (b & ~0x7);
|
|
||||||
}
|
|
||||||
|
|
||||||
//static inline lfs_srtag_t lfs_rtag_weight_lt(lfs_rtag_t tag, uint16_t count) {
|
|
||||||
// (void)count;
|
|
||||||
// return lfs_rtag_weight(tag);
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//static inline lfs_srtag_t lfs_rtag_weight_gt(lfs_rtag_t tag, uint16_t count) {
|
|
||||||
// return (((lfs_srtag_t)count) << 12)-1 - lfs_rtag_weight(tag);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//static inline bool lfs_rtag_follow(lfs_rtag_t alt,
|
|
||||||
// lfs_srtag_t lt, lfs_srtag_t gt) {
|
|
||||||
// if (lfs_rtag_islt(alt)) {
|
|
||||||
// return lfs_rtag_weight(alt) > lt;
|
|
||||||
// } else {
|
|
||||||
// return lfs_rtag_weight(alt) > gt;
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
|
|
||||||
static inline bool lfs_rtag_follow_(lfs_rtag_t alt,
|
|
||||||
lfs_rtag_t lower, lfs_rtag_t upper, lfs_rtag_t tag) {
|
lfs_rtag_t lower, lfs_rtag_t upper, lfs_rtag_t tag) {
|
||||||
// TODO should we expect weight as an argument here?
|
|
||||||
if (lfs_rtag_isgt(alt)) {
|
if (lfs_rtag_isgt(alt)) {
|
||||||
return tag >= upper - lfs_rtag_weight_(alt);
|
return tag >= upper - lfs_rtag_weight(alt);
|
||||||
} else {
|
} else {
|
||||||
return tag < lower + lfs_rtag_weight_(alt);
|
return tag < lower + lfs_rtag_weight(alt);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//static inline lfs_rtag_t lfs_rtag_flip(
|
static inline lfs_rtag_t lfs_rtag_flip(lfs_rtag_t alt,
|
||||||
// lfs_rtag_t alt, lfs_rtag_t lt, lfs_rtag_t gt) {
|
|
||||||
// return LFS_MKRALT_(
|
|
||||||
// lfs_rtag_isred(alt),
|
|
||||||
// !lfs_rtag_isgt(alt),
|
|
||||||
// (lt+gt+1) - lfs_rtag_weight(alt));
|
|
||||||
//}
|
|
||||||
|
|
||||||
static inline lfs_rtag_t lfs_rtag_flip_(lfs_rtag_t alt,
|
|
||||||
lfs_rtag_t lower, lfs_rtag_t upper) {
|
lfs_rtag_t lower, lfs_rtag_t upper) {
|
||||||
return LFS_MKRALT___(
|
return LFS_MKRALT_(
|
||||||
lfs_rtag_isred(alt),
|
lfs_rtag_isred(alt),
|
||||||
!lfs_rtag_isgt(alt),
|
!lfs_rtag_isgt(alt),
|
||||||
(upper-lower) - lfs_rtag_weight_(alt));
|
(upper-lower) - lfs_rtag_weight(alt));
|
||||||
}
|
}
|
||||||
|
|
||||||
//static inline void lfs_rtag_trim(lfs_rtag_t alt,
|
static inline void lfs_rtag_trim(lfs_rtag_t alt,
|
||||||
// lfs_srtag_t *lt, lfs_srtag_t *gt) {
|
|
||||||
// if (lfs_rtag_islt(alt)) {
|
|
||||||
// *lt = *lt - lfs_rtag_weight(alt);
|
|
||||||
// } else {
|
|
||||||
// *gt = *gt - lfs_rtag_weight(alt);
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
|
|
||||||
static inline void lfs_rtag_trim_(lfs_rtag_t alt,
|
|
||||||
lfs_rtag_t *lower, lfs_rtag_t *upper) {
|
lfs_rtag_t *lower, lfs_rtag_t *upper) {
|
||||||
if (lfs_rtag_isgt(alt)) {
|
if (lfs_rtag_isgt(alt)) {
|
||||||
*upper -= lfs_rtag_weight_(alt);
|
*upper -= lfs_rtag_weight(alt);
|
||||||
} else {
|
} else {
|
||||||
*lower += lfs_rtag_weight_(alt);
|
*lower += lfs_rtag_weight(alt);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//static inline void lfs_rtag_untrim(lfs_rtag_t alt,
|
static inline void lfs_rtag_untrim(lfs_rtag_t alt,
|
||||||
// lfs_srtag_t *lt, lfs_srtag_t *gt) {
|
|
||||||
// if (lfs_rtag_islt(alt)) {
|
|
||||||
// *lt = *lt + lfs_rtag_weight(alt);
|
|
||||||
// } else {
|
|
||||||
// *gt = *gt + lfs_rtag_weight(alt);
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
|
|
||||||
static inline void lfs_rtag_untrim_(lfs_rtag_t alt,
|
|
||||||
lfs_rtag_t *lower, lfs_rtag_t *upper) {
|
lfs_rtag_t *lower, lfs_rtag_t *upper) {
|
||||||
if (lfs_rtag_isgt(alt)) {
|
if (lfs_rtag_isgt(alt)) {
|
||||||
*upper += lfs_rtag_weight_(alt);
|
*upper += lfs_rtag_weight(alt);
|
||||||
} else {
|
} else {
|
||||||
*lower -= lfs_rtag_weight_(alt);
|
*lower -= lfs_rtag_weight(alt);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1300,13 +1237,13 @@ static lfs_srtag_t lfs_rbyd_lookup(lfs_t *lfs, const lfs_rbyd_t *rbyd,
|
|||||||
|
|
||||||
// found an alt?
|
// found an alt?
|
||||||
if (lfs_rtag_isalt(alt)) {
|
if (lfs_rtag_isalt(alt)) {
|
||||||
if (lfs_rtag_follow_(alt, lower, upper, tag)) {
|
if (lfs_rtag_follow(alt, lower, upper, tag)) {
|
||||||
lfs_rtag_trim_(
|
lfs_rtag_trim(
|
||||||
lfs_rtag_flip_(alt, lower, upper),
|
lfs_rtag_flip(alt, lower, upper),
|
||||||
&lower, &upper);
|
&lower, &upper);
|
||||||
branch = branch - jump;
|
branch = branch - jump;
|
||||||
} else {
|
} else {
|
||||||
lfs_rtag_trim_(alt, &lower, &upper);
|
lfs_rtag_trim(alt, &lower, &upper);
|
||||||
branch = branch + delta;
|
branch = branch + delta;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1582,9 +1519,9 @@ static int lfs_rbyd_append(lfs_t *lfs, lfs_rbyd_t *rbyd_,
|
|||||||
|
|
||||||
// do bounds want to take different paths? begin cutting
|
// do bounds want to take different paths? begin cutting
|
||||||
if (!diverged
|
if (!diverged
|
||||||
&& lfs_rtag_follow_(alt,
|
&& lfs_rtag_follow(alt,
|
||||||
lower_lower, lower_upper, lower_tag_)
|
lower_lower, lower_upper, lower_tag_)
|
||||||
!= lfs_rtag_follow_(alt,
|
!= lfs_rtag_follow(alt,
|
||||||
lower_lower, lower_upper, upper_tag_)) {
|
lower_lower, lower_upper, upper_tag_)) {
|
||||||
diverged = true;
|
diverged = true;
|
||||||
upper_branch = lower_branch;
|
upper_branch = lower_branch;
|
||||||
@@ -1603,21 +1540,21 @@ static int lfs_rbyd_append(lfs_t *lfs, lfs_rbyd_t *rbyd_,
|
|||||||
// | | .----'| | .----'| |
|
// | | .----'| | .----'| |
|
||||||
// 1 2 3 4 4 1 2 3 4 4 2
|
// 1 2 3 4 4 1 2 3 4 4 2
|
||||||
bool prune = false;
|
bool prune = false;
|
||||||
if (lfs_rtag_weight_(alt) >= (lower_upper-lower_lower)) {
|
if (lfs_rtag_weight(alt) >= (lower_upper-lower_lower)) {
|
||||||
prune = true;
|
prune = true;
|
||||||
// cut while following
|
// cut while following
|
||||||
} else if (diverged
|
} else if (diverged
|
||||||
&& lfs_rtag_follow_(alt, lower_lower, lower_upper, lower_tag_)
|
&& lfs_rtag_follow(alt, lower_lower, lower_upper, lower_tag_)
|
||||||
&& (lower_tag_ < upper_tag_) == lfs_rtag_islt(alt)) {
|
&& (lower_tag_ < upper_tag_) == lfs_rtag_islt(alt)) {
|
||||||
lfs_rtag_trim_(
|
lfs_rtag_trim(
|
||||||
lfs_rtag_flip_(alt, lower_lower, lower_upper),
|
lfs_rtag_flip(alt, lower_lower, lower_upper),
|
||||||
&lower_lower, &lower_upper);
|
&lower_lower, &lower_upper);
|
||||||
prune = true;
|
prune = true;
|
||||||
// cut while not following
|
// cut while not following
|
||||||
} else if (diverged
|
} else if (diverged
|
||||||
&& !lfs_rtag_follow_(alt, lower_lower, lower_upper, lower_tag_)
|
&& !lfs_rtag_follow(alt, lower_lower, lower_upper, lower_tag_)
|
||||||
&& (lower_tag_ < upper_tag_) != lfs_rtag_islt(alt)) {
|
&& (lower_tag_ < upper_tag_) != lfs_rtag_islt(alt)) {
|
||||||
lfs_rtag_trim_(alt, &lower_lower, &lower_upper);
|
lfs_rtag_trim(alt, &lower_lower, &lower_upper);
|
||||||
lfs_swap(&jump, &branch_);
|
lfs_swap(&jump, &branch_);
|
||||||
prune = true;
|
prune = true;
|
||||||
}
|
}
|
||||||
@@ -1629,7 +1566,7 @@ static int lfs_rbyd_append(lfs_t *lfs, lfs_rbyd_t *rbyd_,
|
|||||||
jump = p_jumps[0];
|
jump = p_jumps[0];
|
||||||
lfs_rbyd_p_pop(p_alts, p_jumps);
|
lfs_rbyd_p_pop(p_alts, p_jumps);
|
||||||
|
|
||||||
lfs_rtag_untrim_(alt, &lower_lower, &lower_upper);
|
lfs_rtag_untrim(alt, &lower_lower, &lower_upper);
|
||||||
} else {
|
} else {
|
||||||
lower_branch = jump;
|
lower_branch = jump;
|
||||||
continue;
|
continue;
|
||||||
@@ -1651,18 +1588,18 @@ static int lfs_rbyd_append(lfs_t *lfs, lfs_rbyd_t *rbyd_,
|
|||||||
// | | <b | <b |
|
// | | <b | <b |
|
||||||
// | | .-'| | .-'| |
|
// | | .-'| | .-'| |
|
||||||
// 1 2 3 4 1 2 3 4 1
|
// 1 2 3 4 1 2 3 4 1
|
||||||
if (lfs_rtag_follow_(alt,
|
if (lfs_rtag_follow(alt,
|
||||||
lower_lower, lower_upper, lower_tag_)) {
|
lower_lower, lower_upper, lower_tag_)) {
|
||||||
lfs_swap(&alt, &p_alts[0]);
|
lfs_swap(&alt, &p_alts[0]);
|
||||||
lfs_swap(&jump, &branch_);
|
lfs_swap(&jump, &branch_);
|
||||||
lfs_swap(&jump, &p_jumps[0]);
|
lfs_swap(&jump, &p_jumps[0]);
|
||||||
p_alts[0] = lfs_rtag_black(
|
p_alts[0] = lfs_rtag_black(
|
||||||
lfs_rtag_flip_(p_alts[0],
|
lfs_rtag_flip(p_alts[0],
|
||||||
lower_lower, lower_upper));
|
lower_lower, lower_upper));
|
||||||
alt = lfs_rtag_black(alt);
|
alt = lfs_rtag_black(alt);
|
||||||
|
|
||||||
lfs_rtag_untrim_(alt, &lower_lower, &lower_upper);
|
lfs_rtag_untrim(alt, &lower_lower, &lower_upper);
|
||||||
lfs_rtag_trim_(p_alts[0], &lower_lower, &lower_upper);
|
lfs_rtag_trim(p_alts[0], &lower_lower, &lower_upper);
|
||||||
lfs_rbyd_p_red(p_alts, p_jumps);
|
lfs_rbyd_p_red(p_alts, p_jumps);
|
||||||
|
|
||||||
// otherwise we need to point to the yellow alt and
|
// otherwise we need to point to the yellow alt and
|
||||||
@@ -1679,10 +1616,10 @@ static int lfs_rbyd_append(lfs_t *lfs, lfs_rbyd_t *rbyd_,
|
|||||||
} else {
|
} else {
|
||||||
LFS_ASSERT(graft != 0);
|
LFS_ASSERT(graft != 0);
|
||||||
p_alts[0] = lfs_rtag_black(
|
p_alts[0] = lfs_rtag_black(
|
||||||
lfs_rtag_merge(alt, p_alts[0]));
|
alt + lfs_rtag_weight(p_alts[0]));
|
||||||
p_jumps[0] = graft;
|
p_jumps[0] = graft;
|
||||||
|
|
||||||
lfs_rtag_trim_(alt, &lower_lower, &lower_upper);
|
lfs_rtag_trim(alt, &lower_lower, &lower_upper);
|
||||||
lfs_rbyd_p_red(p_alts, p_jumps);
|
lfs_rbyd_p_red(p_alts, p_jumps);
|
||||||
|
|
||||||
lower_branch = branch_;
|
lower_branch = branch_;
|
||||||
@@ -1695,9 +1632,9 @@ static int lfs_rbyd_append(lfs_t *lfs, lfs_rbyd_t *rbyd_,
|
|||||||
// .-'| => .-'|
|
// .-'| => .-'|
|
||||||
// 1 2 1 2 1
|
// 1 2 1 2 1
|
||||||
if (lfs_rtag_isblack(alt)
|
if (lfs_rtag_isblack(alt)
|
||||||
&& lfs_rtag_follow_(alt,
|
&& lfs_rtag_follow(alt,
|
||||||
lower_lower, lower_upper, lower_tag_)) {
|
lower_lower, lower_upper, lower_tag_)) {
|
||||||
alt = lfs_rtag_flip_(alt, lower_lower, lower_upper);
|
alt = lfs_rtag_flip(alt, lower_lower, lower_upper);
|
||||||
lfs_swap(&jump, &branch_);
|
lfs_swap(&jump, &branch_);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1708,8 +1645,8 @@ static int lfs_rbyd_append(lfs_t *lfs, lfs_rbyd_t *rbyd_,
|
|||||||
// | .-'| .--|-'|
|
// | .-'| .--|-'|
|
||||||
// 1 2 3 1 2 3 1
|
// 1 2 3 1 2 3 1
|
||||||
if (p_alts[0]
|
if (p_alts[0]
|
||||||
&& lfs_rtag_follow_(
|
&& lfs_rtag_follow(
|
||||||
p_alts[0] - lfs_rtag_weight_(p_alts[0]),
|
p_alts[0] - lfs_rtag_weight(p_alts[0]),
|
||||||
lower_lower, lower_upper, lower_tag_)) {
|
lower_lower, lower_upper, lower_tag_)) {
|
||||||
LFS_ASSERT(lfs_rtag_isred(p_alts[0]));
|
LFS_ASSERT(lfs_rtag_isred(p_alts[0]));
|
||||||
LFS_ASSERT(lfs_rtag_isblack(alt));
|
LFS_ASSERT(lfs_rtag_isblack(alt));
|
||||||
@@ -1719,10 +1656,10 @@ static int lfs_rbyd_append(lfs_t *lfs, lfs_rbyd_t *rbyd_,
|
|||||||
p_alts[0] = lfs_rtag_red(p_alts[0]);
|
p_alts[0] = lfs_rtag_red(p_alts[0]);
|
||||||
alt = lfs_rtag_black(alt);
|
alt = lfs_rtag_black(alt);
|
||||||
|
|
||||||
lfs_rtag_untrim_(alt, &lower_lower, &lower_upper);
|
lfs_rtag_untrim(alt, &lower_lower, &lower_upper);
|
||||||
lfs_rtag_trim_(p_alts[0], &lower_lower, &lower_upper);
|
lfs_rtag_trim(p_alts[0], &lower_lower, &lower_upper);
|
||||||
|
|
||||||
alt = lfs_rtag_flip_(alt, lower_lower, lower_upper);
|
alt = lfs_rtag_flip(alt, lower_lower, lower_upper);
|
||||||
lfs_swap(&jump, &branch_);
|
lfs_swap(&jump, &branch_);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1735,7 +1672,7 @@ static int lfs_rbyd_append(lfs_t *lfs, lfs_rbyd_t *rbyd_,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// continue to next alt
|
// continue to next alt
|
||||||
lfs_rtag_trim_(alt, &lower_lower, &lower_upper);
|
lfs_rtag_trim(alt, &lower_lower, &lower_upper);
|
||||||
graft = lower_branch;
|
graft = lower_branch;
|
||||||
lower_branch = branch_;
|
lower_branch = branch_;
|
||||||
|
|
||||||
@@ -1781,44 +1718,44 @@ stem:;
|
|||||||
if (lfs_rtag_isrm(lower_tag_)) {
|
if (lfs_rtag_isrm(lower_tag_)) {
|
||||||
// no split needed, prune the removed tag
|
// no split needed, prune the removed tag
|
||||||
|
|
||||||
} else if (lfs_rtag_weight_(lower_tag_) < lfs_rtag_weight_(tag)) {
|
} else if (lfs_rtag_weight(lower_tag_) < lfs_rtag_weight(tag)) {
|
||||||
// split less than, this is consistent for all appends and only happens
|
// split less than, this is consistent for all appends and only happens
|
||||||
// when appending to the end of the tree
|
// when appending to the end of the tree
|
||||||
alt = LFS_MKRALT__(B, LT,
|
alt = LFS_MKRALT(B, LT,
|
||||||
(lfs_rtag_weight_(lower_tag_)+0x8) - lower_lower);
|
(lfs_rtag_weight(lower_tag_)+0x8) - lower_lower);
|
||||||
jump = lower_branch;
|
jump = lower_branch;
|
||||||
|
|
||||||
} else if (lfs_rtag_type1(tag) == LFS_TYPE1_CREATE) {
|
} else if (lfs_rtag_type1(tag) == LFS_TYPE1_CREATE) {
|
||||||
if (lfs_rtag_weight_(upper_tag_)
|
if (lfs_rtag_weight(upper_tag_)
|
||||||
>= lfs_rtag_weight_(tag & ~0x7fff)) {
|
>= lfs_rtag_weight(tag & ~0x7fff)) {
|
||||||
// increase biased weight when creating
|
// increase biased weight when creating
|
||||||
alt = LFS_MKRALT__(B, GT,
|
alt = LFS_MKRALT(B, GT,
|
||||||
(upper_upper+0x8000) - (lfs_rtag_weight_(tag)+0x8));
|
(upper_upper+0x8000) - (lfs_rtag_weight(tag)+0x8));
|
||||||
jump = upper_branch;
|
jump = upper_branch;
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (lfs_rtag_type1(tag) == LFS_TYPE1_DELETE) {
|
} else if (lfs_rtag_type1(tag) == LFS_TYPE1_DELETE) {
|
||||||
if (lfs_rtag_weight_(upper_tag_)
|
if (lfs_rtag_weight(upper_tag_)
|
||||||
>= lfs_rtag_weight_(tag & ~0x7fff)+0x8000) {
|
>= lfs_rtag_weight(tag & ~0x7fff)+0x8000) {
|
||||||
// decrease biased weight when deleting
|
// decrease biased weight when deleting
|
||||||
alt = LFS_MKRALT__(B, GT,
|
alt = LFS_MKRALT(B, GT,
|
||||||
upper_upper-0x8000 - lower_lower);
|
upper_upper-0x8000 - lower_lower);
|
||||||
jump = upper_branch;
|
jump = upper_branch;
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (lfs_rtag_isrm(tag)) {
|
} else if (lfs_rtag_isrm(tag)) {
|
||||||
if (lfs_rtag_weight_(upper_tag_) > lfs_rtag_weight_(tag)) {
|
if (lfs_rtag_weight(upper_tag_) > lfs_rtag_weight(tag)) {
|
||||||
// hide our tag during removes
|
// hide our tag during removes
|
||||||
alt = LFS_MKRALT__(B, GT,
|
alt = LFS_MKRALT(B, GT,
|
||||||
upper_upper - lower_lower);
|
upper_upper - lower_lower);
|
||||||
jump = upper_branch;
|
jump = upper_branch;
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
if (lfs_rtag_weight_(upper_tag_) > lfs_rtag_weight_(tag)) {
|
if (lfs_rtag_weight(upper_tag_) > lfs_rtag_weight(tag)) {
|
||||||
// split greater than
|
// split greater than
|
||||||
alt = LFS_MKRALT__(B, GT,
|
alt = LFS_MKRALT(B, GT,
|
||||||
upper_upper - (lfs_rtag_weight_(tag)+0x8));
|
upper_upper - (lfs_rtag_weight(tag)+0x8));
|
||||||
jump = upper_branch;
|
jump = upper_branch;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user