Changeset 13892
- Timestamp:
- Jun 26, 2010, 1:06:47 AM (14 years ago)
- Location:
- branches/arm
- Files:
-
- 6 edited
-
compiler/ARM/arm-asm.lisp (modified) (3 diffs)
-
compiler/ARM/arm-vinsns.lisp (modified) (1 diff)
-
level-0/ARM/arm-utils.lisp (modified) (4 diffs)
-
level-0/l0-misc.lisp (modified) (1 diff)
-
lisp-kernel/arm-exceptions.c (modified) (3 diffs)
-
lisp-kernel/arm-spentry.s (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/arm/compiler/ARM/arm-asm.lisp
r13889 r13892 171 171 (vector 172 172 173 (define-arm-instruction clrex () 174 #xf57ff01f 175 #xffffffff 176 (:non-conditional)) 177 173 178 ;;; UUOs. 174 179 … … 748 753 #x0ff00ff0 749 754 ()) 750 (define-arm-instruction clrex ()751 #xf57ff01f752 #xffffffff753 (:non-conditional))754 755 (define-arm-instruction clz (:rd :rm) 755 756 #x016f0f10 … … 776 777 (template (if ordinal (aref *arm-instruction-table* ordinal)))) 777 778 (if template 778 (values template (unless (logbitp (encode-arm-instruction-flag :non-conditional) (arm-instruction-template-flags template)) cond-value) nil) 779 (if (logtest (encode-arm-instruction-flag :non-conditional) (arm-instruction-template-flags template)) 780 (let* ((cond (ldb (byte 4 28) (arm-instruction-template-val template)))) 781 (values template cond cond)) 782 (values template cond-value nil)) 779 783 (if (> len 2) 780 784 (let* ((cond-name (make-string 2))) -
branches/arm/compiler/ARM/arm-vinsns.lisp
r13889 r13892 774 774 (define-arm-vinsn extract-tag-fixnum (((tag :imm)) 775 775 ((object :lisp))) 776 ( and tag object (:$ arm::tagmask))777 ( mov tag (:lsl tag (:$arm::fixnumshift))))776 (mov tag (:lsl object (:$ arm::fixnumshift))) 777 (and tag object (:$ (ash arm::tagmask arm::fixnumshift)))) 778 778 779 779 (define-arm-vinsn extract-fulltag (((tag :u8)) -
branches/arm/level-0/ARM/arm-utils.lisp
r13860 r13892 195 195 (b @test) 196 196 @loop 197 (test-fixnum obj) 198 (uuo-debug-trap (:? ne)) 197 199 (ldr header (:@ obj (:$ 0))) 198 200 (extract-fulltag tag header) … … 208 210 (bl .SPFuncall) 209 211 (ldmia (:! vsp) (obj fun sentinel)) 210 (add obj obj (:$ arm::cons.size))212 (add obj obj (:$ (- arm::cons.size arm::fulltag-cons))) 211 213 (b @test) 212 214 @misc … … 217 219 (bl .SPFuncall) 218 220 (ldmia (:! vsp) (obj fun sentinel)) 219 ( addobj obj (:$ arm::fulltag-misc))221 (sub obj obj (:$ arm::fulltag-misc)) 220 222 (ldr header (:@ obj (:$ 0))) 221 223 (extract-fulltag tag header) … … 240 242 (mov header (:lsr header (:$ 3))) 241 243 @bump 244 (mov imm2 obj) 242 245 (add header header (:$ (+ 4 7))) 243 246 (bic header header (:$ arm::fulltagmask)) -
branches/arm/level-0/l0-misc.lisp
r13824 r13892 272 272 (multiple-value-bind (cf cu) (free-and-used (%fixnum-ref tcr target::tcr.cs-area)) 273 273 (multiple-value-bind (vf vu) (free-and-used (%fixnum-ref tcr target::tcr.vs-area)) 274 #+arm-target 275 (values cf cu vf vu) 276 #-arm-target 274 277 (multiple-value-bind (tf tu) (free-and-used (%fixnum-ref tcr target::tcr.ts-area )) 275 278 (values cf cu vf vu tf tu)))))))) -
branches/arm/lisp-kernel/arm-exceptions.c
r13862 r13892 983 983 opcode instruction = 0; 984 984 985 if (old_valence != TCR_STATE_LISP) { 986 return false; 987 } 985 988 986 989 program_counter = xpPC(xp); … … 1122 1125 break; 1123 1126 } 1127 break; 1128 1124 1129 1125 1130 case uuo_format_error_lisptag: … … 1184 1189 1185 1190 1186 TCR *tcr = TCR_FROM_TSD(xpGPR(xp, rcontext));1191 TCR *tcr = get_tcr(true); 1187 1192 1188 1193 /* Put the active stack pointer where .SPcallback expects it */ -
branches/arm/lisp-kernel/arm-spentry.s
r13889 r13892 1500 1500 __(ldr temp0,[imm1,#-node_size]!) 1501 1501 __(cmp imm1,vsp) 1502 __(push1(temp 2,imm0))1502 __(push1(temp0,imm0)) 1503 1503 __(bne 1b) 1504 1504 __(mov vsp,imm0) … … 1816 1816 support because of the locative */ 1817 1817 _spentry(atomic_incf_node) 1818 __(unbox_fixnum(imm 0,arg_z))1819 0: __(add imm2,arg_y,imm 0)1818 __(unbox_fixnum(imm1,arg_z)) 1819 0: __(add imm2,arg_y,imm1) 1820 1820 __(ldrex arg_z,[imm2]) 1821 1821 __(add arg_z,arg_z,arg_x)
Note:
See TracChangeset
for help on using the changeset viewer.
