|
| 1 | +(module hub) |
| 2 | + |
| 3 | +;;;;;;;;;;;;;;;;;;;;;;;; |
| 4 | +;;;;;;;;;;;;;;;;;;;;;;;; |
| 5 | +;;;; ;;;; |
| 6 | +;;;; X.Y CALL ;;;; |
| 7 | +;;;; ;;;; |
| 8 | +;;;;;;;;;;;;;;;;;;;;;;;; |
| 9 | +;;;;;;;;;;;;;;;;;;;;;;;; |
| 10 | + |
| 11 | + |
| 12 | +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
| 13 | +;; ;; |
| 14 | +;; X.Y.Z.4 MODEXP common processing ;; |
| 15 | +;; ;; |
| 16 | +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
| 17 | + |
| 18 | + |
| 19 | +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
| 20 | +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; |
| 21 | +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ebs extraction and analysis row ;; |
| 22 | +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; |
| 23 | +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
| 24 | + |
| 25 | + |
| 26 | +(defconstraint precompile-processing---MODEXP---ebs-extraction-and-analysis---setting-misc-module-flags |
| 27 | + (:guard (precompile-processing---MODEXP---standard-precondition)) |
| 28 | + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
| 29 | + (eq! (weighted-MISC-flag-sum precompile-processing---MODEXP---misc-row-offset---ebs-extraction-and-analysis) |
| 30 | + (+ (* MISC_WEIGHT_MMU (precompile-processing---MODEXP---extract-ebs)) |
| 31 | + MISC_WEIGHT_OOB) |
| 32 | + )) |
| 33 | + |
| 34 | + |
| 35 | +(defconstraint precompile-processing---MODEXP---ebs-extraction-and-analysis---setting-MMU-instruction |
| 36 | + (:guard (precompile-processing---MODEXP---standard-precondition)) |
| 37 | + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
| 38 | + (if-not-zero (shift misc/MMU_FLAG precompile-processing---MODEXP---misc-row-offset---ebs-extraction-and-analysis) |
| 39 | + (set-MMU-instruction---right-padded-word-extraction precompile-processing---MODEXP---misc-row-offset---ebs-extraction-and-analysis ;; offset |
| 40 | + CONTEXT_NUMBER ;; source ID |
| 41 | + ;; tgt_id ;; target ID |
| 42 | + ;; aux_id ;; auxiliary ID |
| 43 | + ;; src_offset_hi ;; source offset high |
| 44 | + 32 ;; source offset low |
| 45 | + ;; tgt_offset_lo ;; target offset low |
| 46 | + ;; size ;; size |
| 47 | + (precompile-processing---dup-cdo) ;; reference offset |
| 48 | + (precompile-processing---dup-cds) ;; reference size |
| 49 | + ;; success_bit ;; success bit |
| 50 | + (shift misc/MMU_LIMB_1 precompile-processing---MODEXP---misc-row-offset---ebs-extraction-and-analysis) ;; limb 1 ;; TODO: remove SELF REFERENCE |
| 51 | + (shift misc/MMU_LIMB_2 precompile-processing---MODEXP---misc-row-offset---ebs-extraction-and-analysis) ;; limb 2 ;; TODO: remove SELF REFERENCE |
| 52 | + ;; exo_sum ;; weighted exogenous module flag sum |
| 53 | + ;; phase ;; phase |
| 54 | + ))) |
| 55 | + |
| 56 | + |
| 57 | +(defun (precompile-processing---MODEXP---ebs-hi) (* (precompile-processing---MODEXP---extract-ebs) (shift misc/MMU_LIMB_1 precompile-processing---MODEXP---misc-row-offset---ebs-extraction-and-analysis))) |
| 58 | +(defun (precompile-processing---MODEXP---ebs-lo) (* (precompile-processing---MODEXP---extract-ebs) (shift misc/MMU_LIMB_2 precompile-processing---MODEXP---misc-row-offset---ebs-extraction-and-analysis))) |
| 59 | + |
| 60 | + |
| 61 | +(defconstraint precompile-processing---MODEXP---ebs-extraction-and-analysis---setting-OOB-instruction |
| 62 | + (:guard (precompile-processing---MODEXP---standard-precondition)) |
| 63 | + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
| 64 | + (set-OOB-instruction---modexp-xbs precompile-processing---MODEXP---misc-row-offset---ebs-extraction-and-analysis ;; offset |
| 65 | + (precompile-processing---MODEXP---ebs-hi) ;; high part of some {b,e,m}bs |
| 66 | + (precompile-processing---MODEXP---ebs-lo) ;; low part of some {b,e,m}bs |
| 67 | + 0 ;; low part of some {b,e,m}bs |
| 68 | + 0 ;; bit indicating whether to compute max(xbs, ybs) or not |
| 69 | + )) |
| 70 | + |
| 71 | + |
| 72 | +(defun (precompile-processing---MODEXP---ebs-within-bounds) (shift [misc/OOB_DATA 9] precompile-processing---MODEXP---misc-row-offset---ebs-extraction-and-analysis)) |
| 73 | +(defun (precompile-processing---MODEXP---ebs-out-of-bounds) (shift [misc/OOB_DATA 10] precompile-processing---MODEXP---misc-row-offset---ebs-extraction-and-analysis)) ;; "" |
| 74 | +(defun (precompile-processing---MODEXP---ebs-normalized) (* (precompile-processing---MODEXP---ebs-lo) |
| 75 | + (precompile-processing---MODEXP---ebs-within-bounds))) |
0 commit comments