Fix csa and csb.
This commit is contained in:
parent
9b0a1c1c10
commit
8c0b2f8aee
2 changed files with 5 additions and 5 deletions
|
@ -13,18 +13,18 @@
|
||||||
.define .csa
|
.define .csa
|
||||||
.csa:
|
.csa:
|
||||||
lw r4, 0(sp) /* r4 = table */
|
lw r4, 0(sp) /* r4 = table */
|
||||||
lw r5, 0(sp) /* r5 = value */
|
lw r5, 4(sp) /* r5 = value */
|
||||||
addiu sp, sp, 8
|
addiu sp, sp, 8
|
||||||
|
|
||||||
lw r6, 0(r4) /* r6 = default target */
|
lw r6, 0(r4) /* r6 = default target */
|
||||||
lw r7, 4(r4) /* r7 = lower bound */
|
lw r7, 4(r4) /* r7 = lower bound */
|
||||||
subu r5, r5, r6 /* adjust value */
|
subu r5, r5, r7 /* adjust value */
|
||||||
bltz r5, 1f /* jump to default if out of range */
|
bltz r5, 1f /* jump to default if out of range */
|
||||||
nop
|
nop
|
||||||
|
|
||||||
lw r7, 8(r4) /* fetch range */
|
lw r7, 8(r4) /* fetch range */
|
||||||
subu r7, r5, r7 /* compute (adjusted value - range) */
|
subu r7, r7, r5 /* compute difference within range */
|
||||||
blez r7, 1f /* jump to default if out of range */
|
bltz r7, 1f /* jump to default if out of range */
|
||||||
nop
|
nop
|
||||||
|
|
||||||
addiu r4, r4, 12 /* skip header */
|
addiu r4, r4, 12 /* skip header */
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
.define .csb
|
.define .csb
|
||||||
.csb:
|
.csb:
|
||||||
lw r4, 0(sp) ! r4 = address of table
|
lw r4, 0(sp) ! r4 = address of table
|
||||||
lw r5, 0(sp) ! r5 = value
|
lw r5, 4(sp) ! r5 = value
|
||||||
addiu sp, sp, 8
|
addiu sp, sp, 8
|
||||||
|
|
||||||
lw r6, 0(r4) ! r6 = default target
|
lw r6, 0(r4) ! r6 = default target
|
||||||
|
|
Loading…
Add table
Reference in a new issue