mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-24 12:20:20 +02:00
Add raw u8-ref, etc instructions
* libguile/vm-engine.c (PTR_REF, PTR_SET): New helper macros. (u8-ref, u16-ref, u32-ref, u64-ref, s8-ref, s16-ref, s32-ref, s64-ref) (u8-set!, u16-set!, u32-set!, u64-set!, s8-set!, s16-set!, s32-set!, s64-set!) (f32-ref, f64-ref, f32-set!, f64-set!): New instructions. * module/system/vm/assembler.scm: * module/language/cps/compile-bytecode.scm (compile-function): * module/language/cps/slot-allocation.scm (compute-var-representations): * module/language/cps/types.scm: Add optimizer and backend support for the new instructions.
This commit is contained in:
parent
d355b42a3e
commit
13cafca168
6 changed files with 209 additions and 20 deletions
|
@ -158,6 +158,27 @@
|
|||
emit-gc-pointer-ref/immediate
|
||||
emit-gc-pointer-set!/immediate
|
||||
|
||||
emit-u8-ref
|
||||
emit-s8-ref
|
||||
emit-u16-ref
|
||||
emit-s16-ref
|
||||
emit-u32-ref
|
||||
emit-s32-ref
|
||||
emit-u64-ref
|
||||
emit-s64-ref
|
||||
emit-f32-ref
|
||||
emit-f64-ref
|
||||
emit-u8-set!
|
||||
emit-s8-set!
|
||||
emit-u16-set!
|
||||
emit-s16-set!
|
||||
emit-u32-set!
|
||||
emit-s32-set!
|
||||
emit-u64-set!
|
||||
emit-s64-set!
|
||||
emit-f32-set!
|
||||
emit-f64-set!
|
||||
|
||||
emit-call
|
||||
emit-call-label
|
||||
emit-tail-call
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue