X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Ffop.lisp;h=ea97330b48add66999485eaee4e49f7e2da07a9c;hb=75b52379bdc2269961af6a1308eca63610f38ac3;hp=74b5984293f26282ed219931f1759054fe56da82;hpb=e6c468c2b371f7deac2010cf03896a60974ea766;p=sbcl.git diff --git a/src/code/fop.lisp b/src/code/fop.lisp index 74b5984..ea97330 100644 --- a/src/code/fop.lisp +++ b/src/code/fop.lisp @@ -629,6 +629,12 @@ bug.~:@>") ;;;; assemblerish fops +(define-fop (fop-assembler-code 144) + (error "cannot load assembler code except at cold load")) + +(define-fop (fop-assembler-routine 145) + (error "cannot load assembler code except at cold load")) + (define-fop (fop-foreign-fixup 147) (let* ((kind (pop-stack)) (code-object (pop-stack)) @@ -641,12 +647,6 @@ bug.~:@>") kind) code-object)) -(define-fop (fop-assembler-code 144) - (error "cannot load assembler code except at cold load")) - -(define-fop (fop-assembler-routine 145) - (error "cannot load assembler code except at cold load")) - (define-fop (fop-assembler-fixup 148) (let ((routine (pop-stack)) (kind (pop-stack)) @@ -666,3 +666,16 @@ bug.~:@>") (sb!vm:fixup-code-object code-object (read-word-arg) (get-lisp-obj-address code-object) kind) code-object)) + +#!+linkage-table +(define-fop (fop-foreign-dataref-fixup 150) + (let* ((kind (pop-stack)) + (code-object (pop-stack)) + (len (read-byte-arg)) + (sym (make-string len))) + (read-n-bytes *fasl-input-stream* sym 0 len) + (sb!vm:fixup-code-object code-object + (read-word-arg) + (foreign-symbol-address-as-integer sym t) + kind) + code-object))