Changeset 9581
- Timestamp:
- May 22, 2008, 4:29:28 PM (17 years ago)
- File:
-
- 1 edited
-
branches/ia32/compiler/X86/x862.lisp (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/ia32/compiler/X86/x862.lisp
r9580 r9581 7961 7961 (and offval (logtest 3 offval) (setq offval nil)) 7962 7962 (and absptr (logtest 3 absptr) (setq absptr nil))))) 7963 (with-additional-imm-reg () 7964 (cond 7965 (fixnump 7966 (with-imm-target () (dest :signed-natural) 7967 (cond 7968 (absptr 7963 (cond 7964 (fixnump 7965 (with-imm-target () (dest :signed-natural) 7966 (cond 7967 (absptr 7968 (target-arch-case 7969 (:x8632 (! mem-ref-c-absolute-fullword dest absptr)) 7970 (:x8664 (! mem-ref-c-absolute-doubleword dest absptr)))) 7971 (offval 7972 (with-imm-target () (src-reg :address) 7973 (x862-one-targeted-reg-form seg ptr src-reg) 7969 7974 (target-arch-case 7970 (:x8632 (! mem-ref-c-absolute-fullword dest absptr)) 7971 (:x8664 (! mem-ref-c-absolute-doubleword dest absptr)))) 7972 (offval 7973 (with-imm-target () (src-reg :address) 7974 (x862-one-targeted-reg-form seg ptr src-reg) 7975 (target-arch-case 7976 (:x8632 (! mem-ref-c-fullword dest src-reg offval)) 7977 (:x8664 (! mem-ref-c-doubleword dest src-reg offval))))) 7978 (t 7979 (with-imm-target () (src-reg :address) 7975 (:x8632 (! mem-ref-c-fullword dest src-reg offval)) 7976 (:x8664 (! mem-ref-c-doubleword dest src-reg offval))))) 7977 (t 7978 (with-imm-target () (src-reg :address) 7979 (with-additional-imm-reg () 7980 7980 (with-imm-target (src-reg) (offset-reg :signed-natural) 7981 7981 (x862-one-targeted-reg-form seg ptr src-reg) … … 7992 7992 (target-arch-case 7993 7993 (:x8632 (! mem-ref-fullword dest src-reg offset-reg)) 7994 (:x8664 (! mem-ref-doubleword dest src-reg offset-reg))))))) 7995 (if (node-reg-p vreg) 7996 (! box-fixnum vreg dest) 7997 (<- dest)))) 7998 (signed 7999 (with-imm-target () (dest :signed-natural) 8000 (cond 8001 (absptr 8002 (case size 8003 (8 (! mem-ref-c-absolute-signed-doubleword dest absptr)) 8004 (4 (! mem-ref-c-absolute-signed-fullword dest absptr)) 8005 (2 (! mem-ref-c-absolute-s16 dest absptr)) 8006 (1 (! mem-ref-c-absolute-s8 dest absptr)))) 8007 (offval 7994 (:x8664 (! mem-ref-doubleword dest src-reg offset-reg)))))))) 7995 (if (node-reg-p vreg) 7996 (! box-fixnum vreg dest) 7997 (<- dest)))) 7998 (signed 7999 (with-imm-target () (dest :signed-natural) 8000 (cond 8001 (absptr 8002 (case size 8003 (8 (! mem-ref-c-absolute-signed-doubleword dest absptr)) 8004 (4 (! mem-ref-c-absolute-signed-fullword dest absptr)) 8005 (2 (! mem-ref-c-absolute-s16 dest absptr)) 8006 (1 (! mem-ref-c-absolute-s8 dest absptr)))) 8007 (offval 8008 (with-additional-imm-reg () 8008 8009 (with-imm-target (dest) (src-reg :address) 8009 8010 (x862-one-targeted-reg-form seg ptr src-reg) … … 8012 8013 (4 (! mem-ref-c-signed-fullword dest src-reg offval)) 8013 8014 (2 (! mem-ref-c-s16 dest src-reg offval)) 8014 (1 (! mem-ref-c-s8 dest src-reg offval))))) 8015 (t 8016 (with-imm-target () (src-reg :address) 8015 (1 (! mem-ref-c-s8 dest src-reg offval)))))) 8016 (t 8017 (with-imm-target () (src-reg :address) 8018 (with-additional-imm-reg () 8017 8019 (with-imm-target (src-reg) (offset-reg :signed-natural) 8018 8020 (x862-one-targeted-reg-form seg ptr src-reg) … … 8031 8033 (4 (! mem-ref-signed-fullword dest src-reg offset-reg)) 8032 8034 (2 (! mem-ref-s16 dest src-reg offset-reg)) 8033 (1 (! mem-ref-s8 dest src-reg offset-reg))))))) 8034 (if (node-reg-p vreg) 8035 (case size 8036 ((1 2) (! box-fixnum vreg dest)) 8037 (4 (target-arch-case 8038 (:x8632 (<- dest)) 8039 (:x8664 (! box-fixnum vreg dest)))) 8040 (8 (<- dest))) 8041 (<- dest)))) 8042 (t 8043 (with-imm-target () (dest :natural) 8044 (cond 8045 (absptr 8046 (case size 8047 (8 (! mem-ref-c-absolute-doubleword dest absptr)) 8048 (4 (! mem-ref-c-absolute-fullword dest absptr)) 8049 (2 (! mem-ref-c-absolute-u16 dest absptr)) 8050 (1 (! mem-ref-c-absolute-u8 dest absptr)))) 8051 (offval 8035 (1 (! mem-ref-s8 dest src-reg offset-reg)))))))) 8036 (if (node-reg-p vreg) 8037 (case size 8038 ((1 2) (! box-fixnum vreg dest)) 8039 (4 (target-arch-case 8040 (:x8632 (<- dest)) 8041 (:x8664 (! box-fixnum vreg dest)))) 8042 (8 (<- dest))) 8043 (<- dest)))) 8044 (t 8045 (with-imm-target () (dest :natural) 8046 (cond 8047 (absptr 8048 (case size 8049 (8 (! mem-ref-c-absolute-doubleword dest absptr)) 8050 (4 (! mem-ref-c-absolute-fullword dest absptr)) 8051 (2 (! mem-ref-c-absolute-u16 dest absptr)) 8052 (1 (! mem-ref-c-absolute-u8 dest absptr)))) 8053 (offval 8054 (with-additional-imm-reg () 8052 8055 (with-imm-target (dest) (src-reg :address) 8053 8056 (x862-one-targeted-reg-form seg ptr src-reg) … … 8056 8059 (4 (! mem-ref-c-fullword dest src-reg offval)) 8057 8060 (2 (! mem-ref-c-u16 dest src-reg offval)) 8058 (1 (! mem-ref-c-u8 dest src-reg offval))))) 8059 (t 8061 (1 (! mem-ref-c-u8 dest src-reg offval)))))) 8062 (t 8063 (with-additional-imm-reg () 8060 8064 (with-imm-target () (src-reg :address) 8061 8065 (with-imm-target (src-reg) (offset-reg :signed-natural) … … 8075 8079 (4 (! mem-ref-fullword dest src-reg offset-reg)) 8076 8080 (2 (! mem-ref-u16 dest src-reg offset-reg)) 8077 (1 (! mem-ref-u8 dest src-reg offset-reg))))))) 8078 (<- (set-regspec-mode8079 dest8080 (gpr-mode-name-value8081 (case size8082 (8 :u64)8083 (4 :u32)8084 (2 :u16)8085 (1 :u8)))))))))8081 (1 (! mem-ref-u8 dest src-reg offset-reg)))))))) 8082 (<- (set-regspec-mode 8083 dest 8084 (gpr-mode-name-value 8085 (case size 8086 (8 :u64) 8087 (4 :u32) 8088 (2 :u16) 8089 (1 :u8)))))))) 8086 8090 (^))))) 8087 8091
Note:
See TracChangeset
for help on using the changeset viewer.
