1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-15 08:10:17 +02:00

Compile fluid-set! to VM opcode

* libguile/vm-engine.c (fluid-set!): Fix name of opcode to correspond
  with name of Tree-IL primitive.  Fixes compilation of fluid-set! to
  actually use the fluid-set! opcode.
* doc/ref/vm.texi (Dynamic Environment Instructions): Update.
* module/language/cps/compile-bytecode.scm (compile-function): Add
  fluid-set! case.
* module/system/vm/assembler.scm: Update export name for
  emit-fluid-set!.
This commit is contained in:
Andy Wingo 2016-11-27 21:54:14 +01:00
parent 7b6b86f255
commit 8bd5dae8c3
4 changed files with 5 additions and 3 deletions

View file

@ -1196,7 +1196,7 @@ balanced with @code{pop-fluid}.
Reference the fluid in @var{src}, and place the value in @var{dst}.
@end deftypefn
@deftypefn Instruction {} fluid-set s12:@var{fluid} s12:@var{val}
@deftypefn Instruction {} fluid-set! s12:@var{fluid} s12:@var{val}
Set the value of the fluid in @var{dst} to the value in @var{src}.
@end deftypefn

View file

@ -2196,7 +2196,7 @@ VM_NAME (scm_i_thread *thread, struct scm_vm *vp,
*
* Set the value of the fluid in DST to the value in SRC.
*/
VM_DEFINE_OP (75, fluid_set, "fluid-set", OP1 (X8_S12_S12))
VM_DEFINE_OP (75, fluid_set, "fluid-set!", OP1 (X8_S12_S12))
{
scm_t_uint16 a, b;
size_t num;

View file

@ -364,6 +364,8 @@
(from-sp (slot val))))
(($ $primcall 'unwind ())
(emit-unwind asm))
(($ $primcall 'fluid-set! (fluid value))
(emit-fluid-set! asm (from-sp (slot fluid)) (from-sp (slot value))))
(($ $primcall 'atomic-box-set! (box val))
(emit-atomic-box-set! asm (from-sp (slot box)) (from-sp (slot val))))
(($ $primcall 'handle-interrupts ())

View file

@ -124,7 +124,7 @@
emit-pop-fluid
emit-current-thread
emit-fluid-ref
emit-fluid-set
emit-fluid-set!
emit-string-length
emit-string-ref
emit-string->number