Module: dfmc-native-harp-cg Author: Nosa Omo Copyright: Original Code is Copyright (c) 1995-2004 Functional Objects, Inc. All rights reserved. License: Functional Objects Library Public License Version 1.0 Dual-license: GNU Lesser General Public License Warranty: Distributed WITHOUT WARRANTY OF ANY KIND define method immediate?? (register) instance?(register, ) end method immediate??; define sideways method op--store-multiple-values-count (back-end :: , reg) => () if (reg.immediate??) if (reg == 1) ins--reset-values(back-end); else ins--set-values(back-end); op--st-mv-count(back-end, reg); end if; else let done-tag = make(); let reset-tag = make(); ins--beq(back-end, reset-tag, reg, 1); ins--set-values(back-end); op--st-mv-count(back-end, reg); ins--bra(back-end, done-tag); ins--tag(back-end, reset-tag); ins--reset-values(back-end); ins--tag(back-end, done-tag); end if; values(); end method op--store-multiple-values-count; define sideways method op--bmvset(back-end :: , tag :: ) => () ins--bmvset(back-end, tag); end method; define program-warning slot condition-description, required-init-keyword: description:; format-string "%s"; format-arguments description; end; define sideways method harp-warning (be :: , #rest args) note(, description: apply(format-to-string, args)); end;