406 [34 'NIL] |
406 [34 'NIL] |
407 [35 (let@ [ctxref (build-jit-context-exp ip stack)] |
407 [35 (let@ [ctxref (build-jit-context-exp ip stack)] |
408 (translate ip (cons ctxref stack)))] |
408 (translate ip (cons ctxref stack)))] |
409 [36 (let@ [arr `(mkobj ARRAY ,@(reverse (take stack arg)))] |
409 [36 (let@ [arr `(mkobj ARRAY ,@(reverse (take stack arg)))] |
410 (translate ip (cons arr (drop stack arg))))] |
410 (translate ip (cons arr (drop stack arg))))] |
411 [_ (let@ [primresult (let ((generator (hash-ref *primitive-code-snippets* |
411 [_ (let ((generator (hash-ref *primitive-code-snippets* |
412 primitive-number |
412 primitive-number |
413 (lambda () |
413 (lambda () (error 'compile-native-proc |
414 (error 'compile-native-proc |
414 "Unknown primitive: ~a" |
415 "Unknown primitive: ~a" |
415 primitive-number))))) |
416 primitive-number))))) |
416 (let@ [primresult (generator 'vm (reverse (take stack arg)))] |
417 (generator 'vm (reverse (take stack arg))))] |
417 (translate ip (cons primresult (drop stack arg)))))])] |
418 (translate ip (cons primresult (drop stack arg))))])] |
|
419 [14 (let@ [clsvar `(slotAt (obj-class* vm self) ,(+ arg 5))] |
418 [14 (let@ [clsvar `(slotAt (obj-class* vm self) ,(+ arg 5))] |
420 (translate ip (cons clsvar stack)))] |
419 (translate ip (cons clsvar stack)))] |
421 [15 (match arg |
420 [15 (match arg |
422 [1 `(k self)] |
421 [1 `(k self)] |
423 [2 `(k ,(car stack))] |
422 [2 `(k ,(car stack))] |