Changeset 13957 for branches


Ignore:
Timestamp:
Jul 13, 2010, 5:55:33 AM (9 years ago)
Author:
gb
Message:

stuff to get/set the fpscr.

Location:
branches/arm/compiler/ARM
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/arm/compiler/ARM/arm-asm.lisp

    r13921 r13957  
    121121    :@rn
    122122    :uuoC
     123    :fpux
    123124    ))
    124125
     
    677678   (define-arm-instruction fmuls (:sd :sn :sm)
    678679     #x0e200a00
    679      #x0ff00ff0
     680     #x0ff00f50
    680681     ())
    681682   (define-arm-instruction fdivd (:dd :dn :dm)
     
    685686   (define-arm-instruction fdivs (:sd :sn :sm)
    686687     #x0e800a00
    687      #x0ff00ff0
     688     #x0ff00f50
    688689     ())
    689690   (define-arm-instruction fcpyd (:dd :dm)
     
    691692     #x0fb00ff0
    692693     ())
    693    (define-arm-instruction fcpyd (:sd :sm)
    694      #x0eb00b40
     694   (define-arm-instruction fcpys (:sd :sm)
     695     #x0eb00a40
    695696     #x0fb00fc0
    696697     ())
     
    702703     #x0eb70ac0
    703704     #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
    704713     ())
    705714   (define-arm-instruction smull (:rd :rn :rm :rs)
     
    11381147  (set-field-value instruction (byte 4 16) (need-arm-gpr form)))
    11391148
     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
    11401158(defun parse-rm-operand (form instruction)
    11411159  (set-field-value instruction (byte 4 0) (need-arm-gpr form)))
     
    12621280      parse-@rn-operand
    12631281      parse-uuoc-operand
     1282      parse-fpux-operand
    12641283      ))
    12651284
  • branches/arm/compiler/ARM/arm-disassemble.lisp

    r13921 r13957  
    182182    (arm-gpr-name (ldb (byte 4 16) opcode))))
    183183
     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
    184192(defun extract-arm-rm-operand (opcodes i)
    185193  (let* ((opcode (adi-opcode (svref opcodes i))))
     
    285293    extract-arm-@rn-operand
    286294    extract-arm-uuoc-operand
     295    extract-arm-fpux-operand
    287296    ))
    288297
Note: See TracChangeset for help on using the changeset viewer.