mirror of
https://github.com/dschmenk/VM02.git
synced 2024-06-15 11:29:30 +00:00
57 lines
1.7 KiB
PHP
57 lines
1.7 KiB
PHP
|
;*
|
||
|
;* JAVA CLASS STRUCTURE
|
||
|
;*
|
||
|
|
||
|
;*
|
||
|
;* CLASS STRUCTURE - 24 BYTES + CONST POOL
|
||
|
;*
|
||
|
.DEFINE CLASSBASESZ 24 ; BASE CLASS SIZE = 24 BYTES
|
||
|
.DEFINE CLASSTHIS $00 ; 2 BYTES - HSTR
|
||
|
.DEFINE CLASSSUPER $02 ; 1 BYTE - CLASS INDEX
|
||
|
.DEFINE CLASSLOADER $03 ; 1 BYTE - CLASS INDEX
|
||
|
.DEFINE CLASSINSTSIZE $04 ; 2 BYTES - U2
|
||
|
.DEFINE CLASSACCESS $06 ; 2 BYTES - U2
|
||
|
.DEFINE CLASSCONSTCNT $08 ; 2 BYTES - U2
|
||
|
.DEFINE CLASSIFACECNT $0A ; 1 BYTE - U1
|
||
|
.DEFINE CLASSFIELDCNT $0B ; 1 BYTE - U1
|
||
|
.DEFINE CLASSMETHODCNT $0C ; 1 BYTE - U1
|
||
|
.DEFINE CLASSVTBLCNT $0D ; 1 BYTE - U1
|
||
|
.DEFINE CLASSIFACETBL $0E ; 2 BYTES - HMEM
|
||
|
.DEFINE CLASSFIELDTBL $10 ; 2 BYTES - HMEM
|
||
|
.DEFINE CLASSMETHODTBL $12 ; 2 BYTES - HMEM
|
||
|
.DEFINE CLASSVIRTBL $14 ; 2 BYTES - HMEM
|
||
|
.DEFINE CLASSLOCKCNT $16 ; 2 BYTES - U2
|
||
|
.DEFINE CLASSCONSTPL $18 ; CLASSCONSTCNT * CONSTPLRECSZ BYTES
|
||
|
;*
|
||
|
;* CONSTANT POOL RECORD SIZE - 5 BYTES (1 BYTE TYPE, 4 BYTES VALUE)
|
||
|
;*
|
||
|
.DEFINE CONSTPLRECSZ 5
|
||
|
.IMPORT MUL5
|
||
|
.MACRO CALC_CONSTPLRECSZ
|
||
|
JSR MUL5
|
||
|
.ENDMACRO
|
||
|
;*
|
||
|
;* FIELD TABLE RECORD - 9 BYTES
|
||
|
;*
|
||
|
.DEFINE FIELDRECSZ 10
|
||
|
.DEFINE FIELDACCESS $00 ; 1 BYTE - U1
|
||
|
.DEFINE FIELDNAME $01 ; 2 BYTES - HSTR
|
||
|
.DEFINE FIELDDESC $03 ; 2 BYTES - HSTR
|
||
|
.DEFINE FIELDTYPE $05 ; 1 BYTE - U1
|
||
|
.DEFINE FIELDINSTOFFSET $06 ; 2 BYTES - U2
|
||
|
.DEFINE FIELDSTATICVAL $06 ; 4 BYTES - U4 (UNION WITH INST OFFSET)
|
||
|
.IMPORT MUL10
|
||
|
.DEFINE MUL_FIELDRECSZ MUL10
|
||
|
;*
|
||
|
;* METHOD TABLE RECORD - 9 BYTES
|
||
|
;*
|
||
|
.DEFINE METHODRECSZ 9
|
||
|
.DEFINE METHODACCESS $00 ; 2 BYTES - U2
|
||
|
.DEFINE METHODNAME $02 ; 2 BYTES - HSTR
|
||
|
.DEFINE METHODDESC $04 ; 2 BYTES - HSTR
|
||
|
.DEFINE METHODPARAMS $06 ; 1 BYTE - U1
|
||
|
.DEFINE METHODSTATICODE $07 ; 2 BYTES - HCODE FOR STATIC CODE
|
||
|
.DEFINE METHODVINDEX $07 ; 2 BYTES - INDEX TO VTABLE (UNION WITH HCODE)
|
||
|
.IMPORT MUL9
|
||
|
.DEFINE MUL_METHODRECSZ MUL9
|