use .balign (always bytes) instead of .align (depends on target)
This commit is contained in:
parent
9fe916db16
commit
7e8b06c6ab
26
jumpforth.S
26
jumpforth.S
|
|
@ -32,7 +32,7 @@
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.text
|
.text
|
||||||
.align 4
|
.balign 4
|
||||||
.globl _start
|
.globl _start
|
||||||
_start:
|
_start:
|
||||||
cld
|
cld
|
||||||
|
|
@ -62,7 +62,7 @@ _start:
|
||||||
/* Push the return address (%esi) on the return stack */
|
/* Push the return address (%esi) on the return stack */
|
||||||
/* Load the address of the body of the definition from the DFA field at %eax+4 */
|
/* Load the address of the body of the definition from the DFA field at %eax+4 */
|
||||||
.text
|
.text
|
||||||
.align 4
|
.balign 4
|
||||||
.globl DOCOL
|
.globl DOCOL
|
||||||
DOCOL:
|
DOCOL:
|
||||||
PUSHRSP %esi
|
PUSHRSP %esi
|
||||||
|
|
@ -73,7 +73,7 @@ DOCOL:
|
||||||
/* The real execution token is in the DFA field */
|
/* The real execution token is in the DFA field */
|
||||||
/* Load the target xt and branch to the address in the target's codeword field */
|
/* Load the target xt and branch to the address in the target's codeword field */
|
||||||
.text
|
.text
|
||||||
.align 4
|
.balign 4
|
||||||
.globl DODEFER
|
.globl DODEFER
|
||||||
DODEFER:
|
DODEFER:
|
||||||
movl 4(%eax),%eax
|
movl 4(%eax),%eax
|
||||||
|
|
@ -82,7 +82,7 @@ DODEFER:
|
||||||
/* The default behavior for words defined with CREATE, VARIABLE, or CONSTANT */
|
/* The default behavior for words defined with CREATE, VARIABLE, or CONSTANT */
|
||||||
/* Place the value of the DFA field on the top of the stack */
|
/* Place the value of the DFA field on the top of the stack */
|
||||||
.text
|
.text
|
||||||
.align 4
|
.balign 4
|
||||||
.globl DODATA
|
.globl DODATA
|
||||||
DODATA:
|
DODATA:
|
||||||
pushl 4(%eax)
|
pushl 4(%eax)
|
||||||
|
|
@ -91,7 +91,7 @@ DODATA:
|
||||||
/* The default behavior for words defined with VALUE (or defvalue) */
|
/* The default behavior for words defined with VALUE (or defvalue) */
|
||||||
/* Load the word at the address in the DFA field and place it on the stack */
|
/* Load the word at the address in the DFA field and place it on the stack */
|
||||||
.text
|
.text
|
||||||
.align 4
|
.balign 4
|
||||||
.globl DOLOAD
|
.globl DOLOAD
|
||||||
DOLOAD:
|
DOLOAD:
|
||||||
movl 4(%eax),%eax
|
movl 4(%eax),%eax
|
||||||
|
|
@ -103,7 +103,7 @@ DOLOAD:
|
||||||
/* Load the address of the DOES> code body from the DFA field at %eax+4 */
|
/* Load the address of the DOES> code body from the DFA field at %eax+4 */
|
||||||
/* Push the address of the body of the word (not the DFA field) onto the stack */
|
/* Push the address of the body of the word (not the DFA field) onto the stack */
|
||||||
.text
|
.text
|
||||||
.align 4
|
.balign 4
|
||||||
.globl DODOES
|
.globl DODOES
|
||||||
DODOES:
|
DODOES:
|
||||||
/* Save threaded return address */
|
/* Save threaded return address */
|
||||||
|
|
@ -120,12 +120,12 @@ DODOES:
|
||||||
.int LITSTRING
|
.int LITSTRING
|
||||||
.byte (9f - 8f)
|
.byte (9f - 8f)
|
||||||
8: .ascii "\text"
|
8: .ascii "\text"
|
||||||
9: .align 4
|
9: .balign 4
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro defname label:req,codeword:req,dataword:req,name="",flags=0
|
.macro defname label:req,codeword:req,dataword:req,name="",flags=0
|
||||||
.section .data
|
.section .data
|
||||||
.align 4
|
.balign 4
|
||||||
.skip (-(9f-8f+1) & 3),0
|
.skip (-(9f-8f+1) & 3),0
|
||||||
.ifeqs "\name",""
|
.ifeqs "\name",""
|
||||||
8: .ascii "\label"
|
8: .ascii "\label"
|
||||||
|
|
@ -144,7 +144,7 @@ DODOES:
|
||||||
.macro defword label:req,name="",flags=0
|
.macro defword label:req,name="",flags=0
|
||||||
defname \label,DOCOL,thread_\label,"\name",\flags
|
defname \label,DOCOL,thread_\label,"\name",\flags
|
||||||
.section .rodata
|
.section .rodata
|
||||||
.align 4
|
.balign 4
|
||||||
.globl thread_\label
|
.globl thread_\label
|
||||||
thread_\label :
|
thread_\label :
|
||||||
.endm
|
.endm
|
||||||
|
|
@ -159,7 +159,7 @@ code_\label :
|
||||||
.macro defdata label:req,name="",flags=0
|
.macro defdata label:req,name="",flags=0
|
||||||
defname \label,DODATA,data_\label,"\name",\flags
|
defname \label,DODATA,data_\label,"\name",\flags
|
||||||
.data
|
.data
|
||||||
.align 4
|
.balign 4
|
||||||
data_\label :
|
data_\label :
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
|
|
@ -177,7 +177,7 @@ defname \label,DODATA,\value,"\name",\flags
|
||||||
.macro defvalue label:req,initial=0,name="",flags=0
|
.macro defvalue label:req,initial=0,name="",flags=0
|
||||||
defname \label,DOLOAD,data_\label,"\name",\flags
|
defname \label,DOLOAD,data_\label,"\name",\flags
|
||||||
.data
|
.data
|
||||||
.align 4
|
.balign 4
|
||||||
data_\label :
|
data_\label :
|
||||||
.int \initial
|
.int \initial
|
||||||
.endm
|
.endm
|
||||||
|
|
@ -1533,7 +1533,7 @@ bootstrap_data_end:
|
||||||
.eqv last_word,REPEAT
|
.eqv last_word,REPEAT
|
||||||
|
|
||||||
.section .rodata
|
.section .rodata
|
||||||
.align 4
|
.balign 4
|
||||||
cold_start:
|
cold_start:
|
||||||
.int QUIT
|
.int QUIT
|
||||||
|
|
||||||
|
|
@ -1543,7 +1543,7 @@ startup_defs:
|
||||||
startup_defs_end:
|
startup_defs_end:
|
||||||
|
|
||||||
.bss
|
.bss
|
||||||
.align 4096
|
.balign 4096
|
||||||
return_stack:
|
return_stack:
|
||||||
.space RETURN_STACK_SIZE
|
.space RETURN_STACK_SIZE
|
||||||
return_stack_top:
|
return_stack_top:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue