Changeset 15075


Ignore:
Timestamp:
Nov 19, 2011, 10:09:19 PM (8 years ago)
Author:
gb
Message:

Make 'vpush1' and 'vpop1' instructions, don't define them as lap
macros (mostly so the disassembler will recognize them.)

Add fldmia[s|d] and fstmia[s|d]. Note that for some variants
of load/store multiple, the writeback bit is mandatory; we should
but don't distinguish between optional and mandatory writeback.

Location:
trunk/source/compiler/ARM
Files:
2 edited

Legend:

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

    r15007 r15075  
    1 ;;;-*- Mode: Lisp; Package: (ARM :use CL) -*-
     1;;-*- Mode: Lisp; Package: (ARM :use CL) -*-
    22;;;
    33;;;   Copyright (C) 2005-2009 Clozure Associates and contributors.
     
    526526      (#x01f00010 . #x0ff00090))
    527527     ())
    528 
     528   (define-arm-instruction vpop1 (:rd)
     529     #x049a0004
     530     #x0fff0fff
     531     ())
    529532   (define-arm-instruction ldr (:rd :mem12)
    530533     #x04100000
     
    534537     #x04500000
    535538     #x0c500000
     539     ())
     540   (define-arm-instruction vpush1 (:rd)
     541     #x052a0004
     542     #x0fff0fff
    536543     ())
    537544   (define-arm-instruction str (:rd :mem12)
     
    814821     #x0fb00f00
    815822     ())
     823   (define-arm-instruction fstmias (:sd :rnw :srcount)
     824     #x0c800a00
     825     #x0fd00f00
     826     ())
    816827   (define-arm-instruction fstmdbd (:dd :rnw :drcount)
    817828     #x0d200b00
    818      #x0fb00f00
     829     #x0ff00f00
     830     ())
     831   (define-arm-instruction fstmiad (:sd :rnw :srcount)
     832     #x0c800b00
     833     #x0fd00f00
    819834     ())
    820835   (define-arm-instruction fldd (:dd :fpaddr)
     
    10201035                        (byte low-width pos)
    10211036                        low)))))))
     1037
    10221038
    10231039(defun set-field-value (instruction bytespec value)
  • trunk/source/compiler/ARM/arm-lapmacros.lisp

    r15067 r15075  
    8888  `(str ,src (:+@! ,stack (:$ (- arm::node-size)))))
    8989
    90 (defarmlapmacro vpush1 (src)
    91   `(push1 ,src vsp))
     90
    9291
    9392
     
    9594  `(ldr ,dest (:@+ ,stack (:$ arm::node-size))))
    9695
    97 (defarmlapmacro vpop1 (dest)
    98   `(pop1 ,dest vsp))
     96
    9997
    10098(defarmlapmacro %cdr (dest node)
Note: See TracChangeset for help on using the changeset viewer.