Hexagon的軟體棧

來源:互聯網
上載者:User
概述

Hexagon處理器中包括了專用的寄存器以及指令,用於為子程式執行實現呼叫堆疊。

堆棧的結構遵循傳統C標準。

  堆棧的結構

下圖給出了Hexagon處理器中的堆棧結構


 

堆棧的地址被定義為從高地址向低地址延伸。堆棧的指標SP指向當前堆棧中的頂部資料元素。

 

註:Hexagon處理器支援三種堆棧指令:allocframe,deallocframe以及dealloc_return

SP寄存器的地址必須保持8位對齊,這主要是為了堆棧指令能夠合適的運行

  Hexagon提供的棧幀

棧是用來儲存棧架構的,這是一種用於儲存程式中活躍子程式的狀態資訊的資料結構(活躍子程式指那些被調用但未返回的程式)。每個棧架構對應著程式中的一個子程式。

 

棧架構套件含著如下的元素

本地變數以及被子程式使用的資料 子程式調用的返回地址(從串連寄存器LR中壓入) 棧上為以前的棧架構開闢的地址(從幀指標寄存器FP中壓入)

幀指標寄存器FP總會擁有一個棧上上一次的棧架構。這一設計使得debugger能夠通過檢查記憶體中的棧實現對程式的查錯功能,並輕鬆的定義調用指令,功能參數等。

 

棧寄存器

下圖是hexagon處理器中的棧寄存器圖


註:棧寄存器是三個通用寄存器的別名。這些通用寄存器是專門用於棧寄存器使用的


棧指令

下圖是高通官方給出的三種指令的具體含義以及操作:


註:allocframe以及deallocframe將會匯入並儲存LR以及FR寄存器,以一個單一對齊的64位寄存器對儲存。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.