Moved DoubleLoadStorageHandler to end of functions, improve fast path l8ui performance
This allows a conditional branch that previously required a full jump instruction not to require it.
This commit is contained in:
parent
9cd23e08a4
commit
f47aa77982
1 changed files with 9 additions and 9 deletions
|
@ -94,15 +94,6 @@ InnerLoadStoreExceptionHandler:
|
||||||
rfe
|
rfe
|
||||||
|
|
||||||
|
|
||||||
.literal_position
|
|
||||||
/* "Fix" LoadStoreException exceptions that are l8/l16 from an Instruction region,
|
|
||||||
DoubleException exception variant (ie load happened in a level1 exception handler). */
|
|
||||||
DoubleExceptionLoadStoreHandler:
|
|
||||||
addi sp, sp, -0x18
|
|
||||||
s32i a2, sp, 0x08
|
|
||||||
rsr.epc2 a2
|
|
||||||
j InnerLoadStoreExceptionHandler
|
|
||||||
|
|
||||||
/* Check the load instruction a2 for an l16si/16ui instruction
|
/* Check the load instruction a2 for an l16si/16ui instruction
|
||||||
|
|
||||||
First test for a signed vs unsigned load.
|
First test for a signed vs unsigned load.
|
||||||
|
@ -187,4 +178,13 @@ DoubleExceptionLoadStoreHandler:
|
||||||
wsr.excsave1 a4
|
wsr.excsave1 a4
|
||||||
j .Lafter_write_value
|
j .Lafter_write_value
|
||||||
|
|
||||||
|
.literal_position
|
||||||
|
/* "Fix" LoadStoreException exceptions that are l8/l16 from an Instruction region,
|
||||||
|
DoubleException exception variant (ie load happened in a level1 exception handler). */
|
||||||
|
DoubleExceptionLoadStoreHandler:
|
||||||
|
addi sp, sp, -0x18
|
||||||
|
s32i a2, sp, 0x08
|
||||||
|
rsr.epc2 a2
|
||||||
|
j InnerLoadStoreExceptionHandler
|
||||||
|
|
||||||
/* End of InnerUserLoadStoreExceptionHandler */
|
/* End of InnerUserLoadStoreExceptionHandler */
|
||||||
|
|
Loading…
Reference in a new issue