diff options
author | nickysn <nickysn@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2014-03-28 00:01:18 +0000 |
---|---|---|
committer | nickysn <nickysn@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2014-03-28 00:01:18 +0000 |
commit | cc95b40ede77c81b62f3b0e2608d61a1fd23809c (patch) | |
tree | 9de22ec87601d2d133b8808c4cb772d0daf66645 /compiler/jvm | |
parent | 61976b573f995e1abae9fc5cddafc4625d07d887 (diff) | |
download | fpc-cc95b40ede77c81b62f3b0e2608d61a1fd23809c.tar.gz |
+ added method reference_reset_base with support for different pointer types to
the high level code generator. All hlcg code, except for the jvm code
generator, updated to use the new method. I didn't update jvm (it still uses
the method from cgutils), because I'm not familiar with that platform, so I
might get the types wrong.
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27309 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'compiler/jvm')
-rw-r--r-- | compiler/jvm/hlcgcpu.pas | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/compiler/jvm/hlcgcpu.pas b/compiler/jvm/hlcgcpu.pas index 64207acea6..9fad597137 100644 --- a/compiler/jvm/hlcgcpu.pas +++ b/compiler/jvm/hlcgcpu.pas @@ -1031,7 +1031,7 @@ implementation end; art_indexref: begin - reference_reset_base(href,ref.indexbase,ref.indexoffset,4); + cgutils.reference_reset_base(href,ref.indexbase,ref.indexoffset,4); href.symbol:=ref.indexsymbol; a_load_ref_stack(list,s32inttype,href,prepare_stack_for_ref(list,href,false)); end; @@ -1789,7 +1789,7 @@ implementation { passed by reference in array of single element; l contains the base address of the array } location_reset_ref(tmploc,LOC_REFERENCE,OS_ADDR,4); - reference_reset_base(tmploc.reference,getaddressregister(list,java_jlobject),0,4); + cgutils.reference_reset_base(tmploc.reference,getaddressregister(list,java_jlobject),0,4); tmploc.reference.arrayreftype:=art_indexconst; tmploc.reference.indexoffset:=0; a_load_loc_reg(list,java_jlobject,java_jlobject,l,tmploc.reference.base); @@ -1856,7 +1856,7 @@ implementation case current_procinfo.procdef.proctypeoption of potype_unitinit: begin - reference_reset_base(ref,NR_NO,0,1); + cgutils.reference_reset_base(ref,NR_NO,0,1); if assigned(current_module.globalsymtable) then allocate_implicit_structs_for_st_with_base_ref(list,current_module.globalsymtable,ref,staticvarsym); allocate_implicit_structs_for_st_with_base_ref(list,current_module.localsymtable,ref,staticvarsym); @@ -1866,7 +1866,7 @@ implementation { also initialise local variables, if any } inherited; { initialise class fields } - reference_reset_base(ref,NR_NO,0,1); + cgutils.reference_reset_base(ref,NR_NO,0,1); allocate_implicit_structs_for_st_with_base_ref(list,tabstractrecorddef(current_procinfo.procdef.owner.defowner).symtable,ref,staticvarsym); end else @@ -2415,7 +2415,7 @@ implementation internalerror(2011033001); selfreg:=getaddressregister(list,selfpara.vardef); a_load_loc_reg(list,obj,obj,selfpara.localloc,selfreg); - reference_reset_base(ref,selfreg,0,1); + cgutils.reference_reset_base(ref,selfreg,0,1); allocate_implicit_structs_for_st_with_base_ref(list,obj.symtable,ref,fieldvarsym); end; |