version 1.6, 2000/06/03 07:56:03
|
version 1.7, 2000/06/03 09:59:08
|
Line 23
|
Line 23
|
\ particular pages A3, A181, A182 (p. 471, 649, 650 in xpdf). |
\ particular pages A3, A181, A182 (p. 471, 649, 650 in xpdf). |
\ it is limited to the R3000 (MIPS-I) architecture, though. |
\ it is limited to the R3000 (MIPS-I) architecture, though. |
|
|
|
\ test this with |
|
\ gforth arch/mips/disasm.fs -e "here" arch/mips/testdisasm.fs -e "here over - disasm-dump bye" |sed 's/([^)]*) //'|diff -u - arch/mips/testasm.fs |
|
|
\ instruction fields |
\ instruction fields |
|
|
: disasm-op ( w -- u ) |
: disasm-op ( w -- u ) |
Line 128 $40 disasm-table cp0-tab-entry \ COP
|
Line 131 $40 disasm-table cp0-tab-entry \ COP
|
|
|
: disasm-J-target ( addr w -- ) |
: disasm-J-target ( addr w -- ) |
\ print jump target |
\ print jump target |
$03ffffff and swap $fc000000 and or 2 lshift hex. ; |
2 lshift $0fffffff and swap $f0000000 and or hex. ; |
|
|
: disasm-I-rs,rt,imm ( addr w -- ) |
: disasm-I-rs,rt,imm ( addr w -- ) |
dup disasm-rs . |
dup disasm-rs . |