Index: trunk/sim/memory.hex
===================================================================
--- trunk/sim/memory.hex	(revision 19)
+++ trunk/sim/memory.hex	(revision 30)
@@ -1,325 +1,332 @@
-9de3
-bf50
-0100
-0000
-0100
-0000
-0100
-0000
-0100
-0000
-0300
-0000
-0500
-0100
-8210
-6000
-8410
-a0c0
-8328
-7020
-8410
-8001
-81c0
-8000
-0100
-0000
-0100
-0000
-0100
-0000
-0100
-0000
-0100
-0000
-b580
-2005
-a210
-2000
-8210
-20a9
-8328
-7020
-e270
-6000
-e270
-6040
-e270
-6080
-e270
-60c0
-a210
-2000
-8210
-2010
-e2f0
-4840
-a210
-2003
-e2f0
-08a0
-a348
-0000
-819c
-6820
-8780
-2025
-c0f0
-23c0
-c0f0
-23c8
-c0f0
-23d0
-c0f0
-23d8
-c0f0
-23e0
-c0f0
-23e8
-c0f0
-23f0
-c0f0
-23f8
-8f90
-2000
-a190
-2000
-8d80
-2000
-8580
-2000
-8780
-2000
-8410
-2000
-8990
-8000
-8410
-2000
-b180
-8000
-8410
-2001
-8528
-b03f
-af80
-8000
-b380
-8000
-bf98
-8000
-8180
-0000
-9190
-200f
-9390
-2000
-9590
+// inserisco 16 ff per partire da 10h e scrivo op4,op3,op2,op1 
+ffff
+ffff
+ffff
+ffff
+ffff
+ffff
+ffff
+ffff
+ffff
+ffff
+ffff
+ffff
+ffff
+ffff
+ffff
+ffff
+0001	 //  24:	01 00 00 00 	nop 
+0000
+0001	 //  28:	01 00 00 00 	nop 
+0000
+0001	 //  2c:	01 00 00 00 	nop 
+0000
+0003	 //  30:	03 00 00 00 	sethi  %hi(0), %g1
+0000
+0005	 //  34:	05 00 01 00 	sethi  %hi(0x40000), %g2
+0001
+1082	 //  38:	82 10 60 00 	mov  %g1, %g1
+0060
+1084	 //  3c:	84 10 a0 c0 	or  %g2, 0xc0, %g2
+c0a0
+2883	 //  40:	83 28 70 20 	sllx  %g1, 0x20, %g1
+2070
+1084	 //  44:	84 10 80 01 	or  %g2, %g1, %g2
+0180
+c081	 //  48:	81 c0 80 00 	jmp  %g2
+0080
+0001	 //  4c:	01 00 00 00 	nop 
+0000
+0001	 //  50:	01 00 00 00 	nop 
+0000
+0001	 //  54:	01 00 00 00 	nop 
+0000
+0001	 //  58:	01 00 00 00 	nop 
+0000
+0001	 //  5c:	01 00 00 00 	nop 
+0000
+80b5	 //  60:	b5 80 20 05 	wr  %g0, 5, %asr26
+0520
+10a2	 //  64:	a2 10 20 00 	clr  %l1
+0020
+1082	 //  68:	82 10 20 a9 	mov  0xa9, %g1
+a920
+2883	 //  6c:	83 28 70 20 	sllx  %g1, 0x20, %g1
+2070
+70e2	 //  70:	e2 70 60 00 	stx  %l1, [ %g1 ]
+0060
+70e2	 //  74:	e2 70 60 40 	stx  %l1, [ %g1 + 0x40 ]
+4060
+70e2	 //  78:	e2 70 60 80 	stx  %l1, [ %g1 + 0x80 ]
+8060
+70e2	 //  7c:	e2 70 60 c0 	stx  %l1, [ %g1 + 0xc0 ]
+c060
+10a2	 //  80:	a2 10 20 00 	clr  %l1
+0020
+1082	 //  84:	82 10 20 10 	mov  0x10, %g1
+1020
+f0e2	 //  88:	e2 f0 48 40 	stxa  %l1, [ %g1 ] #ASI_DCACHE_INVALIDATE
+4048
+10a2	 //  8c:	a2 10 20 03 	mov  3, %l1
+0320
+f0e2	 //  90:	e2 f0 08 a0 	stxa  %l1, [ %g0 ] #ASI_LSU_CONTROL_REG
+a008
+48a3	 //  94:	a3 48 00 00 	rdhpr  %hpstate, %l1
+0000
+9c81	 //  98:	81 9c 68 20 	wrhpr  %l1, 0x820, %hpstate
+2068
+8087	 //  9c:	87 80 20 25 	wr  %g0, 0x25, %asi
+2520
+f0c0	 //  a0:	c0 f0 23 c0 	stxa  %g0, [ 0x3c0 ] %asi
+c023
+f0c0	 //  a4:	c0 f0 23 c8 	stxa  %g0, [ 0x3c8 ] %asi
+c823
+f0c0	 //  a8:	c0 f0 23 d0 	stxa  %g0, [ 0x3d0 ] %asi
+d023
+f0c0	 //  ac:	c0 f0 23 d8 	stxa  %g0, [ 0x3d8 ] %asi
+d823
+f0c0	 //  b0:	c0 f0 23 e0 	stxa  %g0, [ 0x3e0 ] %asi
+e023
+f0c0	 //  b4:	c0 f0 23 e8 	stxa  %g0, [ 0x3e8 ] %asi
+e823
+f0c0	 //  b8:	c0 f0 23 f0 	stxa  %g0, [ 0x3f0 ] %asi
+f023
+f0c0	 //  bc:	c0 f0 23 f8 	stxa  %g0, [ 0x3f8 ] %asi
+f823
+908f	 //  c0:	8f 90 20 00 	wrpr  0, %tl
+0020
+90a1	 //  c4:	a1 90 20 00 	wrpr  0, %gl
+0020
+808d	 //  c8:	8d 80 20 00 	wr  %g0, 0, %fprs
+0020
+8085	 //  cc:	85 80 20 00 	wr  %g0, 0, %ccr
+0020
+8087	 //  d0:	87 80 20 00 	wr  %g0, 0, %asi
+0020
+1084	 //  d4:	84 10 20 00 	clr  %g2
+0020
+9089	 //  d8:	89 90 80 00 	wrpr  %g2, %tick
+0080
+1084	 //  dc:	84 10 20 00 	clr  %g2
+0020
+80b1	 //  e0:	b1 80 80 00 	mov  %g2, %asr24
+0080
+1084	 //  e4:	84 10 20 01 	mov  1, %g2
+0120
+2885	 //  e8:	85 28 b0 3f 	sllx  %g2, 0x3f, %g2
+3fb0
+80af	 //  ec:	af 80 80 00 	mov  %g2, %asr23
+0080
+80b3	 //  f0:	b3 80 80 00 	mov  %g2, %asr25
+0080
+98bf	 //  f4:	bf 98 80 00 	wrhpr  %g2, %hstick_cmpr
+0080
+8081	 //  f8:	81 80 00 00 	mov  %g0, %y
+0000
+9091	 //  fc:	91 90 20 0f 	wrpr  0xf, %pil
+0f20
+9093	 // 100:	93 90 20 00 	wrpr  0, %cwp
+0020
+9095	 // 104:	95 90 20 06 	wrpr  6, %cansave
+0620
+9097	 // 108:	97 90 20 00 	wrpr  0, %canrestore
+0020
+909b	 // 10c:	9b 90 20 00 	wrpr  0, %otherwin
+0020
+9099	 // 110:	99 90 20 07 	wrpr  7, %cleanwin
+0720
+909d	 // 114:	9d 90 20 07 	wrpr  7, %wstate
+0720
+1082	 // 118:	82 10 20 18 	mov  0x18, %g1
+1820
+f0c0	 // 11c:	c0 f0 0a 01 	stxa  %g0, [ %g0 + %g1 ] #ASI_IMMU
+010a
+f0c0	 // 120:	c0 f0 0b 01 	stxa  %g0, [ %g0 + %g1 ] #ASI_DMMU
+010b
+10a2	 // 124:	a2 10 20 03 	mov  3, %l1
+0320
+f0e2	 // 128:	e2 f0 09 60 	stxa  %l1, [ %g0 ] #ASI_ESTATE_ERROR_EN
+6009
+10a2	 // 12c:	a2 10 20 03 	mov  3, %l1
+0320
+1082	 // 130:	82 10 20 aa 	mov  0xaa, %g1
+aa20
+2883	 // 134:	83 28 70 20 	sllx  %g1, 0x20, %g1
+2070
+70e2	 // 138:	e2 70 60 00 	stx  %l1, [ %g1 ]
+0060
+70e2	 // 13c:	e2 70 60 40 	stx  %l1, [ %g1 + 0x40 ]
+4060
+70e2	 // 140:	e2 70 60 80 	stx  %l1, [ %g1 + 0x80 ]
+8060
+70e2	 // 144:	e2 70 60 c0 	stx  %l1, [ %g1 + 0xc0 ]
+c060
+46a3	 // 148:	a3 46 80 00 	rd  %asr26, %l1
+0080
+0003	 // 14c:	03 00 00 07 	sethi  %hi(0x1c00), %g1
+0700
+1082	 // 150:	82 10 63 00 	or  %g1, 0x300, %g1	! 1f00 <main+0x1ee0>
+0063
+0ca2	 // 154:	a2 0c 40 01 	and  %l1, %g1, %l1
+0140
+34a3	 // 158:	a3 34 70 08 	srlx  %l1, 8, %l1
+0870
+0003	 // 15c:	03 00 00 00 	sethi  %hi(0), %g1
+0000
+0005	 // 160:	05 00 01 30 	sethi  %hi(0x4c000), %g2
+3001
+1082	 // 164:	82 10 60 00 	mov  %g1, %g1
+0060
+1084	 // 168:	84 10 a0 00 	mov  %g2, %g2
+00a0
+2883	 // 16c:	83 28 70 20 	sllx  %g1, 0x20, %g1
+2070
+1084	 // 170:	84 10 80 01 	or  %g2, %g1, %g2
+0180
+2ca3	 // 174:	a3 2c 70 03 	sllx  %l1, 3, %l1
+0370
+58c4	 // 178:	c4 58 80 11 	ldx  [ %g2 + %l1 ], %g2
+1180
+1082	 // 17c:	82 10 20 80 	mov  0x80, %g1
+8020
+f0c4	 // 180:	c4 f0 4b 00 	stxa  %g2, [ %g1 ] #ASI_DMMU
+004b
+002f	 // 184:	2f 00 02 00 	sethi  %hi(0x80000), %l7
+0002
+9d8b	 // 188:	8b 9d c0 00 	wrhpr  %l7, %htba
+00c0
+0021	 // 18c:	21 00 00 00 	sethi  %hi(0), %l0
+0000
+0003	 // 190:	03 00 01 30 	sethi  %hi(0x4c000), %g1
+3001
+14a0	 // 194:	a0 14 20 00 	mov  %l0, %l0
+0020
+1082	 // 198:	82 10 61 40 	or  %g1, 0x140, %g1
+4061
+2ca1	 // 19c:	a1 2c 30 20 	sllx  %l0, 0x20, %l0
+2030
+1082	 // 1a0:	82 10 40 10 	or  %g1, %l0, %g1
+1040
+2885	 // 1a4:	85 28 b0 07 	sllx  %g2, 7, %g2
+07b0
+0082	 // 1a8:	82 00 40 02 	add  %g1, %g2, %g1
+0240
+58e2	 // 1ac:	e2 58 40 00 	ldx  [ %g1 ], %l1
+0040
+f0e2	 // 1b0:	e2 f0 06 e0 	stxa  %l1, [ %g0 ] (55)
+e006
+58e2	 // 1b4:	e2 58 60 08 	ldx  [ %g1 + 8 ], %l1
+0860
+f0e2	 // 1b8:	e2 f0 07 e0 	stxa  %l1, [ %g0 ] (63)
+e007
+58e2	 // 1bc:	e2 58 60 10 	ldx  [ %g1 + 0x10 ], %l1
+1060
+f0e2	 // 1c0:	e2 f0 06 a0 	stxa  %l1, [ %g0 ] (53)
+a006
+58e2	 // 1c4:	e2 58 60 20 	ldx  [ %g1 + 0x20 ], %l1
+2060
+f0e2	 // 1c8:	e2 f0 06 c0 	stxa  %l1, [ %g0 ] (54)
+c006
+58e2	 // 1cc:	e2 58 60 18 	ldx  [ %g1 + 0x18 ], %l1
+1860
+f0e2	 // 1d0:	e2 f0 07 a0 	stxa  %l1, [ %g0 ] (61)
+a007
+58e2	 // 1d4:	e2 58 60 28 	ldx  [ %g1 + 0x28 ], %l1
+2860
+f0e2	 // 1d8:	e2 f0 07 c0 	stxa  %l1, [ %g0 ] (62)
+c007
+58e2	 // 1dc:	e2 58 60 40 	ldx  [ %g1 + 0x40 ], %l1
+4060
+f0e2	 // 1e0:	e2 f0 06 60 	stxa  %l1, [ %g0 ] #ASI_PCACHE_SNOOP_TAG
+6006
+58e2	 // 1e4:	e2 58 60 48 	ldx  [ %g1 + 0x48 ], %l1
+4860
+f0e2	 // 1e8:	e2 f0 07 60 	stxa  %l1, [ %g0 ] #ASI_WCACHE_SNOOP_TAG
+6007
+58e2	 // 1ec:	e2 58 60 50 	ldx  [ %g1 + 0x50 ], %l1
+5060
+f0e2	 // 1f0:	e2 f0 06 20 	stxa  %l1, [ %g0 ] #ASI_PCACHE_DATA
 2006
-9790
-2000
-9b90
-2000
-9990
+58e2	 // 1f4:	e2 58 60 60 	ldx  [ %g1 + 0x60 ], %l1
+6060
+f0e2	 // 1f8:	e2 f0 06 40 	stxa  %l1, [ %g0 ] #ASI_PCACHE_TAG
+4006
+58e2	 // 1fc:	e2 58 60 58 	ldx  [ %g1 + 0x58 ], %l1
+5860
+f0e2	 // 200:	e2 f0 07 20 	stxa  %l1, [ %g0 ] #ASI_WCACHE_DATA
 2007
-9d90
-2007
-8210
-2018
-c0f0
-0a01
-c0f0
-0b01
-a210
-2003
-e2f0
-0960
-a210
-2003
-8210
-20aa
-8328
-7020
-e270
-6000
-e270
-6040
-e270
-6080
-e270
-60c0
-a346
-8000
-0300
-0007
-8210
-6300
-a20c
-4001
-a334
-7008
-0300
-0000
-0500
-0130
-8210
-6000
-8410
-a000
-8328
-7020
-8410
-8001
-a32c
-7003
-c458
-8011
-8210
-2080
-c4f0
-4b00
-2f00
-0200
-8b9d
-c000
-2100
-0000
-0300
-0130
-a014
-2000
-8210
-6140
-a12c
-3020
-8210
-4010
-8528
-b007
-8200
-4002
-e258
-4000
-e2f0
-06e0
-e258
+58e2	 // 204:	e2 58 60 68 	ldx  [ %g1 + 0x68 ], %l1
+6860
+f0e2	 // 208:	e2 f0 07 40 	stxa  %l1, [ %g0 ] #ASI_WCACHE_TAG
+4007
+1094	 // 20c:	94 10 20 80 	mov  0x80, %o2
+8020
+f2c0	 // 210:	c0 f2 8a e0 	stxa  %g0, [ %o2 ] #ASI_IMMU_DEMAP
+e08a
+f2c0	 // 214:	c0 f2 8b e0 	stxa  %g0, [ %o2 ] #ASI_DMMU_DEMAP
+e08b
+10a2	 // 218:	a2 10 20 08 	mov  8, %l1
+0820
+f4c0	 // 21c:	c0 f4 44 20 	stxa  %g0, [ %l1 ] #ASI_MMU
+2044
+10a2	 // 220:	a2 10 20 10 	mov  0x10, %l1
+1020
+f4c0	 // 224:	c0 f4 44 20 	stxa  %g0, [ %l1 ] #ASI_MMU
+2044
+10a2	 // 228:	a2 10 20 0f 	mov  0xf, %l1
+0f20
+f0e2	 // 22c:	e2 f0 08 a0 	stxa  %l1, [ %g0 ] #ASI_LSU_CONTROL_REG
+a008
+0003	 // 230:	03 00 00 00 	sethi  %hi(0), %g1
+0000
+0005	 // 234:	05 00 05 10 	sethi  %hi(0x144000), %g2
+1005
+1082	 // 238:	82 10 60 00 	mov  %g1, %g1
+0060
+1084	 // 23c:	84 10 a0 00 	mov  %g2, %g2
+00a0
+2883	 // 240:	83 28 70 20 	sllx  %g1, 0x20, %g1
+2070
+1084	 // 244:	84 10 80 01 	or  %g2, %g1, %g2
+0180
+4887	 // 248:	87 48 00 00 	rdhpr  %hpstate, %g3
+0000
+908f	 // 24c:	8f 90 20 01 	wrpr  1, %tl
+0120
+1088	 // 250:	88 10 20 00 	clr  %g4
+0020
+9983	 // 254:	83 99 00 00 	wrhpr  %g4, %htstate
+0000
+908f	 // 258:	8f 90 20 00 	wrpr  0, %tl
+0020
+1090	 // 25c:	90 10 20 00 	clr  %o0
+0020
+c081	 // 260:	81 c0 80 00 	jmp  %g2
+0080
+9881	 // 264:	81 98 28 00 	wrhpr  0x800, %hpstate
+0028
+0001	 // 268:	01 00 00 00 	nop 
+0000
+0001	 // 26c:	01 00 00 00 	nop 
+0000
+1082	 // 270:	82 10 20 0f 	mov  0xf, %g1	! f <main-0x11>
+0f20
+f0c2	 // 274:	c2 f0 08 a0 	stxa  %g1, [ %g0 ] #ASI_LSU_CONTROL_REG
+a008
+f0c0	 // 278:	c0 f0 08 60 	stxa  %g0, [ %g0 ] #ASI_DCACHE_UTAG
 6008
-e2f0
-07e0
-e258
-6010
-e2f0
-06a0
-e258
-6020
-e2f0
-06c0
-e258
-6018
-e2f0
-07a0
-e258
-6028
-e2f0
-07c0
-e258
-6040
-e2f0
-0660
-e258
-6048
-e2f0
-0760
-e258
-6050
-e2f0
-0620
-e258
-6060
-e2f0
-0640
-e258
-6058
-e2f0
-0720
-e258
-6068
-e2f0
-0740
-9410
-2080
-c0f2
-8ae0
-c0f2
-8be0
-a210
-2008
-c0f4
-4420
-a210
-2010
-c0f4
-4420
-a210
-200f
-e2f0
-08a0
-0300
-0000
-0500
-0510
-8210
-6000
-8410
-a000
-8328
-7020
-8410
-8001
-8748
-0000
-8f90
-2001
-8810
-2000
-8399
-0000
-8f90
-2000
-9010
-2000
-81c0
-8000
-8198
-2800
-0100
-0000
-0100
-0000
-8210
-200f
-c2f0
-08a0
-c0f0
-0860
-8348
-0000
-0100
-0000
-0100
-0000
-0100
-0000
-0100
-0000
-8210
-2000
-8338
-6000
-b010
-0001
-81cf
-e008
-0100
-0000
+4883	 // 27c:	83 48 00 00 	rdhpr  %hpstate, %g1
+0000
+0001	 // 280:	01 00 00 00 	nop 
+0000
+0001	 // 284:	01 00 00 00 	nop 
+0000
+0001	 // 288:	01 00 00 00 	nop 
+0000
+0001	 // 28c:	01 00 00 00 	nop 
+0000
+c381	 // 290:	81 c3 e0 08 	retl 
+08e0
+1090	 // 294:	90 10 20 00 	clr  %o0	! 0 <main-0x20>
+0020
      
Index: trunk/sw/test.dump
===================================================================
--- trunk/sw/test.dump	(revision 19)
+++ trunk/sw/test.dump	(revision 30)
@@ -1,169 +1,165 @@
 
-test.o:     file format elf64-sparc
+test.bin:     file format elf64-sparc
 
 
 Disassembly of section .text:
 
-0000000000000000 <main>:
-   0:	9d e3 bf 50 	save  %sp, -176, %sp
-   4:	01 00 00 00 	nop 
-   8:	01 00 00 00 	nop 
-   c:	01 00 00 00 	nop 
-  10:	01 00 00 00 	nop 
-  14:	03 00 00 00 	sethi  %hi(0), %g1
-  18:	05 00 01 00 	sethi  %hi(0x40000), %g2
-  1c:	82 10 60 00 	mov  %g1, %g1
-  20:	84 10 a0 c0 	or  %g2, 0xc0, %g2
-  24:	83 28 70 20 	sllx  %g1, 0x20, %g1
-  28:	84 10 80 01 	or  %g2, %g1, %g2
-  2c:	81 c0 80 00 	jmp  %g2
-  30:	01 00 00 00 	nop 
-  34:	01 00 00 00 	nop 
-  38:	01 00 00 00 	nop 
-  3c:	01 00 00 00 	nop 
-  40:	01 00 00 00 	nop 
-  44:	b5 80 20 05 	wr  %g0, 5, %asr26
-  48:	a2 10 20 00 	clr  %l1
-  4c:	82 10 20 a9 	mov  0xa9, %g1
-  50:	83 28 70 20 	sllx  %g1, 0x20, %g1
-  54:	e2 70 60 00 	stx  %l1, [ %g1 ]
-  58:	e2 70 60 40 	stx  %l1, [ %g1 + 0x40 ]
-  5c:	e2 70 60 80 	stx  %l1, [ %g1 + 0x80 ]
-  60:	e2 70 60 c0 	stx  %l1, [ %g1 + 0xc0 ]
+0000000000000020 <main>:
+  20:	01 00 00 00 	nop 
+  24:	01 00 00 00 	nop 
+  28:	01 00 00 00 	nop 
+  2c:	01 00 00 00 	nop 
+  30:	03 00 00 00 	sethi  %hi(0), %g1
+  34:	05 00 01 00 	sethi  %hi(0x40000), %g2
+  38:	82 10 60 00 	mov  %g1, %g1
+  3c:	84 10 a0 c0 	or  %g2, 0xc0, %g2
+  40:	83 28 70 20 	sllx  %g1, 0x20, %g1
+  44:	84 10 80 01 	or  %g2, %g1, %g2
+  48:	81 c0 80 00 	jmp  %g2
+  4c:	01 00 00 00 	nop 
+  50:	01 00 00 00 	nop 
+  54:	01 00 00 00 	nop 
+  58:	01 00 00 00 	nop 
+  5c:	01 00 00 00 	nop 
+  60:	b5 80 20 05 	wr  %g0, 5, %asr26
   64:	a2 10 20 00 	clr  %l1
-  68:	82 10 20 10 	mov  0x10, %g1
-  6c:	e2 f0 48 40 	stxa  %l1, [ %g1 ] #ASI_DCACHE_INVALIDATE
-  70:	a2 10 20 03 	mov  3, %l1
-  74:	e2 f0 08 a0 	stxa  %l1, [ %g0 ] #ASI_LSU_CONTROL_REG
-  78:	a3 48 00 00 	rdhpr  %hpstate, %l1
-  7c:	81 9c 68 20 	wrhpr  %l1, 0x820, %hpstate
-  80:	87 80 20 25 	wr  %g0, 0x25, %asi
-  84:	c0 f0 23 c0 	stxa  %g0, [ 0x3c0 ] %asi
-  88:	c0 f0 23 c8 	stxa  %g0, [ 0x3c8 ] %asi
-  8c:	c0 f0 23 d0 	stxa  %g0, [ 0x3d0 ] %asi
-  90:	c0 f0 23 d8 	stxa  %g0, [ 0x3d8 ] %asi
-  94:	c0 f0 23 e0 	stxa  %g0, [ 0x3e0 ] %asi
-  98:	c0 f0 23 e8 	stxa  %g0, [ 0x3e8 ] %asi
-  9c:	c0 f0 23 f0 	stxa  %g0, [ 0x3f0 ] %asi
-  a0:	c0 f0 23 f8 	stxa  %g0, [ 0x3f8 ] %asi
-  a4:	8f 90 20 00 	wrpr  0, %tl
-  a8:	a1 90 20 00 	wrpr  0, %gl
-  ac:	8d 80 20 00 	wr  %g0, 0, %fprs
-  b0:	85 80 20 00 	wr  %g0, 0, %ccr
-  b4:	87 80 20 00 	wr  %g0, 0, %asi
-  b8:	84 10 20 00 	clr  %g2
-  bc:	89 90 80 00 	wrpr  %g2, %tick
-  c0:	84 10 20 00 	clr  %g2
-  c4:	b1 80 80 00 	mov  %g2, %asr24
-  c8:	84 10 20 01 	mov  1, %g2
-  cc:	85 28 b0 3f 	sllx  %g2, 0x3f, %g2
-  d0:	af 80 80 00 	mov  %g2, %asr23
-  d4:	b3 80 80 00 	mov  %g2, %asr25
-  d8:	bf 98 80 00 	wrhpr  %g2, %hstick_cmpr
-  dc:	81 80 00 00 	mov  %g0, %y
-  e0:	91 90 20 0f 	wrpr  0xf, %pil
-  e4:	93 90 20 00 	wrpr  0, %cwp
-  e8:	95 90 20 06 	wrpr  6, %cansave
-  ec:	97 90 20 00 	wrpr  0, %canrestore
-  f0:	9b 90 20 00 	wrpr  0, %otherwin
-  f4:	99 90 20 07 	wrpr  7, %cleanwin
-  f8:	9d 90 20 07 	wrpr  7, %wstate
-  fc:	82 10 20 18 	mov  0x18, %g1
- 100:	c0 f0 0a 01 	stxa  %g0, [ %g0 + %g1 ] #ASI_IMMU
- 104:	c0 f0 0b 01 	stxa  %g0, [ %g0 + %g1 ] #ASI_DMMU
- 108:	a2 10 20 03 	mov  3, %l1
- 10c:	e2 f0 09 60 	stxa  %l1, [ %g0 ] #ASI_ESTATE_ERROR_EN
- 110:	a2 10 20 03 	mov  3, %l1
- 114:	82 10 20 aa 	mov  0xaa, %g1
- 118:	83 28 70 20 	sllx  %g1, 0x20, %g1
- 11c:	e2 70 60 00 	stx  %l1, [ %g1 ]
- 120:	e2 70 60 40 	stx  %l1, [ %g1 + 0x40 ]
- 124:	e2 70 60 80 	stx  %l1, [ %g1 + 0x80 ]
- 128:	e2 70 60 c0 	stx  %l1, [ %g1 + 0xc0 ]
- 12c:	a3 46 80 00 	rd  %asr26, %l1
- 130:	03 00 00 07 	sethi  %hi(0x1c00), %g1
- 134:	82 10 63 00 	or  %g1, 0x300, %g1	! 1f00 <main+0x1f00>
- 138:	a2 0c 40 01 	and  %l1, %g1, %l1
- 13c:	a3 34 70 08 	srlx  %l1, 8, %l1
- 140:	03 00 00 00 	sethi  %hi(0), %g1
- 144:	05 00 01 30 	sethi  %hi(0x4c000), %g2
- 148:	82 10 60 00 	mov  %g1, %g1
- 14c:	84 10 a0 00 	mov  %g2, %g2
- 150:	83 28 70 20 	sllx  %g1, 0x20, %g1
- 154:	84 10 80 01 	or  %g2, %g1, %g2
- 158:	a3 2c 70 03 	sllx  %l1, 3, %l1
- 15c:	c4 58 80 11 	ldx  [ %g2 + %l1 ], %g2
- 160:	82 10 20 80 	mov  0x80, %g1
- 164:	c4 f0 4b 00 	stxa  %g2, [ %g1 ] #ASI_DMMU
- 168:	2f 00 02 00 	sethi  %hi(0x80000), %l7
- 16c:	8b 9d c0 00 	wrhpr  %l7, %htba
- 170:	21 00 00 00 	sethi  %hi(0), %l0
- 174:	03 00 01 30 	sethi  %hi(0x4c000), %g1
- 178:	a0 14 20 00 	mov  %l0, %l0
- 17c:	82 10 61 40 	or  %g1, 0x140, %g1
- 180:	a1 2c 30 20 	sllx  %l0, 0x20, %l0
- 184:	82 10 40 10 	or  %g1, %l0, %g1
- 188:	85 28 b0 07 	sllx  %g2, 7, %g2
- 18c:	82 00 40 02 	add  %g1, %g2, %g1
- 190:	e2 58 40 00 	ldx  [ %g1 ], %l1
- 194:	e2 f0 06 e0 	stxa  %l1, [ %g0 ] (55)
- 198:	e2 58 60 08 	ldx  [ %g1 + 8 ], %l1
- 19c:	e2 f0 07 e0 	stxa  %l1, [ %g0 ] (63)
- 1a0:	e2 58 60 10 	ldx  [ %g1 + 0x10 ], %l1
- 1a4:	e2 f0 06 a0 	stxa  %l1, [ %g0 ] (53)
- 1a8:	e2 58 60 20 	ldx  [ %g1 + 0x20 ], %l1
- 1ac:	e2 f0 06 c0 	stxa  %l1, [ %g0 ] (54)
- 1b0:	e2 58 60 18 	ldx  [ %g1 + 0x18 ], %l1
- 1b4:	e2 f0 07 a0 	stxa  %l1, [ %g0 ] (61)
- 1b8:	e2 58 60 28 	ldx  [ %g1 + 0x28 ], %l1
- 1bc:	e2 f0 07 c0 	stxa  %l1, [ %g0 ] (62)
- 1c0:	e2 58 60 40 	ldx  [ %g1 + 0x40 ], %l1
- 1c4:	e2 f0 06 60 	stxa  %l1, [ %g0 ] #ASI_PCACHE_SNOOP_TAG
- 1c8:	e2 58 60 48 	ldx  [ %g1 + 0x48 ], %l1
- 1cc:	e2 f0 07 60 	stxa  %l1, [ %g0 ] #ASI_WCACHE_SNOOP_TAG
- 1d0:	e2 58 60 50 	ldx  [ %g1 + 0x50 ], %l1
- 1d4:	e2 f0 06 20 	stxa  %l1, [ %g0 ] #ASI_PCACHE_DATA
- 1d8:	e2 58 60 60 	ldx  [ %g1 + 0x60 ], %l1
- 1dc:	e2 f0 06 40 	stxa  %l1, [ %g0 ] #ASI_PCACHE_TAG
- 1e0:	e2 58 60 58 	ldx  [ %g1 + 0x58 ], %l1
- 1e4:	e2 f0 07 20 	stxa  %l1, [ %g0 ] #ASI_WCACHE_DATA
- 1e8:	e2 58 60 68 	ldx  [ %g1 + 0x68 ], %l1
- 1ec:	e2 f0 07 40 	stxa  %l1, [ %g0 ] #ASI_WCACHE_TAG
- 1f0:	94 10 20 80 	mov  0x80, %o2
- 1f4:	c0 f2 8a e0 	stxa  %g0, [ %o2 ] #ASI_IMMU_DEMAP
- 1f8:	c0 f2 8b e0 	stxa  %g0, [ %o2 ] #ASI_DMMU_DEMAP
- 1fc:	a2 10 20 08 	mov  8, %l1
- 200:	c0 f4 44 20 	stxa  %g0, [ %l1 ] #ASI_MMU
- 204:	a2 10 20 10 	mov  0x10, %l1
- 208:	c0 f4 44 20 	stxa  %g0, [ %l1 ] #ASI_MMU
- 20c:	a2 10 20 0f 	mov  0xf, %l1
- 210:	e2 f0 08 a0 	stxa  %l1, [ %g0 ] #ASI_LSU_CONTROL_REG
- 214:	03 00 00 00 	sethi  %hi(0), %g1
- 218:	05 00 05 10 	sethi  %hi(0x144000), %g2
- 21c:	82 10 60 00 	mov  %g1, %g1
- 220:	84 10 a0 00 	mov  %g2, %g2
- 224:	83 28 70 20 	sllx  %g1, 0x20, %g1
- 228:	84 10 80 01 	or  %g2, %g1, %g2
- 22c:	87 48 00 00 	rdhpr  %hpstate, %g3
- 230:	8f 90 20 01 	wrpr  1, %tl
- 234:	88 10 20 00 	clr  %g4
- 238:	83 99 00 00 	wrhpr  %g4, %htstate
- 23c:	8f 90 20 00 	wrpr  0, %tl
- 240:	90 10 20 00 	clr  %o0
- 244:	81 c0 80 00 	jmp  %g2
- 248:	81 98 28 00 	wrhpr  0x800, %hpstate
- 24c:	01 00 00 00 	nop 
- 250:	01 00 00 00 	nop 
- 254:	82 10 20 0f 	mov  0xf, %g1	! f <main+0xf>
- 258:	c2 f0 08 a0 	stxa  %g1, [ %g0 ] #ASI_LSU_CONTROL_REG
- 25c:	c0 f0 08 60 	stxa  %g0, [ %g0 ] #ASI_DCACHE_UTAG
- 260:	83 48 00 00 	rdhpr  %hpstate, %g1
- 264:	01 00 00 00 	nop 
+  68:	82 10 20 a9 	mov  0xa9, %g1
+  6c:	83 28 70 20 	sllx  %g1, 0x20, %g1
+  70:	e2 70 60 00 	stx  %l1, [ %g1 ]
+  74:	e2 70 60 40 	stx  %l1, [ %g1 + 0x40 ]
+  78:	e2 70 60 80 	stx  %l1, [ %g1 + 0x80 ]
+  7c:	e2 70 60 c0 	stx  %l1, [ %g1 + 0xc0 ]
+  80:	a2 10 20 00 	clr  %l1
+  84:	82 10 20 10 	mov  0x10, %g1
+  88:	e2 f0 48 40 	stxa  %l1, [ %g1 ] #ASI_DCACHE_INVALIDATE
+  8c:	a2 10 20 03 	mov  3, %l1
+  90:	e2 f0 08 a0 	stxa  %l1, [ %g0 ] #ASI_LSU_CONTROL_REG
+  94:	a3 48 00 00 	rdhpr  %hpstate, %l1
+  98:	81 9c 68 20 	wrhpr  %l1, 0x820, %hpstate
+  9c:	87 80 20 25 	wr  %g0, 0x25, %asi
+  a0:	c0 f0 23 c0 	stxa  %g0, [ 0x3c0 ] %asi
+  a4:	c0 f0 23 c8 	stxa  %g0, [ 0x3c8 ] %asi
+  a8:	c0 f0 23 d0 	stxa  %g0, [ 0x3d0 ] %asi
+  ac:	c0 f0 23 d8 	stxa  %g0, [ 0x3d8 ] %asi
+  b0:	c0 f0 23 e0 	stxa  %g0, [ 0x3e0 ] %asi
+  b4:	c0 f0 23 e8 	stxa  %g0, [ 0x3e8 ] %asi
+  b8:	c0 f0 23 f0 	stxa  %g0, [ 0x3f0 ] %asi
+  bc:	c0 f0 23 f8 	stxa  %g0, [ 0x3f8 ] %asi
+  c0:	8f 90 20 00 	wrpr  0, %tl
+  c4:	a1 90 20 00 	wrpr  0, %gl
+  c8:	8d 80 20 00 	wr  %g0, 0, %fprs
+  cc:	85 80 20 00 	wr  %g0, 0, %ccr
+  d0:	87 80 20 00 	wr  %g0, 0, %asi
+  d4:	84 10 20 00 	clr  %g2
+  d8:	89 90 80 00 	wrpr  %g2, %tick
+  dc:	84 10 20 00 	clr  %g2
+  e0:	b1 80 80 00 	mov  %g2, %asr24
+  e4:	84 10 20 01 	mov  1, %g2
+  e8:	85 28 b0 3f 	sllx  %g2, 0x3f, %g2
+  ec:	af 80 80 00 	mov  %g2, %asr23
+  f0:	b3 80 80 00 	mov  %g2, %asr25
+  f4:	bf 98 80 00 	wrhpr  %g2, %hstick_cmpr
+  f8:	81 80 00 00 	mov  %g0, %y
+  fc:	91 90 20 0f 	wrpr  0xf, %pil
+ 100:	93 90 20 00 	wrpr  0, %cwp
+ 104:	95 90 20 06 	wrpr  6, %cansave
+ 108:	97 90 20 00 	wrpr  0, %canrestore
+ 10c:	9b 90 20 00 	wrpr  0, %otherwin
+ 110:	99 90 20 07 	wrpr  7, %cleanwin
+ 114:	9d 90 20 07 	wrpr  7, %wstate
+ 118:	82 10 20 18 	mov  0x18, %g1
+ 11c:	c0 f0 0a 01 	stxa  %g0, [ %g0 + %g1 ] #ASI_IMMU
+ 120:	c0 f0 0b 01 	stxa  %g0, [ %g0 + %g1 ] #ASI_DMMU
+ 124:	a2 10 20 03 	mov  3, %l1
+ 128:	e2 f0 09 60 	stxa  %l1, [ %g0 ] #ASI_ESTATE_ERROR_EN
+ 12c:	a2 10 20 03 	mov  3, %l1
+ 130:	82 10 20 aa 	mov  0xaa, %g1
+ 134:	83 28 70 20 	sllx  %g1, 0x20, %g1
+ 138:	e2 70 60 00 	stx  %l1, [ %g1 ]
+ 13c:	e2 70 60 40 	stx  %l1, [ %g1 + 0x40 ]
+ 140:	e2 70 60 80 	stx  %l1, [ %g1 + 0x80 ]
+ 144:	e2 70 60 c0 	stx  %l1, [ %g1 + 0xc0 ]
+ 148:	a3 46 80 00 	rd  %asr26, %l1
+ 14c:	03 00 00 07 	sethi  %hi(0x1c00), %g1
+ 150:	82 10 63 00 	or  %g1, 0x300, %g1	! 1f00 <main+0x1ee0>
+ 154:	a2 0c 40 01 	and  %l1, %g1, %l1
+ 158:	a3 34 70 08 	srlx  %l1, 8, %l1
+ 15c:	03 00 00 00 	sethi  %hi(0), %g1
+ 160:	05 00 01 30 	sethi  %hi(0x4c000), %g2
+ 164:	82 10 60 00 	mov  %g1, %g1
+ 168:	84 10 a0 00 	mov  %g2, %g2
+ 16c:	83 28 70 20 	sllx  %g1, 0x20, %g1
+ 170:	84 10 80 01 	or  %g2, %g1, %g2
+ 174:	a3 2c 70 03 	sllx  %l1, 3, %l1
+ 178:	c4 58 80 11 	ldx  [ %g2 + %l1 ], %g2
+ 17c:	82 10 20 80 	mov  0x80, %g1
+ 180:	c4 f0 4b 00 	stxa  %g2, [ %g1 ] #ASI_DMMU
+ 184:	2f 00 02 00 	sethi  %hi(0x80000), %l7
+ 188:	8b 9d c0 00 	wrhpr  %l7, %htba
+ 18c:	21 00 00 00 	sethi  %hi(0), %l0
+ 190:	03 00 01 30 	sethi  %hi(0x4c000), %g1
+ 194:	a0 14 20 00 	mov  %l0, %l0
+ 198:	82 10 61 40 	or  %g1, 0x140, %g1
+ 19c:	a1 2c 30 20 	sllx  %l0, 0x20, %l0
+ 1a0:	82 10 40 10 	or  %g1, %l0, %g1
+ 1a4:	85 28 b0 07 	sllx  %g2, 7, %g2
+ 1a8:	82 00 40 02 	add  %g1, %g2, %g1
+ 1ac:	e2 58 40 00 	ldx  [ %g1 ], %l1
+ 1b0:	e2 f0 06 e0 	stxa  %l1, [ %g0 ] (55)
+ 1b4:	e2 58 60 08 	ldx  [ %g1 + 8 ], %l1
+ 1b8:	e2 f0 07 e0 	stxa  %l1, [ %g0 ] (63)
+ 1bc:	e2 58 60 10 	ldx  [ %g1 + 0x10 ], %l1
+ 1c0:	e2 f0 06 a0 	stxa  %l1, [ %g0 ] (53)
+ 1c4:	e2 58 60 20 	ldx  [ %g1 + 0x20 ], %l1
+ 1c8:	e2 f0 06 c0 	stxa  %l1, [ %g0 ] (54)
+ 1cc:	e2 58 60 18 	ldx  [ %g1 + 0x18 ], %l1
+ 1d0:	e2 f0 07 a0 	stxa  %l1, [ %g0 ] (61)
+ 1d4:	e2 58 60 28 	ldx  [ %g1 + 0x28 ], %l1
+ 1d8:	e2 f0 07 c0 	stxa  %l1, [ %g0 ] (62)
+ 1dc:	e2 58 60 40 	ldx  [ %g1 + 0x40 ], %l1
+ 1e0:	e2 f0 06 60 	stxa  %l1, [ %g0 ] #ASI_PCACHE_SNOOP_TAG
+ 1e4:	e2 58 60 48 	ldx  [ %g1 + 0x48 ], %l1
+ 1e8:	e2 f0 07 60 	stxa  %l1, [ %g0 ] #ASI_WCACHE_SNOOP_TAG
+ 1ec:	e2 58 60 50 	ldx  [ %g1 + 0x50 ], %l1
+ 1f0:	e2 f0 06 20 	stxa  %l1, [ %g0 ] #ASI_PCACHE_DATA
+ 1f4:	e2 58 60 60 	ldx  [ %g1 + 0x60 ], %l1
+ 1f8:	e2 f0 06 40 	stxa  %l1, [ %g0 ] #ASI_PCACHE_TAG
+ 1fc:	e2 58 60 58 	ldx  [ %g1 + 0x58 ], %l1
+ 200:	e2 f0 07 20 	stxa  %l1, [ %g0 ] #ASI_WCACHE_DATA
+ 204:	e2 58 60 68 	ldx  [ %g1 + 0x68 ], %l1
+ 208:	e2 f0 07 40 	stxa  %l1, [ %g0 ] #ASI_WCACHE_TAG
+ 20c:	94 10 20 80 	mov  0x80, %o2
+ 210:	c0 f2 8a e0 	stxa  %g0, [ %o2 ] #ASI_IMMU_DEMAP
+ 214:	c0 f2 8b e0 	stxa  %g0, [ %o2 ] #ASI_DMMU_DEMAP
+ 218:	a2 10 20 08 	mov  8, %l1
+ 21c:	c0 f4 44 20 	stxa  %g0, [ %l1 ] #ASI_MMU
+ 220:	a2 10 20 10 	mov  0x10, %l1
+ 224:	c0 f4 44 20 	stxa  %g0, [ %l1 ] #ASI_MMU
+ 228:	a2 10 20 0f 	mov  0xf, %l1
+ 22c:	e2 f0 08 a0 	stxa  %l1, [ %g0 ] #ASI_LSU_CONTROL_REG
+ 230:	03 00 00 00 	sethi  %hi(0), %g1
+ 234:	05 00 05 10 	sethi  %hi(0x144000), %g2
+ 238:	82 10 60 00 	mov  %g1, %g1
+ 23c:	84 10 a0 00 	mov  %g2, %g2
+ 240:	83 28 70 20 	sllx  %g1, 0x20, %g1
+ 244:	84 10 80 01 	or  %g2, %g1, %g2
+ 248:	87 48 00 00 	rdhpr  %hpstate, %g3
+ 24c:	8f 90 20 01 	wrpr  1, %tl
+ 250:	88 10 20 00 	clr  %g4
+ 254:	83 99 00 00 	wrhpr  %g4, %htstate
+ 258:	8f 90 20 00 	wrpr  0, %tl
+ 25c:	90 10 20 00 	clr  %o0
+ 260:	81 c0 80 00 	jmp  %g2
+ 264:	81 98 28 00 	wrhpr  0x800, %hpstate
  268:	01 00 00 00 	nop 
  26c:	01 00 00 00 	nop 
- 270:	01 00 00 00 	nop 
- 274:	82 10 20 00 	clr  %g1	! 0 <main>
- 278:	83 38 60 00 	sra  %g1, 0, %g1
- 27c:	b0 10 00 01 	mov  %g1, %i0
- 280:	81 cf e0 08 	rett  %i7 + 8
+ 270:	82 10 20 0f 	mov  0xf, %g1	! f <main-0x11>
+ 274:	c2 f0 08 a0 	stxa  %g1, [ %g0 ] #ASI_LSU_CONTROL_REG
+ 278:	c0 f0 08 60 	stxa  %g0, [ %g0 ] #ASI_DCACHE_UTAG
+ 27c:	83 48 00 00 	rdhpr  %hpstate, %g1
+ 280:	01 00 00 00 	nop 
  284:	01 00 00 00 	nop 
+ 288:	01 00 00 00 	nop 
+ 28c:	01 00 00 00 	nop 
+ 290:	81 c3 e0 08 	retl 
+ 294:	90 10 20 00 	clr  %o0	! 0 <main-0x20>
Index: trunk/sw/compila
===================================================================
--- trunk/sw/compila	(revision 19)
+++ 	(revision )
@@ -1,12 +1,0 @@
-#!/bin/bash
-
-##bisognerebbe fare un makefile ma per ora:
-
-## compila con ISA SPARC-V9
-/opt/sparc64-sun-solaris2.8-toolchain/bin/sparc64-sun-solaris2.8-gcc -ffreestanding -nostdinc -c test.c
-
-## fa il dump del file
-/opt/sparc64-sun-solaris2.8-toolchain/sparc64-sun-solaris2.8/bin/objdump -d test.o >test.dump
-
-### crea memory.hex
-../tools/dump2hex.php <test.dump >../sim/memory.hex
Index: trunk/tools/dump2hex.php
===================================================================
--- trunk/tools/dump2hex.php	(revision 26)
+++ trunk/tools/dump2hex.php	(revision 30)
@@ -6,25 +6,26 @@
 
   // Discard first lines
-  for($i=0; $i<8; $i++) fgets($fp);
+  for($i=0; $i<7; $i++) fgets($fp);
 
   // instruction start at address 10h
   //echo "@ 10\n";
   echo "// inserisco 16 ff per partire da 10h e scrivo op4,op3,op2,op1 \n";
-  echo "ffff\n";
-  echo "ffff\n";
-  echo "ffff\n";
-  echo "ffff\n";
-  echo "ffff\n";
-  echo "ffff\n";
-  echo "ffff\n";
-  echo "ffff\n";
-  echo "ffff\n";
-  echo "ffff\n";
-  echo "ffff\n";
-  echo "ffff\n";
-  echo "ffff\n";
-  echo "ffff\n";
-  echo "ffff\n";
-  echo "ffff\n";
+  echo "0001\n";
+  echo "0000\n";
+  echo "0001\n";
+  echo "0000\n";
+  echo "0001\n";
+  echo "0000\n";
+  echo "0001\n";
+  echo "0000\n";
+  echo "0001\n";
+  echo "0000\n";
+  echo "0001\n";
+  echo "0000\n";
+  echo "0001\n";
+  echo "0000\n";
+  echo "0001\n";
+  echo "0000\n";
+
   // Print only the opcodes to stdout
   while (!feof($fp)) {
Index: trunk/tools/compila
===================================================================
--- trunk/tools/compila	(revision 30)
+++ trunk/tools/compila	(revision 30)
@@ -0,0 +1,25 @@
+#!/bin/bash
+
+##bisognerebbe fare un makefile ma per ora:
+
+if [ ! $# == 1 ]; then
+                  echo "usage: compila nome_file (without extension)"
+                  exit 0
+fi
+
+
+## compila con ISA SPARC-V9
+/opt/sparc64-sun-solaris2.8-toolchain/bin/sparc64-sun-solaris2.8-gcc -ffreestanding -nostdinc -Os -c $1.c
+
+## linka con ISA SPARC-V9 a 64 bits
+echo "create $1.bin"
+/opt/sparc64-sun-solaris2.8-toolchain/sparc64-sun-solaris2.8/bin/ld -melf64_sparc --script linker.lds $1.o -o $1.bin
+
+
+## fa il dump del file
+/opt/sparc64-sun-solaris2.8-toolchain/sparc64-sun-solaris2.8/bin/objdump -d $1.bin >$1.dump
+
+### crea memory.hex
+echo "create memory_hello.hex for simulation"
+
+../tools/dump2hex.php <$1.dump >../sim/memory_hello.hex
