亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? arith.lisp

?? 開源跨平臺Lisp編譯器
?? LISP
字號:
;;;; stuff to handle simple cases for generic arithmetic;;;; This software is part of the SBCL system. See the README file for;;;; more information.;;;;;;;; This software is derived from the CMU CL system, which was;;;; written at Carnegie Mellon University and released into the;;;; public domain. The software is in the public domain and is;;;; provided with absolutely no warranty. See the COPYING and CREDITS;;;; files for more information.(in-package "SB!VM")(define-assembly-routine (generic-+                          (:cost 10)                          (:return-style :full-call)                          (:translate +)                          (:policy :safe)                          (:save-p t))                         ((:arg x (descriptor-reg any-reg) a0-offset)                          (:arg y (descriptor-reg any-reg) a1-offset)                          (:res res (descriptor-reg any-reg) a0-offset)                          (:temp temp non-descriptor-reg nl0-offset)                          (:temp temp2 non-descriptor-reg nl1-offset)                          (:temp temp3 non-descriptor-reg nl2-offset)                          (:temp lip interior-reg lip-offset)                          (:temp lra descriptor-reg lra-offset)                          (:temp nargs any-reg nargs-offset)                          (:temp ocfp any-reg ocfp-offset))  (inst and x 3 temp)  (inst bne temp DO-STATIC-FUN)  (inst and y 3 temp)  (inst bne temp DO-STATIC-FUN)  (inst addq x y res)  ; Check whether we need a bignum.  (inst sra res 31 temp)  (inst beq temp DONE)  (inst not temp temp)  (inst beq temp DONE)  (inst sra res 2 temp3)  ; from move-from-signed  (inst li 2 temp2)  (inst sra temp3 31 temp)  (inst cmoveq temp 1 temp2)  (inst not temp temp)  (inst cmoveq temp 1 temp2)  (inst sll temp2 n-widetag-bits temp2)  (inst bis temp2 bignum-widetag temp2)  (pseudo-atomic (:extra (pad-data-block (+ bignum-digits-offset 3)))    (inst bis alloc-tn other-pointer-lowtag res)    (storew temp2 res 0 other-pointer-lowtag)    (storew temp3 res bignum-digits-offset other-pointer-lowtag)    (inst srl temp3 32 temp)    (storew temp res (1+ bignum-digits-offset) other-pointer-lowtag))  DONE  (lisp-return lra lip :offset 2)  DO-STATIC-FUN  (inst ldl lip (static-fun-offset 'two-arg-+) null-tn)  (inst li (fixnumize 2) nargs)  (inst move cfp-tn ocfp)  (inst move csp-tn cfp-tn)  (inst jmp zero-tn lip))(define-assembly-routine (generic--                          (:cost 10)                          (:return-style :full-call)                          (:translate -)                          (:policy :safe)                          (:save-p t))                         ((:arg x (descriptor-reg any-reg) a0-offset)                          (:arg y (descriptor-reg any-reg) a1-offset)                          (:res res (descriptor-reg any-reg) a0-offset)                          (:temp temp non-descriptor-reg nl0-offset)                          (:temp temp2 non-descriptor-reg nl1-offset)                          (:temp temp3 non-descriptor-reg nl2-offset)                          (:temp lip interior-reg lip-offset)                          (:temp lra descriptor-reg lra-offset)                          (:temp nargs any-reg nargs-offset)                          (:temp ocfp any-reg ocfp-offset))  (inst and x 3 temp)  (inst bne temp DO-STATIC-FUN)  (inst and y 3 temp)  (inst bne temp DO-STATIC-FUN)  (inst subq x y res)  ; Check whether we need a bignum.  (inst sra res 31 temp)  (inst beq temp DONE)  (inst not temp temp)  (inst beq temp DONE)  (inst sra res 2 temp3)  ; from move-from-signed  (inst li 2 temp2)  (inst sra temp3 31 temp)  (inst cmoveq temp 1 temp2)  (inst not temp temp)  (inst cmoveq temp 1 temp2)  (inst sll temp2 n-widetag-bits temp2)  (inst bis temp2 bignum-widetag temp2)  (pseudo-atomic (:extra (pad-data-block (+ bignum-digits-offset 3)))    (inst bis alloc-tn other-pointer-lowtag res)    (storew temp2 res 0 other-pointer-lowtag)    (storew temp3 res bignum-digits-offset other-pointer-lowtag)    (inst srl temp3 32 temp)    (storew temp res (1+ bignum-digits-offset) other-pointer-lowtag))  DONE  (lisp-return lra lip :offset 2)  DO-STATIC-FUN  (inst ldl lip (static-fun-offset 'two-arg--) null-tn)  (inst li (fixnumize 2) nargs)  (inst move cfp-tn ocfp)  (inst move csp-tn cfp-tn)  (inst jmp zero-tn lip))(define-assembly-routine (generic-*                          (:cost 25)                          (:return-style :full-call)                          (:translate *)                          (:policy :safe)                          (:save-p t))                         ((:arg x (descriptor-reg any-reg) a0-offset)                          (:arg y (descriptor-reg any-reg) a1-offset)                          (:res res (descriptor-reg any-reg) a0-offset)                          (:temp temp non-descriptor-reg nl0-offset)                          (:temp lo non-descriptor-reg nl1-offset)                          (:temp hi non-descriptor-reg nl2-offset)                          (:temp temp2 non-descriptor-reg nl3-offset)                          (:temp lip interior-reg lip-offset)                          (:temp lra descriptor-reg lra-offset)                          (:temp nargs any-reg nargs-offset)                          (:temp ocfp any-reg ocfp-offset))  ;; If either arg is not a fixnum, call the static function.  (inst and x 3 temp)  (inst bne temp DO-STATIC-FUN)  (inst and y 3 temp)  (inst bne temp DO-STATIC-FUN)  ;; Remove the tag from one arg so that the result will have the  ;; correct fixnum tag.  (inst sra x 2 temp)  (inst mulq temp y lo)  (inst sra lo 32 hi)  (inst sll lo 32 res)  (inst sra res 32 res)  ;; Check to see if the result will fit in a fixnum. (I.e. the high  ;; word is just 32 copies of the sign bit of the low word).  (inst sra res 31 temp)  (inst xor hi temp temp)  (inst beq temp DONE)  ;; Shift the double word hi:res down two bits into hi:low to get rid  ;; of the fixnum tag.  (inst sra lo 2 lo)  (inst sra lo 32 hi)  ;; Do we need one word or two?  Assume two.  (inst li (logior (ash 2 n-widetag-bits) bignum-widetag) temp2)  (inst sra lo 31 temp)  (inst xor temp hi temp)  (inst bne temp two-words)  ;; Only need one word, fix the header.  (inst li (logior (ash 1 n-widetag-bits) bignum-widetag) temp2)  ;; Allocate one word.  (pseudo-atomic (:extra (pad-data-block (1+ bignum-digits-offset)))    (inst bis alloc-tn other-pointer-lowtag res)    (storew temp2 res 0 other-pointer-lowtag))  ;; Store one word  (storew lo res bignum-digits-offset other-pointer-lowtag)  ;; Out of here  (lisp-return lra lip :offset 2)  TWO-WORDS  ;; Allocate two words.  (pseudo-atomic (:extra (pad-data-block (+ 2 bignum-digits-offset)))    (inst bis alloc-tn other-pointer-lowtag res)    (storew temp2 res 0 other-pointer-lowtag))  ;; Store two words.  (storew lo res bignum-digits-offset other-pointer-lowtag)  (storew hi res (1+ bignum-digits-offset) other-pointer-lowtag)  ;; out of here  (lisp-return lra lip :offset 2)  DO-STATIC-FUN  (inst ldl lip (static-fun-offset 'two-arg-*) null-tn)  (inst li (fixnumize 2) nargs)  (inst move cfp-tn ocfp)  (inst move csp-tn cfp-tn)  (inst jmp zero-tn lip)  DONE);;;; division(define-assembly-routine (signed-truncate                          (:note "(signed-byte 64) truncate")                          (:cost 60)                          (:policy :fast-safe)                          (:translate truncate)                          (:arg-types signed-num signed-num)                          (:result-types signed-num signed-num))                         ((:arg dividend signed-reg nl0-offset)                          (:arg divisor signed-reg nl1-offset)                          (:res quo signed-reg nl2-offset)                          (:res rem signed-reg nl3-offset)                          (:temp quo-sign signed-reg nl5-offset)                          (:temp rem-sign signed-reg nargs-offset)                          (:temp temp1 non-descriptor-reg nl4-offset))  (let ((error (generate-error-code nil division-by-zero-error                                    dividend divisor)))    (inst beq divisor error))  (inst xor dividend divisor quo-sign)  (inst move dividend rem-sign)  (let ((label (gen-label)))    (inst bge dividend label)    (inst subq zero-tn dividend dividend)    (emit-label label))  (let ((label (gen-label)))    (inst bge divisor label)    (inst subq zero-tn divisor divisor)    (emit-label label))  (inst move zero-tn rem)  (inst move zero-tn quo)  (dotimes (i 64)    (inst srl dividend 63 temp1)    (inst sll rem 1 rem)    (inst bis temp1 rem rem)    (inst cmple divisor rem temp1)    (inst sll quo 1 quo)    (inst bis temp1 quo quo)    (inst sll dividend 1 dividend)    (inst subq temp1 1 temp1)    (inst zap divisor temp1 temp1)    (inst subq rem temp1 rem))  (let ((label (gen-label)))    ;; If the quo-sign is negative, we need to negate quo.    (inst bge quo-sign label)    (inst subq zero-tn quo quo)    (emit-label label))  (let ((label (gen-label)))    ;; If the rem-sign is negative, we need to negate rem.    (inst bge rem-sign label)    (inst subq zero-tn rem rem)    (emit-label label)));;;; comparison routines(macrolet    ((define-cond-assem-rtn (name translate static-fn cmp not-p)       `(define-assembly-routine (,name                                  (:cost 10)                                  (:return-style :full-call)                                  (:policy :safe)                                  (:translate ,translate)                                  (:save-p t))                                 ((:arg x (descriptor-reg any-reg) a0-offset)                                  (:arg y (descriptor-reg any-reg) a1-offset)                                  (:res res descriptor-reg a0-offset)                                  (:temp temp non-descriptor-reg nl0-offset)                                  (:temp lip interior-reg lip-offset)                                  (:temp nargs any-reg nargs-offset)                                  (:temp ocfp any-reg ocfp-offset))          (inst and x 3 temp)          (inst bne temp DO-STATIC-FN)          (inst and y 3 temp)          (inst beq temp DO-COMPARE)          DO-STATIC-FN          (inst ldl lip (static-fun-offset ',static-fn) null-tn)          (inst li (fixnumize 2) nargs)          (inst move cfp-tn ocfp)          (inst move csp-tn cfp-tn)          (inst jmp zero-tn lip)          DO-COMPARE          ,cmp          (inst move null-tn res)          (inst ,(if not-p 'bne 'beq) temp done)          (load-symbol res t)          DONE)))  (define-cond-assem-rtn generic-< < two-arg-< (inst cmplt x y temp) nil)  (define-cond-assem-rtn generic-> > two-arg-> (inst cmplt y x temp) nil))(define-assembly-routine (generic-eql                          (:cost 10)                          (:return-style :full-call)                          (:policy :safe)                          (:translate eql)                          (:save-p t))                         ((:arg x (descriptor-reg any-reg) a0-offset)                          (:arg y (descriptor-reg any-reg) a1-offset)                          (:res res descriptor-reg a0-offset)                          (:temp temp non-descriptor-reg nl0-offset)                          (:temp lip interior-reg lip-offset)                          (:temp lra descriptor-reg lra-offset)                          (:temp nargs any-reg nargs-offset)                          (:temp ocfp any-reg ocfp-offset))  (inst cmpeq x y temp)  (inst bne temp RETURN-T)  (inst and x 3 temp)  (inst beq temp RETURN-NIL)  (inst and y 3 temp)  (inst bne temp DO-STATIC-FN)  RETURN-NIL  (inst move null-tn res)  (lisp-return lra lip :offset 2)  DO-STATIC-FN  (inst ldl lip (static-fun-offset 'eql) null-tn)  (inst li (fixnumize 2) nargs)  (inst move cfp-tn ocfp)  (inst move csp-tn cfp-tn)  (inst jmp zero-tn lip)  RETURN-T  (load-symbol res t))(define-assembly-routine (generic-=                          (:cost 10)                          (:return-style :full-call)                          (:policy :safe)                          (:translate =)                          (:save-p t))                         ((:arg x (descriptor-reg any-reg) a0-offset)                          (:arg y (descriptor-reg any-reg) a1-offset)                          (:res res descriptor-reg a0-offset)                          (:temp temp non-descriptor-reg nl0-offset)                          (:temp lip interior-reg lip-offset)                          (:temp lra descriptor-reg lra-offset)                          (:temp nargs any-reg nargs-offset)                          (:temp ocfp any-reg ocfp-offset))  (inst and x 3 temp)  (inst bne temp DO-STATIC-FN)  (inst and y 3 temp)  (inst bne temp DO-STATIC-FN)  (inst cmpeq x y temp)  (inst bne temp RETURN-T)  (inst move null-tn res)  (lisp-return lra lip :offset 2)  DO-STATIC-FN  (inst ldl lip (static-fun-offset 'two-arg-=) null-tn)  (inst li (fixnumize 2) nargs)  (inst move cfp-tn ocfp)  (inst move csp-tn cfp-tn)  (inst jmp zero-tn lip)  RETURN-T  (load-symbol res t))(define-assembly-routine (generic-/=                          (:cost 10)                          (:return-style :full-call)                          (:policy :safe)                          (:translate /=)                          (:save-p t))                         ((:arg x (descriptor-reg any-reg) a0-offset)                          (:arg y (descriptor-reg any-reg) a1-offset)                          (:res res descriptor-reg a0-offset)                          (:temp temp non-descriptor-reg nl0-offset)                          (:temp lip interior-reg lip-offset)                          (:temp lra descriptor-reg lra-offset)                          (:temp nargs any-reg nargs-offset)                          (:temp ocfp any-reg ocfp-offset))  (inst and x 3 temp)  (inst bne temp DO-STATIC-FN)  (inst and y 3 temp)  (inst bne temp DO-STATIC-FN)  (inst cmpeq x y temp)  (inst bne temp RETURN-NIL)  (load-symbol res t)  (lisp-return lra lip :offset 2)  DO-STATIC-FN  (inst ldl lip (static-fun-offset 'two-arg-/=) null-tn)  (inst li (fixnumize 2) nargs)  (inst move cfp-tn ocfp)  (inst move csp-tn cfp-tn)  (inst jmp zero-tn lip)  RETURN-NIL  (inst move null-tn res))

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人在线视频首页| 国产色一区二区| 国产亚洲欧美一区在线观看| 一区二区三区日韩欧美精品| 国产一区二区不卡| 欧美电影在哪看比较好| 亚洲三级电影网站| 久久99精品久久久久婷婷| 在线观看www91| 国产精品久久久久影院| 久久国产生活片100| 欧美日韩国产高清一区二区| 最新日韩在线视频| 国产激情91久久精品导航| 日韩一区二区在线看| 亚洲韩国精品一区| 色婷婷一区二区| 国产精品久久久久久久久免费相片 | 成人国产精品免费观看动漫 | 久久精品免视看| 男男视频亚洲欧美| 欧美一区二区三区白人| 午夜视频一区二区| 欧美性色综合网| 亚洲不卡一区二区三区| 色婷婷综合视频在线观看| 亚洲色图视频网| 91网站最新地址| 亚洲天堂av老司机| 91视频在线观看| www.成人在线| 精品久久久久av影院| 蜜臀a∨国产成人精品| 91麻豆精品国产91久久久资源速度 | 日韩精品电影一区亚洲| 在线亚洲一区二区| 午夜精品一区在线观看| 欧美日韩三级在线| 秋霞午夜av一区二区三区| 日韩视频在线观看一区二区| 免费三级欧美电影| 久久久美女艺术照精彩视频福利播放| 国内精品视频666| 国产欧美一区二区精品性色超碰| 粉嫩av一区二区三区在线播放 | 亚洲一区二三区| 欧美日韩大陆一区二区| 日韩不卡在线观看日韩不卡视频| 91精品国产乱| 国产91精品精华液一区二区三区| 亚洲私人黄色宅男| 欧美日韩在线播放| 黄页视频在线91| 中文字幕亚洲一区二区av在线| 色综合色综合色综合| 视频在线观看国产精品| 久久久久久久久久久久久久久99 | 久久精品国产网站| 日本一区二区三区四区| 色先锋aa成人| 久久国产免费看| 亚洲人成网站精品片在线观看| 欧美在线制服丝袜| 国产在线国偷精品免费看| 中文字幕一区二区三区视频| 欧美日韩在线免费视频| 国产在线一区二区| 亚洲精品一二三四区| 精品国产凹凸成av人导航| 99久久夜色精品国产网站| 日日嗨av一区二区三区四区| 国产精品天天看| 91精品在线观看入口| av电影一区二区| 老司机精品视频一区二区三区| 国产精品不卡在线| 日韩美女视频在线| 在线精品观看国产| 国产成人av在线影院| 丝袜美腿成人在线| 亚洲欧美日本在线| 国产午夜精品久久久久久久| 欧美日韩成人综合在线一区二区| 成人福利在线看| 蜜桃av噜噜一区二区三区小说| 18成人在线视频| 久久亚洲一级片| 欧美男同性恋视频网站| 91美女片黄在线观看91美女| 韩国av一区二区三区| 三级影片在线观看欧美日韩一区二区| 中文字幕欧美三区| 2023国产一二三区日本精品2022| 欧美巨大另类极品videosbest| 成人黄动漫网站免费app| 精品一区二区三区欧美| 首页综合国产亚洲丝袜| 一区二区三区影院| 综合欧美亚洲日本| 国产精品久久久久久久久晋中| 2017欧美狠狠色| 日韩精品中午字幕| 欧美一区二区在线免费播放| 欧美群妇大交群的观看方式| 欧洲色大大久久| 在线观看视频一区二区欧美日韩| 成人av第一页| 94色蜜桃网一区二区三区| 成人在线综合网| 国产盗摄女厕一区二区三区| 国产精品99久| 成人精品在线视频观看| 岛国一区二区在线观看| 丁香婷婷深情五月亚洲| 国产mv日韩mv欧美| 成人性生交大片| gogo大胆日本视频一区| 99re这里只有精品视频首页| 91啦中文在线观看| 欧美怡红院视频| 欧美日韩不卡在线| 538在线一区二区精品国产| 777xxx欧美| 欧美变态tickling挠脚心| 精品久久国产字幕高潮| 久久九九国产精品| 国产精品毛片大码女人| 一区二区国产盗摄色噜噜| 亚洲国产精品久久人人爱蜜臀| 五月天激情小说综合| 美女视频一区二区| 国产成人啪午夜精品网站男同| 大陆成人av片| 欧美性受xxxx黑人xyx| 欧美一区二区三区人| 国产欧美一区二区精品忘忧草 | 日韩成人免费看| 黄网站免费久久| 91在线观看成人| 在线不卡免费欧美| 国产亚洲福利社区一区| 亚洲精品视频免费看| 性欧美大战久久久久久久久| 狂野欧美性猛交blacked| 成人激情电影免费在线观看| 色狠狠色狠狠综合| 日韩欧美国产高清| 国产精品久久毛片| 奇米色一区二区| 成人蜜臀av电影| 欧美一级久久久| 亚洲人成在线观看一区二区| 日本女人一区二区三区| 国产精品一区久久久久| 欧美性大战xxxxx久久久| 2024国产精品| 亚洲成av人片一区二区三区| 国产91精品入口| 91精品久久久久久久91蜜桃| 亚洲婷婷综合色高清在线| 日韩高清中文字幕一区| 9人人澡人人爽人人精品| 91精品国产一区二区| 亚洲人精品午夜| 国产一二精品视频| 91麻豆精品国产自产在线观看一区 | 亚洲.国产.中文慕字在线| 国产精品一区二区不卡| 欧美日高清视频| 亚洲色图.com| 国产91清纯白嫩初高中在线观看| 欧美三级在线视频| 国产精品精品国产色婷婷| 久久99久国产精品黄毛片色诱| 在线国产电影不卡| 日本一区二区三级电影在线观看| 日韩精品成人一区二区在线| 色狠狠色狠狠综合| 中文字幕亚洲一区二区va在线| 国内外成人在线| 日韩欧美国产成人一区二区| 午夜影院在线观看欧美| 91久久线看在观草草青青| 中文字幕欧美区| 国产寡妇亲子伦一区二区| 日韩一区二区免费在线电影| 婷婷夜色潮精品综合在线| 91成人免费电影| 亚洲色图在线视频| 99re6这里只有精品视频在线观看| 久久精品视频免费| 国产精品主播直播| 精品美女被调教视频大全网站| 麻豆成人免费电影| 欧美变态tickle挠乳网站| 毛片av一区二区| 欧美成人激情免费网| 黄色精品一二区| 日韩欧美国产综合| 国产麻豆日韩欧美久久|