fragment .0 := λ(: src StackVariable+Sized+Fields>>). (: ( (.program( \t 'mov \s '0 \[ '%RSP \] , \s '%RAX \n \t 'addq \s '$ (.expression base-size) , \s '%RSP \n )) (.expression( 'RAX )) ) f0+Reg64); fragment .tag := λ(: src StackVariable+Sized+Fields>>). (: ( (.program( \t 'mov \s '0 \[ '%RSP \] , \s '%RAX \n \t 'addq \s '$ (.expression base-size) , \s '%RSP \n )) (.expression( 'RAX )) ) f0+Reg64); fragment .1 := λ(: src StackVariable+Sized+Fields>,Sized>>). (: ( (.program( \t 'mov \s (align(.expression f0-size)) \[ '%RSP \] , \s '%RAX \n \t 'addq \s '$ (.expression base-size) , \s '%RSP \n )) (.expression( 'RAX )) ) f1+Reg64); fragment .2 := λ(: src StackVariable+Sized+Fields>,Sized>,Sized>>). (: ( (.program( \t 'mov \s (+( (align(.expression f0-size)) (align(.expression f1-size)) )) \[ '%RSP \] , \s '%RAX \n \t 'addq \s '$ (.expression base-size) , \s '%RSP \n )) (.expression( 'RAX )) ) f2+Reg64); fragment .3 := λ(: src StackVariable+Sized+Fields>,Sized>,Sized>,Sized>>). (: ( (.program( \t 'mov \s (+( (align(.expression f0-size)) (+( (align(.expression f1-size)) (align(.expression f2-size)) )) )) \[ '%RSP \] , \s '%RAX \n \t 'addq \s '$ (.expression base-size) , \s '%RSP \n )) (.expression( 'RAX )) ) f3+Reg64); fragment .4 := λ(: src StackVariable+Sized+Fields>,Sized>,Sized>,Sized>,Sized>>). (: ( (.program( \t 'mov \s (+( (align(.expression f0-size)) (+( (align(.expression f1-size)) (+( (align(.expression f2-size)) (align(.expression f3-size)) )) )) )) \[ '%RSP \] , \s '%RAX \n \t 'addq \s '$ (.expression base-size) , \s '%RSP \n )) (.expression( 'RAX )) ) f4+Reg64); fragment .5 := λ(: src StackVariable+Sized+Fields>,Sized>,Sized>,Sized>,Sized>,Sized>>). (: ( (.program( \t 'mov \s (+( (align(.expression f0-size)) (+( (align(.expression f1-size)) (+( (align(.expression f2-size)) (+( (align(.expression f3-size)) (align(.expression f4-size)) )) )) )) )) \[ '%RSP \] , \s '%RAX \n \t 'addq \s '$ (.expression base-size) , \s '%RSP \n )) (.expression( 'RAX )) ) f5+Reg64); fragment .0 := λ(: src StackVariable+Sized+Fields>>). (: ( (.program( (let pre-size 0) (if-eq 1 1 ( (let tail-size (+( (.expression pre-size) (.expression f0-size) ))) (if-eq 1 1 ( (let post-size (-( (.expression base-size) (.expression tail-size) ))) (for bi in (range( '0 (/( (.expression f0-size) '8 )) )) ( (let reversing-offset (*( 8 (+( (.expression bi) 1 )) ))) \t 'movq \s (-( (.expression tail-size) (.expression reversing-offset) )) \[ '%RSP \] , \s '%RAX \n \t 'movq \s '%RAX , \s (-( (.expression base-size) (.expression reversing-offset) )) \[ '%RSP \] \n )) \t 'addq \s '$ (+( (.expression pre-size) (.expression post-size) )) , \s '%RSP \n )) )) )) ) f0+StackVariable); fragment .tag := λ(: src StackVariable+Sized+Fields>>). (: ( (.program( (let pre-size 0) (if-eq 1 1 ( (let tail-size (+( (.expression pre-size) (.expression f0-size) ))) (if-eq 1 1 ( (let post-size (-( (.expression base-size) (.expression tail-size) ))) (for bi in (range( '0 (/( (.expression f0-size) '8 )) )) ( (let reversing-offset (*( 8 (+( (.expression bi) 1 )) ))) \t 'movq \s (-( (.expression tail-size) (.expression reversing-offset) )) \[ '%RSP \] , \s '%RAX \n \t 'movq \s '%RAX , \s (-( (.expression base-size) (.expression reversing-offset) )) \[ '%RSP \] \n )) \t 'addq \s '$ (+( (.expression pre-size) (.expression post-size) )) , \s '%RSP \n )) )) )) ) f0+StackVariable); fragment .1 := λ(: src StackVariable+Sized+Fields>>,Sized>>). (: ( (.program( (let pre-size (.expression f0-size)) (if-eq 1 1 ( (let tail-size (+( (.expression pre-size) (.expression f1-size) ))) (if-eq 1 1 ( (let post-size (-( (.expression base-size) (.expression tail-size) ))) (for bi in (range( '0 (/( (.expression f0-size) '8 )) )) ( (let reversing-offset (*( 8 (+( (.expression bi) 1 )) ))) \t 'movq \s (-( (.expression tail-size) (.expression reversing-offset) )) \[ '%RSP \] , \s '%RAX \n \t 'movq \s '%RAX , \s (-( (.expression base-size) (.expression reversing-offset) )) \[ '%RSP \] \n )) \t 'addq \s '$ (+( (.expression pre-size) (.expression post-size) )) , \s '%RSP \n )) )) )) ) f1+StackVariable); fragment .2 := λ(: src StackVariable+Sized+Fields>>,Sized>,Sized>>). (: ( (.program( (let pre-size (+( (.expression f0-size) (.expression f1-size) ))) (if-eq 1 1 ( (let tail-size (+( (.expression pre-size) (.expression f2-size) ))) (if-eq 1 1 ( (let post-size (-( (.expression base-size) (.expression tail-size) ))) (for bi in (range( '0 (/( (.expression f0-size) '8 )) )) ( (let reversing-offset (*( 8 (+( (.expression bi) 1 )) ))) \t 'movq \s (-( (.expression tail-size) (.expression reversing-offset) )) \[ '%RSP \] , \s '%RAX \n \t 'movq \s '%RAX , \s (-( (.expression base-size) (.expression reversing-offset) )) \[ '%RSP \] \n )) \t 'addq \s '$ (+( (.expression pre-size) (.expression post-size) )) , \s '%RSP \n )) )) )) ) f2+StackVariable);