The following rules apply to the evaluation of subforms in a place:
(defmacro wrong-order (x y) `(getf ,y ,x))
This following form evaluates place2 first and then place1 because that is the order they are evaluated in the macro expansion:
(push value (wrong-order place1 place2))
(setf place1 value1 place2 value2 ...)the subforms of place1 and value1 are evaluated, the location specified by place1 is modified to contain the value returned by value1, and then the rest of the setf form is processed in a like manner.
5.1.1.1.1 Examples of Evaluation of Subforms to Places