• Russ Cox's avatar
    in preparation for changing 6g's behavior to · 88e7fd54
    Russ Cox authored
    align the output args separately from the input args,
    change cgo2c to insert the necessary padding
    when the two arg lists are concatenated in the c
    translation.
    
    for example, there is a runtime
    
    	func indexstring(s string, i int32) (b byte)
    
    right now in 6g those arguments are aligned in one
    struct with s at offset 0, i at 16, and b at 20.
    soon the b byte will be in its own struct and structs
    are 8 aligned, so it will be b at 24.
    
    right now cgo2c generates:
    
    	void indexstring(string s, int32 i, byte b)
    
    this CL makes it generate, in --6g mode:
    
    	void indexstring(string s, int32 i, uint32, byte b)
    
    this is valid 6c input, although not valid gcc input.
    (the code is being generated for 6c only anyway.)
    
    also, allow C code to be mixed in among the Go funcs.
    every instance of the token `func' is expected to start
    a new go func.
    
    R=iant
    DELTA=145  (118 added, 0 deleted, 27 changed)
    OCL=30949
    CL=30963
    88e7fd54
Name
Last commit
Last update
..
cmd Loading commit data...
lib9 Loading commit data...
libbio Loading commit data...
libmach_amd64 Loading commit data...
old/c Loading commit data...
pkg Loading commit data...
Make.386 Loading commit data...
Make.amd64 Loading commit data...
Make.arm Loading commit data...
Make.conf Loading commit data...
all.bash Loading commit data...
clean.bash Loading commit data...
make.bash Loading commit data...
quietgcc.bash Loading commit data...
run.bash Loading commit data...
sudo.bash Loading commit data...