svm: Undo "fix" for copy-block.
authorMatt Birkholz <matt@birkholz.chandler.az.us>
Wed, 8 Feb 2012 04:48:06 +0000 (21:48 -0700)
committerMatt Birkholz <matt@birkholz.chandler.az.us>
Wed, 8 Feb 2012 04:48:06 +0000 (21:48 -0700)
There was nothing wrong with copy-block.  Presumably define-code-
sequence took a separate pattern and "coding" for a reason...
Copy-block can remain the sole exercise of the separation...

src/compiler/machines/svm/assembler-rules.scm
src/microcode/svm1-defns.h
src/microcode/svm1-interp.c

index e9a2ea9511fa5801bf32559ee70afd8a2772fcda..531c7c97f83eab431e43dbdcc7cef43c7ae97837 100644 (file)
@@ -228,18 +228,18 @@ USA.
              word
              (_ from word-register)
              (_ to word-register))
-  size
+  to
   from
-  to)
+  size)
 
 (define-code-sequence instruction
   (copy-block (_ size word-register)
              word
              (_ from word-register)
              (_ to word-register))
-  size
+  to
   from
-  to)
+  size)
 
 (define-implicit-coding-type type-operand
   (define-code-sequence (_ type type-word)
index 87cbdf70a1e772b6f92a86048c440cbb0da8fd90..4245af33cb61c47b8445e240b2067e9258b6d41b 100644 (file)
@@ -2,7 +2,7 @@
 
 DO NOT EDIT: this file was generated by a program.
 
-Copyright (C) 2011 Massachusetts Institute of Technology
+Copyright (C) 2010 Massachusetts Institute of Technology
 
 This is free software; see the source for copying conditions. There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
@@ -485,16 +485,16 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
   DECODE_FLOAT (value)
 
 #define SVM1_INST_COPY_BLOCK_U8_W 0x0f
-#define DECODE_SVM1_INST_COPY_BLOCK_U8_W(size, from, to) \
-  DECODE_UNSIGNED_8 (size); \
+#define DECODE_SVM1_INST_COPY_BLOCK_U8_W(to, from, size) \
+  DECODE_WORD_REGISTER (to); \
   DECODE_WORD_REGISTER (from); \
-  DECODE_WORD_REGISTER (to)
+  DECODE_UNSIGNED_8 (size)
 
 #define SVM1_INST_COPY_BLOCK_WR_W 0x10
-#define DECODE_SVM1_INST_COPY_BLOCK_WR_W(size, from, to) \
-  DECODE_WORD_REGISTER (size); \
+#define DECODE_SVM1_INST_COPY_BLOCK_WR_W(to, from, size) \
+  DECODE_WORD_REGISTER (to); \
   DECODE_WORD_REGISTER (from); \
-  DECODE_WORD_REGISTER (to)
+  DECODE_WORD_REGISTER (size)
 
 #define SVM1_INST_LOAD_NON_POINTER_TC_U8 0x11
 #define DECODE_SVM1_INST_LOAD_NON_POINTER_TC_U8(target, type_1, value) \
index cb148772b23b7599d24604c7de82b2ec6c50ebbf..4b25452f1573617735083ebf71ebe3e88b56b99b 100644 (file)
@@ -191,7 +191,7 @@ initialize_svm1 (void)
   WREG_SET (SVM1_REG_STACK_POINTER, ((word_t)stack_pointer));          \
   WREG_SET (SVM1_REG_FREE_POINTER, ((word_t)Free));                    \
   WREG_SET (SVM1_REG_VALUE, GET_VAL);                                  \
-  WREG_SET (SVM1_REG_DYNAMIC_LINK, ((word_t)(OBJECT_ADDRESS(GET_VAL)))); \
+  WREG_SET (SVM1_REG_DYNAMIC_LINK, BYTE_ADDR(OBJECT_ADDRESS(GET_VAL)));        \
 } while (0)
 
 #define EXPORT_REGS() do                                               \
@@ -589,7 +589,7 @@ copy_block (word_t * to, word_t * from, word_t n_words)
 
 DEFINE_INST (copy_block_u8_w)
 {
-  DECODE_SVM1_INST_COPY_BLOCK_U8_W (n_words, r_from, r_to);
+  DECODE_SVM1_INST_COPY_BLOCK_U8_W (r_to, r_from, n_words);
   copy_block ((WORD_ADDR (WREG_REF (r_to))),
              (WORD_ADDR (WREG_REF (r_from))),
              n_words);
@@ -598,7 +598,7 @@ DEFINE_INST (copy_block_u8_w)
 
 DEFINE_INST (copy_block_wr_w)
 {
-  DECODE_SVM1_INST_COPY_BLOCK_WR_W (r_n_words, r_from, r_to);
+  DECODE_SVM1_INST_COPY_BLOCK_WR_W (r_to, r_from, r_n_words);
   copy_block ((WORD_ADDR (WREG_REF (r_to))),
              (WORD_ADDR (WREG_REF (r_from))),
              (WREG_REF (r_n_words)));