projects
/
calu.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[bench] vm: shit ...
[calu.git]
/
3_test
/
deepjit.s
diff --git
a/3_test/deepjit.s
b/3_test/deepjit.s
index 83cf105df94ab080c07a821a04df2a3b92d0598f..8ae431d238497a7570438fbb2dd2e3afa9db2e88 100644
(file)
--- a/
3_test/deepjit.s
+++ b/
3_test/deepjit.s
@@
-505,11
+505,19
@@
vm_jmp:
;generate negativ offset
ldis r7, 0xFF00
;generate negativ offset
ldis r7, 0xFF00
- add r6, r3, r7
+ ;r6 is now the 'real' negativ number
+ or r6, r6, r7
+ ;multiply by to get the offset
+ lls r6, r6, 2
+ ;generate address in table
+ add r6, r3, r6
;r0 now has the target address
ldw r0, 0(r6)
;we calc the offset
;r0 now has the target address
ldw r0, 0(r6)
;we calc the offset
- sub r8, r8, r0
+ sub r8, r0, r2
+ ;we shift 2 bits out, because rel. br takes instr.
+ ;count and not address amount ...
+ lrs r8, r8, 2
;set the upper 16 bit 0
andx r8, 0xFFFF
;shift to the position of imm in br
;set the upper 16 bit 0
andx r8, 0xFFFF
;shift to the position of imm in br