- Timestamp:
- Jul 12, 2010, 10:55:33 PM (14 years ago)
- Location:
- branches/arm/compiler/ARM
- Files:
-
- 2 edited
-
arm-asm.lisp (modified) (7 diffs)
-
arm-disassemble.lisp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/arm/compiler/ARM/arm-asm.lisp
r13921 r13957 121 121 :@rn 122 122 :uuoC 123 :fpux 123 124 )) 124 125 … … 677 678 (define-arm-instruction fmuls (:sd :sn :sm) 678 679 #x0e200a00 679 #x0ff00f f0680 #x0ff00f50 680 681 ()) 681 682 (define-arm-instruction fdivd (:dd :dn :dm) … … 685 686 (define-arm-instruction fdivs (:sd :sn :sm) 686 687 #x0e800a00 687 #x0ff00f f0688 #x0ff00f50 688 689 ()) 689 690 (define-arm-instruction fcpyd (:dd :dm) … … 691 692 #x0fb00ff0 692 693 ()) 693 (define-arm-instruction fcpy d(:sd :sm)694 #x0eb00 b40694 (define-arm-instruction fcpys (:sd :sm) 695 #x0eb00a40 695 696 #x0fb00fc0 696 697 ()) … … 702 703 #x0eb70ac0 703 704 #x0ff70ac0 705 ()) 706 (define-arm-instruction fmxr (:fpux :rd) 707 #x0ee00a10 708 #x0ff00fff 709 ()) 710 (define-arm-instruction fmrx (:rd :fpux) 711 #x0ef00a10 712 #x0ff00fff 704 713 ()) 705 714 (define-arm-instruction smull (:rd :rn :rm :rs) … … 1138 1147 (set-field-value instruction (byte 4 16) (need-arm-gpr form))) 1139 1148 1149 (defun parse-fpux-operand (form instruction) 1150 (let* ((regno (if (typep form '(unsigned-byte 4)) 1151 form 1152 (ecase (keywordize form) 1153 (:fpsid 0) 1154 (:fpscr 1) 1155 (:fpexc 8))))) 1156 (set-field-value instruction (byte 4 16) regno))) 1157 1140 1158 (defun parse-rm-operand (form instruction) 1141 1159 (set-field-value instruction (byte 4 0) (need-arm-gpr form))) … … 1262 1280 parse-@rn-operand 1263 1281 parse-uuoc-operand 1282 parse-fpux-operand 1264 1283 )) 1265 1284 -
branches/arm/compiler/ARM/arm-disassemble.lisp
r13921 r13957 182 182 (arm-gpr-name (ldb (byte 4 16) opcode)))) 183 183 184 (defun extract-arm-fpux-operand (opcodes i) 185 (let* ((opcode (adi-opcode (svref opcodes i)))) 186 (case (ldb (byte 4 16) opcode) 187 (0 :fpsid) 188 (1 :fpscr) 189 (8 :fpexc) 190 (t (list :fpu (ldb (byte 4 16) opcode)))))) 191 184 192 (defun extract-arm-rm-operand (opcodes i) 185 193 (let* ((opcode (adi-opcode (svref opcodes i)))) … … 285 293 extract-arm-@rn-operand 286 294 extract-arm-uuoc-operand 295 extract-arm-fpux-operand 287 296 )) 288 297
Note:
See TracChangeset
for help on using the changeset viewer.
