projects
/
calu.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
5bce283
)
[bench] vm: shit ...
author
Martin Perner
<martin@perner.cc>
Tue, 21 Dec 2010 12:04:49 +0000
(13:04 +0100)
committer
Martin Perner
<martin@perner.cc>
Tue, 21 Dec 2010 15:30:39 +0000
(16:30 +0100)
3_test/deepjit.s
patch
|
blob
|
history
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