Changeset 9802
 Timestamp:
 Jun 21, 2008, 2:42:04 AM (11 years ago)
 File:

 1 edited
Legend:
 Unmodified
 Added
 Removed

branches/ia32/compiler/X86/X8632/x8632vinsns.lisp
r9756 r9802 9 9 (evalwhen (:compiletoplevel :execute) 10 10 (require "X8632ENV")) 11 12 (defun unsignedtosigned (u nbits) 13 (if (logbitp (1 nbits) u) 14 ( u (ash 1 nbits)) 15 u)) 11 16 12 17 (defmacro definex8632vinsn (vinsnname (results args &optional temps) &body body) … … 90 95 (scaledidx :s32))) 91 96 (movsbl (:@ x8632::miscdataoffset (:%l v) (:%l scaledidx)) (:%l dest))) 97 98 (definex8632vinsn miscrefcu16 (((dest :u16)) 99 ((v :lisp) 100 (idx :u32const))) 101 (movzwl (:@ (:apply + x8632::miscdataoffset (:apply ash idx 1)) (:%l v)) (:%l dest))) 102 103 (definex8632vinsn miscrefcs16 (((dest :s16)) 104 ((v :lisp) 105 (idx :u32const))) 106 (movswl (:@ (:apply + x8632::miscdataoffset (:apply ash idx 1)) (:%l v)) (:%l dest))) 92 107 93 108 (definex8632vinsn miscrefu16 (((dest :u16)) … … 1992 2007 (movb (:%b val) (:@ x8632::miscdataoffset (:%l v) (:%l scaledidx)))) 1993 2008 2009 (definex8632vinsn miscsetcu16 (() 2010 ((val :u16) 2011 (v :lisp) 2012 (idx :s32const)) 2013 ()) 2014 (movw (:%w val) (:@ (:apply + x8632::miscdataoffset (:apply * 2 idx)) (:%l v)))) 2015 1994 2016 (definex8632vinsn miscsetu16 (() 1995 2017 ((val :u16) … … 3001 3023 (definex8632vinsn %natural+c (((result :u32)) 3002 3024 ((result :u32) 3003 (constant : s32const)))3004 (addl (:$l constant) (:%l result)))3025 (constant :u32const))) 3026 (addl (:$l (:apply unsignedtosigned constant 32)) (:%l result))) 3005 3027 3006 3028 (definex8632vinsn %natural (((result :u32)) … … 3011 3033 (definex8632vinsn %naturalc (((result :u32)) 3012 3034 ((result :u32) 3013 (constant : s32const)))3014 (subl (:$l constant) (:%l result)))3035 (constant :u32const))) 3036 (subl (:$l (:apply unsignedtosigned constant 32)) (:%l result))) 3015 3037 3016 3038 (definex8632vinsn %naturallogior (((result :u32)) … … 3021 3043 (definex8632vinsn %naturallogiorc (((result :u32)) 3022 3044 ((result :u32) 3023 (constant : s32const)))3024 (orl (:$l constant) (:%l result)))3045 (constant :u32const))) 3046 (orl (:$l (:apply unsignedtosigned constant 32)) (:%l result))) 3025 3047 3026 3048 (definex8632vinsn %naturallogand (((result :u32)) … … 3031 3053 (definex8632vinsn %naturallogandc (((result :u32)) 3032 3054 ((result :u32) 3033 (constant : s32const)))3034 (andl (:$l constant) (:%l result)))3055 (constant :u32const))) 3056 (andl (:$l (:apply unsignedtosigned constant 32)) (:%l result))) 3035 3057 3036 3058 (definex8632vinsn %naturallogxor (((result :u32)) … … 3041 3063 (definex8632vinsn %naturallogxorc (((result :u32)) 3042 3064 ((result :u32) 3043 (constant : s32const)))3044 (xorl (:$l constant) (:%l result)))3065 (constant :u32const))) 3066 (xorl (:$l (:apply unsignedtosigned constant 32)) (:%l result))) 3045 3067 3046 3068 (definex8632vinsn naturalshiftleft (((dest :u32))
Note: See TracChangeset
for help on using the changeset viewer.